Dertione

Leader
  • Content Count

    8
  • Joined

  • Last visited

  • Days Won

    1

Dertione last won the day on January 20

Dertione had the most liked content!

Community Reputation

157 Grand sage

About Dertione

  • Rank
    Fantôme

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Dertione

    Partage

    Yo ! J'ai vu que certains s'essayaient au développement sourcepawn. J'ai une archive avec pas mal de sources commentés donc si ça peut aider ? gros warning par contre, ça date de 2013 donc pas sur que ça compile tout. C'est des exemples plus qu'autre chose partage.rar
  2. Dertione

    ? ? JailBreak CSGO

    Cmer a prévu de faire ça avec des surprises mother fcuker mais il est en déplacement cette semaine ! On peut demander à Raphi au pire
  3. Dertione

    dertione

    Les 10 ans putain...
  4. Dertione

    a +

    Yo, On ma très vite enlevé mes droits, et je n'ai pas pu faire un départ traditionnelle comme il se doit en pouvant regarder mes posts sur mon sujet. Merci a celui qui m'a vite enlevé mes droits, ca se voyait qu'il voulait que je me barres :). Tous ca pour vous dire que je me barres de la team car les valeurs pour lesquelles je suis rentré dans cette team, ne sont plus la (bon délire, pas de prise de tete, respect, loyauté). biz
  5. ATTENTION Ce post concerne les développeurs très avancés dans le sourcepawn et il requiert d'avoir les bases niveau SQL (bdd, table, requête SQL etc ....) Yo tout le monde ! Je vais vous faire le partage de l'utilisation d'une bdd en sourcepawn. Cela va vous changez la vie. Cela va permettre de stocker des informations des joueurs à long terme et avec une facilité d'utilisation assez impressionnant ^^. C'est même indispensable arriver à un certain moment. 1°) Comment se connecter à sa base de donnée ? Premier point, il n'y a pas besoin d'include spécifique pour utiliser les fonctions SQL car elles sont déjà implémentées dans l'include sourcemod. Deuxième point, nous aurons besoin de certain define et de certaines variables pour que cela fonctionne, voici la liste (après à vous à modifier les defines) : #define DATABASE_NAME "LeNomDeTaBdd" new Handle:g_hDatabase = INVALID_HANDLE; On va pouvoir commencer, donc pour le début voici deux fonctions toutes prêtes pour se connecter à une bdd, se déconnecter d'une bdd et checker la connexion en cours d’exécution : public ConnectBDD() { // On check la config présente dans database.cfg if (SQL_CheckConfig(DATABASE_NAME)) { new String:error[255]; // On créé une connexion à la base de donné via la config présente dans database.cfg g_hDatabase = SQL_Connect(DATABASE_NAME,true,error, sizeof(error)); if (g_hDatabase == INVALID_HANDLE) { LogMessage("Erreur de connexion: %s", error); } else { LogMessage("Connexion à la BDD MySQL réussie"); } } else { LogError("Impossible de trouvé <%s> dans le fichier databases.cfg", DATABASE_NAME); } } stock bool:DisconnectSQL() { if(g_hDatabase != INVALID_HANDLE) { CloseHandle(g_hDatabase); g_hDatabase = INVALID_HANDLE; } return true; } stock bool:CheckSQL() { if(g_hDatabase == INVALID_HANDLE) { ConnectBDD(); return false ; } return true; } Où et quand se connecter et se déconnecter d'une bdd ? Pour faire simple, le mieux afin d'être assez optimiser, c'est de se connecter au lancement de la map et se déconnecter à la fin, après à vous à faire comme bon vous semble ^^. Voici un exemple : public OnMapStart() { ConnectBDD(); } public OnMapEnd() { DisconnectSQL(); } Maintenant, que vous êtes connecté à votre base de donnée, on va pouvoir rentrer dans le vif du sujet et aborder quelque point précis qui peuvent être piège. 2°) L'utilisation des requêtes SQL Utilisation simple (c'est à dire envoit d'information à la bdd) : public MaFonction() { if(CheckSQL()) { new Handle:hQuery = INVALID_HANDLE; new String:sQuery[255]; Format(sQuery, sizeof(sQuery), "UPDATE matable SET numeros=0 "); hQuery = SQL_Query(g_hDatabase, sQuery); CloseHandle(hQuery); } else { DisconnectSQL(); } } -En tout premier lieux, on va tester si la connexion à la bdd est bonne avec la fonction CheckSQL qui retourne un booléen (sinon crash serveur assuré lors d'envois de requêtes SQL) si c'est pas bon, on se déconnecte par sécurité (reconnexion automatique dans le checkSQL si on était déconnecté). -Ensuite on va créer deux variable, une variable de type Handle, qui est un type spécifique à sourcemod, qui va ensuite faire le même rôle qu'un pointeur en C (mais je sais pas ce qui est bidouillé dedans, enfin je m'en fous lol) et l'autre variable, une chaîne de caractère qui va permettre de stocker la requête SQL sous forme de texte. -On utilise la fonction Format pour stocker le texte dans sQuery.Ensuite on envoit la requête grâce à la fonction SQL_Query (on lui passe en paramètre le handle de la bdd ainsi que la requête sous forme de texte. Puis on arrête de pointer afin de libérer la plage mémoire alloué. Voilà maintenant vous savez lancer une requête SQL simplement. ATTENTION Ce n'est pas parce que votre plugin compile que tout votre code est bon. En effet si votre requête SQL est fausse, il n'y aura pas d'erreur de compilation mais rien ne se passera dans votre table voir même votre plugin sera incohérent. (Cf. Fankine mdr) Utilisation plus complexe (réception de donnée) : new Handle:hQuery = INVALID_HANDLE; new String:sQuery[255]; Format(sQuery, sizeof(sQuery), "SELECT id FROM Matable WHERE authid='%s'", sAuth); hQuery = SQL_Query(g_hDatabase, sQuery); if(SQL_GetRowCount(hQuery) == 0) { Format(sQuery, sizeof(sQuery), "INSERT INTO Matable (authid, name, numero, ok) VALUES('%s', '%s', 0, 0)", sAuth, szClientNameSQL ); hQuery = SQL_Query(g_hDatabase, sQuery); return SQL_GetInsertId(hQuery); } else { SQL_FetchRow(hQuery); return SQL_FetchInt(hQuery, 0); } Ceci est un exemple, donc si il y a des variables qui sont utilisé mais pas défini, c'est normal, c'est tiré d'un de mes codes. Ici on fait plusieurs choses. Dans un premier temps on essaye de sélectionner l'id d'une personne dans la table SQL. Ensuite avec "if(SQL_GetRowCount(hQuery) == 0)" On teste si on trouve une ligne ou pas (donc trouvez la personne ou non, ici sAuth c'est le steam id). Si on trouve personne, on va l'insérer dans la table, avec plusieurs paramètres correspondant à ma table. "return SQL_GetInsertId(hQuery);" cette permet de retourner l'index où a été insérer la personne (le numéro de la ligne qui est normalement unique). Si on trouve quelqu'un : SQL_FetchRow(hQuery); return SQL_FetchInt(hQuery, 0); La première ligne permet de récupérer le contenu de la table après la recherche et la deuxième ligne permet de récupérer le premier éléments (la première colonne) de la ligne qui a été retourné grâce à la fonction juste avant. (je dis premier car j'ai mis en paramètre "0" mais si vous mettez "2", ce sera le troisième élément de la ligne vu que l'on commence à compter à partir de 0. Pour connaître toutes les fonctions SQL disponibles, rendez-vous (comme d'hab) sur le wiki alliedmod section SQL et la doc de l'API sourcemod. Astuce Des fois vous aurez des bugs lorsque vous essayerez de mettre en paramètre les pseudos des joueurs avec la fonction "GetClientName", pour cela utiliser juste après cette fonction "SQL_EscapeString" avec les paramètre qui vont bien Ce tuto n'est pas exhaustif mais vu qu'il s'adresse au personne expérimenté, vous en aurez assez pour utiliser correctement une bdd (après faut savoir utiliser les docs à disposition). Si il y a des erreurs dans mon tuto, faites le moi savoir, je me suis pas relu tout en entier ^^. A la prochaine.
  6. Dertione

    [CSS] Mod Call Of Duty

    Yo, Voici un plugin que j'avais fais pour une soirée sur le FFA (qui était un mode call of duty, c'est à dire avec série d'élimination) et les récompenses étaient ultra fun (si je me rappelle bien, c'est une simple rocket qui était influencer par la gravité après rocket plasma qui n'est pas influencé par la gravité, mine qui rebondit et explose en faisant des dégâts de zones et attirant tout le monde, la rocket téléguidé c'est à dire que quand vous la lancez, votre vue n'est plus sur votre perso mais sur la rocket et vous la contrôlez et pour finir un genre de bombe nucléaire faisant beaucoup de dégâts et faisant trembler toute la map). Ce code n'a pas été fait entièrement par moi. Toutes les armes viennent du entcontrol (que vous aurez besoin pour compiler sur votre PC et vous aurez besoin de l'extension entcontrol sur votre serveur pour que le plugin fonctionne). Je me suis occupé de coder le reste, c'est à dire la gestion du mod. Ce partage est à titre d'apprentissage pour les futurs sourcepawner. Pour toutes questions, je suis là pour répondre sur le poste (et uniquement sur le poste, que tout le monde puissent profiter des possibles questions-réponses): https://forums.alliedmods.net/showthread.php?t=157075
  7. Yo tout le monde, Comme il y a déjà pas mal de hub qui fonctionne avec le store de partager sur le net, je vous partages le mien que j'avais réalisé l'année dernière ^^. Ce partage est à titre d'apprentissage pour les futurs sourcepawner afin qu'ils sachent utiliser l'API store et le text afficher à droite (comme dans le jail). Pour toutes questions, je suis là pour répondre sur le poste (et uniquement sur le poste, que tout le monde puissent profiter des possibles questions-réponses):
  8. Bonjour tout le monde et merci à K4nsuke pour cette idée de tutoriel. Celui-ci va être très court. L'auto completion, c'est quoi ? 1°/ Télécharger ce fichier : AUTOCOMPLETION 2°/ Suivez les instructions : A/ B/ C/ D/ E/ EXEMPLE1/ EXEMPLE2/ Voilà :) !
  9. Salut tout le monde ! J'avais un projet que me tenait à cœur qui était la création d'un serveur jail cs:go. Il a été supprimé car il n'y avait personne pour l'administrer et donc c'était le grand n'importe ce qui a fait fuir les joueurs. Aujourd'hui, j'ai envie d'en ré-ouvrir un (projet personnel pour l'instant) et pour palier au problème de manque d'admin, j'ai envie de créer un plugin qui puisse remplacer un admin par la mesure du possible. Je vous demandes alors quels solutions me proposer vous ? (toutes les idées même farfelu sont la bienvenu car rien est impossible dans le sourcepawn). Pour commencer, j'avais pensé à un système de vote mais moin on demande au joueur de faire des choses et mieux on se porte ^^. Merci d'avance, cordialement. Dertione.
  10. Salut, voici une demande pour que je puisses faire des chargements de maps personnalisé sur les maps jail du futur csgo. Quel réalisation voulez-vous ? Je désires une images pour le chargement de map d'une map csgo. Dimension de la réalisation ? Voici un exemple (l'image avec l'IP et les mains) sachant que toutes cette image fait l'écran d'un ordi : http://upload.supreme-elite.fr/?v=RYoLu.png Thème ? Jailbreak CS:GO, prison. Texte contenu ? nom du serveur : Jailbreak / nom de la map : XXXXXXXX / futur IP du serveur : 212.83.157.178:27050 Point de départ ? Comme vous voulez Précisions a ajouter : Si je pourrais avoir accès au psd pour pouvoir a chaque fois modifier le nom de la map, ce serait bien. Merci d'avance. Je pourrais vous donnez une dimension exacte ce soir normalement. Cordialement.
  11. AIGHT : MERCI au participant du cache cache, full zombie, chat et la souris et plein d'autre jeux !!!
  12. Dertione

    Plugin de spawn protect v1.0

    Je partages un ancien plugin qui ne m'ai plus d'utilité et qui est assez simple pour les personnes qui veulent regarder le code. Il est commenté. Ce plugin consiste a protéger une personne dans les 45 premiers secondes du round même si elle arrive au début ou a 30 secondes, la personne sera protéger vis à vis du temps du round et pas autre chose. Ce plugin a été spécifiquement pour quelqu'un donc c'est pour cela que la durer est aussi important de base mais elle peut être changer facilement grâce à un fichier de configuration. Cvars : Un fichier de configuration sera automatiquement crée ici : cstrike/cfg/sourcemod/plugin_spawn_protect.cfg • g_TimerRound : 45.0 par défaut - Temps du spawn protect générale (en secondes) Bugs : Aucun 1.0 First release spawn_protect.sp spawn_protect.smx
  13. Dertione

    Presentation Walking

    bienvenu :) !
  14. Dertione

    VOS RECETTES DE CUISINE

    PHOTO OBLIGER CACA, tu as 1 semaines sinon c'est le ban !! mdr