GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: ApocKalipsS le 29 Août 2009, 13:15:53

Titre: Money sur un fichier dini
Posté par: ApocKalipsS le 29 Août 2009, 13:15:53
Bonjour,
Voici mon script :

new str[256];

format(str,256,"%s.ResidentEvil",nom(playerid));
if (dini_Exists(str))
{
new Money[MAX_PLAYERS];
Money[playerid] = GetPlayerMoney(playerid);
  dini_Set(str,"Argent",Money[playerid]);
  dini_Set(str,"Dealer",DealerArmes[playerid]);
}

Sur mon fichier, voilà ce que j'ai :

"Argent=Ò"
"Dealer="

Il me faudrait que à la place du Ò, j'ai par exemple 1234$, et à la place de rien à Dealer, j'ai un 0...
Voilà merci de vos réponses  ;)
Titre: Re : Money sur un fichier dini
Posté par: cristab le 29 Août 2009, 13:30:51
j'ai pas trop compris
Titre: Re : Money sur un fichier dini
Posté par: ApocKalipsS le 29 Août 2009, 13:59:14
Bah j'ai le script ci dessus dans OnPlayerDisconect.
Quand je tape /q, j'ai 1000 $ dans le jeu.
Donc il serait logique que j'ai dans mon fichier :
"Argent=1000".
Je problème c'est que dans mon fichier j'ai :
"Argent=Ò"

Donc voilà, quel est le problème ?

Ensuite j'ai une autre variable, DealerArmes qui est à 0.
Quand je me déconnecte, dans mon fichier scriptfiles j'ai :
"Dealer=" alors que je voudrais qu'il y est : "Dealer=0".
Voilà donc comment faire ?


PS : Je post aussi ici car j'ai une autre question.
Je voudrais que quand un joueur se connecte et qu'il nest pas un tirer (_) dans son pseudo, il soit kické.
J'ai fait ce script dans OnPlayerConnect :


public OnPlayerConnect(playerid)
{
    new plname[MAX_PLAYER_NAME];
new namestring = strfind(plname, "_", true);
  if(namestring == -1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Votre nom n'est pas acceptable.");
SendClientMessage(playerid, COLOR_YELLOW, "Vous devez avoir un nom du type Prénom_Nom.");
Kick(playerid);
return 1;
}
Si le joueur n'a pas de tiret, il est kické, mais si il en a un, il est toude  même kické...
Quel est le problème ?
Titre: Re : Money sur un fichier dini
Posté par: cristab le 29 Août 2009, 14:13:35
le soucis pour l'argent c'est que sa vient du serveur beta donc il faut add une fonction qui save toute les 30 secondes me parrait pas mal
Titre: Re : Money sur un fichier dini
Posté par: Mr_C30 le 29 Août 2009, 14:18:27
ou a la deconection  ??? je fesait sa moi c'est pas bien (bug)?
Titre: Re : Money sur un fichier dini
Posté par: cristab le 29 Août 2009, 14:49:33
la il y est en faite a la deconnection mais quand on a un ping bas j'ai remarquer sa

sa le fait pas avec un ping de 300 ^^

sa enregistre rien ^^ ou alors une commande qui save   ... j'en dirais pas plus car une idee me vient :p
Titre: Re : Money sur un fichier dini
Posté par: Mr_C30 le 29 Août 2009, 14:52:53
ok  :happy  m'enfin jamais eu de probléme moi  :)
Titre: Re : Money sur un fichier dini
Posté par: S!m le 29 Août 2009, 16:10:23
Salut,

ton problème vient du fais que tu indique à dini un nombre à écrire, or cette fonction ne prend que les string, donc tu verra le caractère ayant la valeur du montant d'argent

change de fonction, utilise plutôt dini_SetInt

++Sim++
Titre: Re : Money sur un fichier dini
Posté par: ApocKalipsS le 29 Août 2009, 16:17:01
Ok, merci beaucoup ! Et pour ça :

Citer
Je voudrais que quand un joueur se connecte et qu'il nest pas un tirer (_) dans son pseudo, il soit kické.
J'ai fait ce script dans OnPlayerConnect :


public OnPlayerConnect(playerid)
{
    new plname[MAX_PLAYER_NAME];
new namestring = strfind(plname, "_", true);
  if(namestring == -1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Votre nom n'est pas acceptable.");
SendClientMessage(playerid, COLOR_YELLOW, "Vous devez avoir un nom du type Prénom_Nom.");
Kick(playerid);
return 1;
}
Si le joueur n'a pas de tiret, il est kické, mais si il en a un, il est tout de même kické...
Quel est le problème ?

Merci de vos réponses  :)
Titre: Re : Money sur un fichier dini
Posté par: cristab le 29 Août 2009, 18:28:23
exemple

Money[playerid] = dini_Get(str,"Argent");
Titre: Re : Money sur un fichier dini
Posté par: ApocKalipsS le 29 Août 2009, 18:53:00
J'ai déjà essayer, voilà l'erreur :

error 006: must be assigned to an array
Titre: Re : Money sur un fichier dini
Posté par: cristab le 29 Août 2009, 19:16:12
pardon j'avais pas bien vu ce que tu avais ecrit sa m'apprendras le copier coller c'est pas bien


Money[playerid] = dini_Int(str,"Argent");
Titre: Re : Money sur un fichier dini
Posté par: ApocKalipsS le 29 Août 2009, 19:43:23
Ok, merci beaucoup ! Et pour ça :

Citer
Je voudrais que quand un joueur se connecte et qu'il nest pas un tirer (_) dans son pseudo, il soit kické.
J'ai fait ce script dans OnPlayerConnect :


public OnPlayerConnect(playerid)
{
    new plname[MAX_PLAYER_NAME];
new namestring = strfind(plname, "_", true);
  if(namestring == -1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Votre nom n'est pas acceptable.");
SendClientMessage(playerid, COLOR_YELLOW, "Vous devez avoir un nom du type Prénom_Nom.");
Kick(playerid);
return 1;
}
Si le joueur n'a pas de tiret, il est kické, mais si il en a un, il est tout de même kické...
Quel est le problème ?

Merci de vos réponses  :)
Titre: Re : Re : Money sur un fichier dini
Posté par: Ssk le 29 Août 2009, 20:04:11
Salut,

ton problème vient du fais que tu indique à dini un nombre à écrire, or cette fonction ne prend que les string, donc tu verra le caractère ayant la valeur du montant d'argent

change de fonction, utilise plutôt dini_SetInt

++Sim++

Je te guerirais sim ;) (lol)