GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: UrbanGhetto le 30 Novembre 2007, 16:04:52
-
Bonjour, Suite à mon problème (http://www.gtaonline.fr/forums/index.php/topic,1761.0.html) pour sauvegarder les infos du joueur, J'ai enfin réussi, Tout à l'air de bien marcher... Enfin presque.
Voilà le FS que j'ai fais :
http://pastebin.gtaonline.fr/pastebin.php?show=223 (http://pastebin.gtaonline.fr/pastebin.php?show=223)
Le problème qui ce présente c'est que quand je fais /Login dans le jeu, Soit il crash, Soit j'ai ça :
(http://img409.imageshack.us/img409/5863/samp036np9.png)
Merçi d'avance
-
Et bien comme je t'ai dit sur MSN je ne peut pas t'aider car je ne connais pas ce genre de code, et vu que tu ma demander de UPPER le TROPIC bah je le fait lol !
Aidez le please :D !
EDIT: Upper > UP du verbe biensûr !
Je up
Tu up
Il up
Nous uppons
Vous uppez
Ils uppent
A bon lecteur !
AK NV.
-
Moi ? J'ai jamais dit ça ::)
Bon suffit de HS et retour au sujet :)
-
Salut urbanghetto,
j ai une question , tu script se code comme sa ou parsque tu n' en connais pas.
parsque si t en connais un qui sauvegarde argent, metier(team), maison, voiture ect
tu pourrais me dire de quel scriipt il sagit. 8) 8)
MERCI
-
Tu n'as pas compris le théme du sujet !
Il a créer un FS qui sauvegarde les infos mais il a un probleme donc il demande de l'aide !
AK NV.
-
Si j ai compris mais se que je lui demande en fait c est si il le fait pour le plaisir de coder ou parsqu il n en connait pas deja fait.
et si il en connait un deja fait ben je voulais savoir lequel.
en fait je ne voulait pas faire un nouveau sujet et comme sa avait un rapport avec se que je voulait mettre
ben j ai poster ici
-
Lol, Ni l'un ni l'autre. Je le fais pour mon RPG
-
C'est cette ligne (come celles qui sont autours) qui fout la merde je pense :
82 . SetPlayerHealth(playerid,dUserINT(PlayerName(playerid)).("Vie")-GetPlayerHealth(playerid,PlayerHealth));
Si on la décortique :
dUserINT(PlayerName(playerid)).("Vie") -> Va te donner le vie du joueur que tu as sauvegardée dans la base (disons 100 par exemple)
GetPlayerHealth(playerid,PlayerHealth) -> Va te donner la vie du joueur à l'instant présent (disons 100 aussi).
Donc la ligne du haut devient : SetPlayerHealth (playerid, 100-100); ou encore SetPlayerHealth (playerid, 0); -> T'es mort !! :(
T'as vu le poblème ?
Et maintenant, si dans le base il y a 50 et que le joueur a toute sa vie :
SetPlayerHealth (playerid, 50-100); -> SetPlayerHealth (playerid, -50); !!!!! Pas étonnant que ça crashe parfois.
Et ce problème est le même avec les fonctions des lignes 80 à 84 de ton FS.
++
Syg
-
Ah oui je vois ou ça cloche maintenant...
Mais le problème c'est que je ne sais pas vraiment comment corriger ça ??? Enfin à part en modifiant l'include...
Où peutêtre en enlevant le Float de PlayerHealth...
-
Pas du tout.
Il faut juste se poser la question suivante :
Qu'est ce que je veux faire quand un joueur se log ?
Personellement, je répondrais comme ceci (mais tu peux adapter en fonction de ce que tu veux vraiment faire) :
- Lui redonner l'argent de sa session précédente et ajouter l'argent qu'il vient de gagner :
GivePlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money")+GetPlayerMoney(playerid));
- Lui redonner le skin qu'il avait la dernière fois :
SetPlayerSkin(playerid,dUserINT(PlayerName(playerid)).("Skin"));
- Lui remettre sa vie à 100 (puisque ce n'est pas la peine de faire des calculs savants la dessus) :
SetPlayerHealth(playerid,100);
- Lui redonner l'armure qu'il avait à sa session précédente :
SetPlayerArmour(playerid,dUserINT(PlayerName(playerid)).("Armure"));
- Et ce n'est pas la peine de toucher à l'interiorid du joueur car si il quitte sa session dans un batiment et qu'à la session suivante il se log dans un autre, il va se retrouver dans les limbes de GTA ... ou alors, il faut le téléporter dans l'intérieur où il était quand il a quitté (mais alors il faut que tu sauvegardes aussi sa position à la déconnexion).
++
Syg
-
Justement pour l'interieur je compte faire un SavePos dans le compte du joueur.
Bref, Merçi infiniment Syg :D
Edit: En réflaichissant un peut c'est vrais que c'est logique.
J'ai eu ce problème juste parsque j'ai fais un copier/coller ::)