• Annonces

    • vic1997

      CAMPAGNE DE RECRUTEMENT #3   19/03/2018

      Suite au départ de notre Community Manager Bibidech ainsi que de notre Graphiste Wonderer, mais aussi au besoin d'un rédacteur pour notre futur fonctionnalité, nous ouvrons donc une nouvelle campagne de recrutement.   Cliquez ici pour accéder au message : https://sa-mp-fr.com/topic/1753-campagne-de-recrutement-3/   Cliquez ici pour postuler : https://sa-mp-fr.com/forms/2-administration/

vitespirite

Membres
  • Compteur de contenus

    429
  • Points

  • Inscription

  • Dernière visite

  • Days Won

    9

Tout ce qui a été posté par vitespirite

  1. Tu me conseil de mettre combien de temps maximum ?
  2. Bonjour, me formant au php j'ai besoin de vous afin de me donnée des conseil sur la protéction des cookie j'ai fait comme ça et j'aimerais que vous me donniez des conseil ou alors si cela convient : <?php session_start(); include('include/mysql.php'); if(!isset($_SESSION['logged'])) //protéction des donnée fournie par le client. { if(isset($_COOKIE['user']) && isset($_COOKIE['password'])) { $req=$bdd->prepare('SELECT * FROM user WHERE Username = ? LIMIT 1'); $req->execute(array($_COOKIE['user'])); $response=$req->fetch(); if(empty($response)) { setcookie("user", "", time()-3600); setcookie("password", "", time()-3600); $_SESSION['logged'] = false; header('Location:index.php'); exit; } if($_COOKIE['password'] == $response['MotDePass']) { $_SESSION['logged'] = true; $_SESSION['user'] = $_COOKIE['user']; header('Location:index.php'); exit; } else { $_SESSION['logged'] = false; setcookie("user", "", time()-3600); setcookie("password", "", time()-3600); } } else {$_SESSION['logged'] = false;} } ?> Ci-dessus vous trouverais le code que j'ai fait, je pense que vous avez deviner a quoi celà sert juste pour vous éxpliquer se que contienne les superglobal cookie : user contient le pseudonyme de la personne. password contient le mot de passe hasher. j'aimerais vos conseil/avis pour savoir comment je peut améliorer ou voir même si c'est asse sécure?
  3. Alors je suis encore novice dans ce langage qu'es que les flags ?
  4. Au niveaux des formatage de tes requête mysql personnellement j'utilise la fonction mysql_format et la plus pars des gens utilise le %e au lieu du %s pour désigner une chaîne de caractère dans les requête sql, après moi je privilégie au max mysql_tquery pour l’exécution de mais requête mais j'utilise également le inline, tes fonction mysql coinside a la r5 dans c'est eau là. Après je ne suis pas un expert vue que j'ai commencer le sql a la r39 et je n'est pas étudier les nouveauté depuis tout se temps.
  5. je ne suis pas sur que la version sql correspond au code de ton gm
  6. http://forum.sa-mp.com/showthread.php?t=56564
  7. Salut, Merci du partage mais : #warning N'est pas compatible avec le compilateur de base
  8. ton code laisser supposer que c'est le joueur qui choisissait a l'aide d'un dialog.
  9. Moi non plus mais il fait se qu'il souhaite
  10. c'est le joueur qui décide par apport a un dialog se qu'il répond si response = true le joueur est pauvre si false le joueur est riche
  11. Je ne pense pas que l'open-source soit l'ultime solution pour se mode... Je m’explique (cela ne reste que mon point de vue bien entendue). La communauté samp n'est pas aussi sérieuse que celle de MTA, de plus l'administration du forum officiel a supprimer plusieurs communauté non anglaise donc certaine personne pourrait avoir de la rancune et tout bazardée le travaille de développeur plus sérieux. Mais enfin il existerais des solution pour contrôler sa comme une équipe chargée de vérifier le code avant qu'il soit publiée pour s'assurée que samp ne devienne pas un logiciel malveillant.
  12. autre

    Je pense que se projet peut-être intéressant pour les viewer si c'est bien réaliser. Mais malheureusement assez rependu sur youtube, mais qui ne tente rien na rien. Il faudra que tu te démarque des autre pour donner envie au viewer. Bonne chance a toi
  13. Tien des lien qui te serons utile : http://wiki.sa-mp.com/wiki/GivePlayerMoney http://wiki.sa-mp.com/wiki/SendClientMessage Voilà de quoi tu aura besoin pour faire se que tu souhaite. EDIT: Si tu ne donne pas les instruction que doit faire le pawn avec c'est valeur il ne va pas le deviner donc il n'en fera rien.
  14. Mais pas supprimée
  15. C'est a toi de faire le code genre une boucle qui random et tu vérifie si la bool correspond a riche ou pas selon tes besoin
  16. Avec la booléenne est la meilleur solution alors, en gros tu rajoute true/false qui veux dire vraie ou faux (fin sa tu le sais sans doute ) mais tu a deux facont de l'intérpreter (si le joueur est riche : vraie/faux) ou alors (si le joueur est sdf : vraie ou faux) et dans ton random tu vérifier si la bool correspond a se que le joueur a choisie .
  17. L'idée de @Max est bien mais il y a plus simple au sinon : new Float:SpawnSdf[][] = { {262.1090,-288.6309,1.5781, 316.7696}, // Randomspawn Position SDF 1 {249.4832,-285.4214,1.5836,95.8909}, // Randomspawn Position SDF 2 {242.1159,-295.2147,1.5781,130.0446}, // Randomspawn Position SDF 3 {229.3449,-306.9241,1.5870,86.1775}, // Randomspawn Position SDF 4 {253.6622,-267.7012,1.5836,313.6361}, // Randomspawn Position SDF 5 {283.1123,26.1285,2.5446,289.5001}, // Randomspawn Position SDF 6 {338.6198,55.0710,3.6191,19.5000}, // Randomspawn Position SDF 7 {339.6061,38.3385,6.5070,204.6582}, // Randomspawn Position SDF 8 {286.5702,26.9492,2.5625,56.6910}, // Randomspawn Position SDF 9 {251.4057,-16.2512,1.9392,115.6216} // Randomspawn Position SDF 10 }; new Float:SpawnRich[][] = { {314.0655,-92.3618,3.5354,264.8170}, {294.9315,-55.6946,2.7772,166.7192}, {265.9064,-56.8824,2.7772,175.3967} }; if(dialogid == DIALOG_ChoixDeVie){ if(response){ ShowPlayerDialog(playerid, DIALOG_connexion1, DIALOG_STYLE_MSGBOX, "Le commencement", "Cette nuit, tu es arrivé(e) dans une petite ville que tu ne connais pas. Tu as voyagé un long\nmoment à l'arrière d'un camion avec une multitude d'autres personnes, tu penses qu'ici tu pourras\nprendre un nouveau départ !", "Valider", ""); new Random = random(sizeof(SpawnSdf)); SetPlayerPos(playerid, SpawnSdf[Random][0], SpawnSdf[Random][1], SpawnSdf[Random][2]); } else{ //SendClientMessage(playerid, -1, "Ceci est le choix numéro 2"); new Random = random(sizeof(SpawnRich)); SetPlayerPos(playerid, SpawnRich[Random][0], SpawnRich[Random][1], SpawnRich[Random][2]); } }
  18. Pourquoi l'argent serait son facteur de motivation ... je pense que Kalcor a eu ses raison d'abandonner la 0.3.8, car c'est grâce a lui que nous formons une communauté, mais pourtant nous ne le connaissons pas très bien. Kalcor reste un personnage obscure dans la communauté (globale), sur le forum officiel il ne poste un message que quand il a des news a nous présenter. Il ne faut pas oubliée que ça reste un humain et non pas une machine qui dit humain dit qu'il a peut-être des problème (quelque soit), des sentiment, des envie et pour le moment il souhaite faire une pause peut-être. Comme la dit @Marcus62 il na pas le respect qu'il mérite envers sa commu', Il se fait de l'argent c'est bien beaux mais il ne faut pas lui reprocher car comme on dit "tout travaille mérite salaire". C'était pour donner mon avis subjective.
  19. Comme je les déjà dit auparavant, les gros serveur reste sur leur acquis et ne propose plus réellement d'innovation donc les joueur se lace et trouve refuge autre pars appart PRP (LMRP) qui eu essaye d'innover mais malheureusement il n'ont pas bonne réputation dommage pour eux, mais GTRP ou CMLV ne propose plus réelement de grosse mise a jour GTRP son plus accès événement comme Noël, le summer GTRP etc et CMLV je ne sais pas trop mais il me semble pas qu'il y est grand chose a dire se serveur reste vieux au fils du temps il vieillie de plus en plus. Après en les petit serveur se font rare il son vite écraser par des personne malveillante voir même par manque de joueur.
  20. car beaucoup de modification et de débug, je pense que beaucoup vont pas bien l'utilisé
  21. Merci, mais tu n'aurait pas du
  22. Surtout le nombre de serveur augmente mais la commu reste au même niveaux donc sa divise les joueur puis on a l’impression qu'il y a moins de monde
  23. Simple timers Voir le fichier j'ai fait un petite include (vraiment petit) qui va permettre de ranger un peux un gm/fs se son une série de Macro utile pour les timer MACRO: v_SetTimerEx(fonctname[], interval, reapeting, format[], mexed); //fonctionne pareille que SetTimerEx v_SetTimer(functname[], interval, reapeting); //fonctionne pareille que SetTimer TimerEx:functname(syntaxe) //appeler a la fin de l'interval de v_SetTimerEx Timer:functname() //appeler a la fin de l'interval de v_SetTimer UTILISATION : public OnFilterScriptInit() { v_SetTimerEx("test", 100, false, "i", 1); } TimerEx:test(id) { printf("test du timer %i",id); } ATTENTION: Elle fonctionne pareille que les fonction initial mais sa permet de mieux ranger vos code source Contributeur vitespirite Soumis 06/01/2018 Catégorie Plugins & Includes Pastebin Github  
  24. Version 1.0.0

    2 téléchargements

    j'ai fait un petite include (vraiment petit) qui va permettre de ranger un peux un gm/fs se son une série de Macro utile pour les timer MACRO: v_SetTimerEx(fonctname[], interval, reapeting, format[], mexed); //fonctionne pareille que SetTimerEx v_SetTimer(functname[], interval, reapeting); //fonctionne pareille que SetTimer TimerEx:functname(syntaxe) //appeler a la fin de l'interval de v_SetTimerEx Timer:functname() //appeler a la fin de l'interval de v_SetTimer UTILISATION : public OnFilterScriptInit() { v_SetTimerEx("test", 100, false, "i", 1); } TimerEx:test(id) { printf("test du timer %i",id); } ATTENTION: Elle fonctionne pareille que les fonction initial mais sa permet de mieux ranger vos code source
  25. Vehicle Function Voir le fichier Bonjours j'ai coder diverse fonction/appel de callback a différant événement a propos des véhicule qui peuvent faciliter la vie de tout développeur. Voici comment cela fonctionne est se qui comporte : CALLBACK: public OnVehicleUpdate(vehicleid) //appeler toute les 50ms par véhicule public OnVehicleCreated(vehicleid) //Appeler a la création du véhicule via la foncione CreateVehicleEx public UpdateVehicleCarDoors(vehicleid, door, status) //appeler quand on modifie le status des porte d'un véhicule public UpdateVehicleCarWindows(vehicleid, win, status) //pareille qu'au dessus mais pour les fenêtres FONCTION: native CreateVehicleEx(model, Float:x, Float:y, Float:z, Float:rot, color1, color2, respawn_delay, addsirene = 0, plate[] = "",virtualworld = -1, lock = 0); //créer un véhicule avec des syntaxe supplémentaire a l'original || retourne l'id du véhicule créer native GenerateNumberPlate(plate[], size, dest[]); //Permet de générer des plaque d'imatriculation avec un format || retourne aucune valeur spécifique native GetVehicleCarDoor(vehicleid, door); //permet de voir le status d'une porte || retourne le status de la porte native SetVehicleCarDoor(vehicleid, door, bool:status); //permet de modifier le status d'une porte || retourne aucune valeur spécifique native GetVehicleCarWindows(vehicleid, win); //permet de voir le status d'une fenètre || retourne le status de la fenètre native SetVehicleCarWindows(vehicleid, win, bool:status); //permet de modifier le status d'une fenètre. || ne retourne aucune valeur spécifique native InitVehicleUpdate(vehicleid); //permet de lancée le timer d'update (valide qui si la callback OnVehicleUpdate(vehicleid) est présente || retourne l'id du timer lancée A utiliser dans les syntaxe door et win : VEH_DRIVER //coter conducteur VEH_PASSENGERS //coter passager VEH_BACK_LEFT //coter arrière gauche VEH_BACK_RIGHT //coter arrière droit VEH_UP //place avant (conducteur et passager avant) VEH_DOWN //place arrière (passager arrière) VEH_ALL //tout le véhicule Exemple La logique est la même pour les porte. CMD:fenetre(playerid, params[]) { if(GetPlayerVehicleID(playerid) == INVALID_VEHICLE_ID) return false; SetVehicleCarWindows(GetPlayerVehicleID(playerid), VEH_ALL, 0); //ouvrir la fenetre } Génération de plaque formater : la fonction GenerateNumberPlate fonctionne ainsi : public OnFilterScriptInit() { new newplate[12], frmplate[12] = "ss<iisii>ss"; //s = lettre || i = chiffre || les autre caractère que i et s seront recopier. print(frmplate); for(new i;i < 50;i++) { GenerateNumberPlate(frmplate, sizeof(frmplate), newplate); print(newplate); strdel(newplate, 0, strlen(newplate)); } } Cette fonction ma générer 50 plaque différante : BUG: Je n'est pas tout tester car sur certaine chose je suis assez confiant, mais au moindre bug merci de le partagée dans le sujet support Contributeur vitespirite Soumis 06/01/2018 Catégorie Plugins & Includes Pastebin Github