GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Franky™ le 20 Novembre 2010, 15:17:51
-
Salut à vous.
Voilà mon sujet pour divers question et aide.
Donc j'en ai déjà deux, la premiere la voici.
Quand je me deconnect de mon serveur, il ne veux pas sauvegarder. Pourtant dans le OnPlayerDisconnect J'ai bien mis se qu'il fallais, ton voici mon bout du code:
public OnPlayerDisconnect(playerid, reason)
{
new name[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),"JailRP/Comptes/%s.ini",file);
if(fexist(file))
if(gPlayerLogged[playerid] == 1)
{
dini_IntSet(file, "Score", InfoJoueur[playerid][pScore]);
dini_IntSet(file, "Argent", InfoJoueur[playerid][pArgent]);
dini_IntSet(file, "AdminLevel",InfoJoueur[playerid][pAdminLevel]);
dini_IntSet(file, "Faction", InfoJoueur[playerid][pFaction]);
}
gPlayerLogged[playerid] = 0;
return 1;
}
Donc il ne me sauvegarde rien (j'ai essayer avec la faction et avec de l'argent).
Je me suis donc donner de l'argent avec GivePlayerMoney(playerid, 9999); ça m'affiche très bien le montant de l'argent sur la HUD mais quand je quitte et que je vais voir dans mon .ini c'est toujours à 0
Pareil pour la faction, quand mon InfoJoueur[playerid][pFaction] = 0 j'ai un menu qui s'ouvre et qui nous demande de choisir la faction. Donc pour chaque choix il y a :
case 0:
{
SetPlayerSkin(playerid,71);
SetPlayerArmour(playerid, 100);
InfoJoueur[playerid][pFaction] = 1; // ICI QUI LUI DIT QU'IL EST DANS LA FACTION 1
SetPlayerPos(playerid,-2905.732,3598.980,25.346);
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid,COLOR_LIGHTBLUE, "[FACTION] Te voilà désormais Garde");
}
case 1:
{
SetPlayerSkin(playerid,268);
InfoJoueur[playerid][pFaction] = 2; // ICI QUI LUI DIT QU'IL EST DANS LA FACTION 2
SetPlayerPos(playerid,1102.7017,-299.0774,73.9922);
TogglePlayerControllable(playerid, 1);
SendClientMessage(playerid,COLOR_LIGHTBLUE, "[FACTION] Te voilà désormais Prisonnier");
}
Mais quand je quitte, dans mon fichier .ini c'est toujours a 0
Pour le deuxieme prob, j'attend que celui là soit résolut...
Voilà si vous pouviez m'aider.
Merci
++ Franky
-
peu tu te faire une commande pour regarder la valeur des variable en jeu et si elle sont ok peu etre un soucis de lecture du fichier
-
peu tu te faire une commande pour regarder la valeur des variable en jeu et si elle sont ok peu etre un soucis de lecture du fichier
Ok je peux la faire, mais perso j'ai pas compris lol. J'ai jamais fait se genre de commande mdr ^^
++ Franky
-
pas de soucis j'edite ce post une fois taper
if (strcmp("/p", cmdtext, true) == 0)
{
new string[128];
format(string,sizeof(string),"Scor : %d Argent : %d Adminlevel: %d Faction : %d",InfoJoueur[playerid][pScore],InfoJoueur[playerid][pArgent],InfoJoueur[playerid][pAdminLevel],InfoJoueur[playerid][pFaction]);
SendClientMessageToAll(0xFF32FFAA,string);
return 1;
}
-
ahhhhh mais oui ça je connais lol, tu m'aurai expliqué que c'etait pour montrer les stats je l'aurai fait mdr ^^
Je regarde si sa marche, je te tien au jus lol
++ Franky
-
desoler je m'exprime mal par moment ^^
-
Ok alors voilà les resultas:
Faction: quand je choisi IG ça fonctionne, ça met bien 1 ou 2.
Adminlevel: sa fonctionne
Le reste non, j'ai fait ma cmd /argent, ca me donne l'argent sur le HUD mais pas dans les stats.
Pareil quand je le met manuellement dans mon fichier .ini sa met sur le HUD mais pas les stats.
Pareil pour le score
++ Franky
-
est comme ceci
stock CompteJoueur(playerid)
{
new name[MAX_PLAYER_NAME], file[256];
GetPlayerName(playerid, name, sizeof(name));
format(file,sizeof(file),"JailRP/Comptes/%s.ini",file);
return file;
}
public OnPlayerDisconnect(playerid, reason)
{
if (dini_Exists(CompteJoueur(playerid)))
{
dini_Set(CompteJoueur(playerid), "AdminLevel",InfoJoueur[playerid][pAdminLevel]);
dini_Set(CompteJoueur(playerid), "Faction", InfoJoueur[playerid][pFaction]);
}
return 1;
}
j'ai pas tester mais il me semble que c'est Dini_Set et pas Dini_InSet mais sa fait longtemps que j'ai plus coder je ne suis pas tres sur
-
Non toujours pas lol ^^
++ Franky
-
tente de ne pas mettre les compte joueur dans des dossier pour voir juste voir si tout est ok
-
tente de ne pas mettre les compte joueur dans des dossier pour voir juste voir si tout est ok
Le fichier se crée bien, mais ne sauve rien lors de ma deconnexion. Donc en gros, toujours pas de changement ^^
Et j'ai même mis ton code.
Je sais pas d'ou sa viens ça.
++ Franky
-
etrange tout de meme ce serais sur un serveur autre qu'en local j'aurais bien dit que c'est le CHMOD mais la c'est pas le cas franchement je planche complet sur ton soucis la :s pour cela dans un sens moi je save chaque chose en temps reel c'est bien plus sur que le onplayerdisconnect
-
salut,
c'est pas dini_Set mais dini_IntSet
++
Beno
Salut,
Non même en mettant dini_IntSet
ça ne sauvegarde pas :s
++ Franky
Double post
etrange tout de meme ce serais sur un serveur autre qu'en local j'aurais bien dit que c'est le CHMOD mais la c'est pas le cas franchement je planche complet sur ton soucis la :s pour cela dans un sens moi je save chaque chose en temps reel c'est bien plus sur que le onplayerdisconnect
Ok mais comment on save en temps réel ?
++ Franky
-
nop pas de timer
enfaite si un gars passe admin dans la commande je sauvegarde son nouveau level si il meurt je save a sa mort ect ect
ah oui par hazard tu ne passe pas tout les var a 0 dans le OnPlayerdisconnect ???
-
nop pas de timer
enfaite si un gars passe admin dans la commande je sauvegarde son nouveau level si il meurt je save a sa mort ect ect
Hum je voit, ça a l'air compliqué quand même lol.
ah oui par hazard tu ne passe pas tout les var a 0 dans le OnPlayerdisconnect ???
Bah le seul truc qui est à zero quand je deco c'est gPlayerLogged[playerid] = 0;
++ Franky
-
Moi perso j'utilise pas dini, j'ai eu trop de probleme avec sa. Maintenant j'utilise celui intergrer et il me va tres bien.
-
celui intergrer et il me va tres bien.
Tu veux dire quoi par celui intergrer ?
++ Franky
-
Je pense qu'il parle des fonctions d"origine de sa-mp .A savoir que dini marche très il faut juste savoir l'utiliser mais après je te le déconseille si ta plus de 20 joueurs
-
Je pense qu'il parle des fonctions d"origine de sa-mp .A savoir que dini marche très il faut juste savoir l'utiliser mais après je te le déconseille si ta plus de 20 joueurs
Se script n'est qu'un hobby pour moi, dès que j'ai lai terminé, je pense le partagé ^^ Mais bon, faut quand même que je puisse faire marché la sauvegarde du compte, mais malheureusement j'y arrive pas.. Enfin ca devrai marché, mais c'est pas le cas..
++ Franky
-
Enfaite c'est tout simple tu as fait une erreur d'inattention ici
format(file,sizeof(file),"JailRP/Comptes/%s.ini",file);
le devrait être
format(file,sizeof(file),"JailRP/Comptes/%s.ini",name);
-
Salut,
Non désolé mais ça ne fonctionne toujours pas :s
grrrrrr me soul se truc qui marche pas ^^
++ Franky
Double post
Ok, donc c'est résolut partiellement.
Avec le changement en "name" ca fonctionne. Enfaite j'avais oublié d'elever deux "" sur un truc.
Donc ca fonctionne seulement avec La Faction, et non l'argent...
++ Franky
-
pour l'argent
InfoJoueur[playerid][pArgent] = GetPlayerMoney(playerid);
dini_IntSet(file, "Argent", InfoJoueur[playerid][pArgent]);
-
Cool merci ca fonctionne...
___________________________
Ensuite mon deuxieme problème alors.
J'ai fait un truc que quand on se connect avec l'id d'une faction, donc soit la 1 soit la 2
On spawn au QG Donc voilà se que j'ai fait:
public SetPlayerSpawn(playerid)
{
if(IsPlayerConnected(playerid))
{
if (InfoJoueur[playerid][pFaction] == 1)//Police spawn
{
SetPlayerSkin(playerid,71);
SetPlayerArmour(playerid, 100);
InfoJoueur[playerid][pFaction] = 1;
SetPlayerPos(playerid,-2905.732,3598.980,25.346);
SendClientMessage(playerid,COLOR_LIGHTBLUE, "[FACTION] Te voilà Garde");
return 1;
}
else if (InfoJoueur[playerid][pFaction] == 2)//Prisonnier Spawn
{
SetPlayerSkin(playerid,268);
InfoJoueur[playerid][pFaction] = 2;
SetPlayerPos(playerid,1102.7017,-299.0774,73.9922);
SendClientMessage(playerid,COLOR_LIGHTBLUE, "[FACTION] Te voilà Prisonnier");
return 1;
}
}
return 1;
}
Mais ceci ne fonctionne pas.
Je tombe sur cette fonction: AddPlayerClass(0,2846.7517,-1984.5951,10.9375,62.9433, 0, 0, 0, 0, 0, 0);
pourquoi ? lol
Merci
++ Franky
-
deplace le code dans le onplayerspawn
-
Oui après avoir bien regarder mon code j'ai vu que je m'etait gouré. lol
Donc je l'ai déplacé dans le public OnPlayerSpawn(playerid) ça fonctionne nikel.
Je peux donc, continué à scripté enfin lol.
Merci encore
-
Hs: tu fait un serveur type ba_jail css ?
-
Hs: tu fait un serveur type ba_jail css ?
Je connais pas de ba_jail sur CSS vu que j'y joue pas.
Ensuite je fait un Gm Rp dans la vie d'une prison. Ca se passera seulement dans la prison et nul part ailleur.
J'éspère que c'est que de l'inédit mdr ^^ Car j'ai pas encore vu de GM prison quelque part. Ben a vrai dire j'ai pas bcp chercher ^^
++ Franky
-
ba_jail c'est un mod de jeu css ou aussi ont est dans une prison et il y a les Gardien et les détenu etc :)
-
Sauf que dans CSS il se tue, alors que là sa sera un RP ^^ ;)
++ Franky
-
Salut :)
Il existe déjà des serveurs qui se passe dans une prison, et le but c'est de t'échapper..
-
Salut :)
Il existe déjà des serveurs qui se passe dans une prison, et le but c'est de t'échapper..
Lol ok, ben alors ca va, car le mien personne ne s'echappe, c'est a vie que tu reste là dedant... Je trouvais que tout les RP c'etait la même chose, alors j'ai voulu changé... Mais bon, je suis encore loin d'être arrivé au bout ^^
++ Franky
-
Salut,
Franky je te demanderais de changer le nom de ton topic, simplement indiquer clairement que ce topic est pour TES questions, c'est un peu trop général là.
sinon bonne chance avec ton RP de prison, ça fait différent j'aimerais bien voir ça^^, mais essayez de revenir au script maintenant.
EDIT: merci d'avoir faire le changement si vite.
++Sim++