GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Komolos le 16 Novembre 2010, 19:43:34
-
Bonsoir,
Ce soir encore je vais encore appele à certaines de vos connaissance, j'ai un problème.
J'ai crée un public, mais le problème ses que en jeux, sa marche, mais ça me fait comme ça : * a le ventre qui gargouille.
alors, que j'ai bien définie ma variable nomjoueur.
Ensuite j'aimerai aussi que vous m'aidiez à kick le joueur si il ne ce connecte pas, il as 15 secondes pour ça.
voici mon code :
public Manger()
{
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(gPlayerSpawned[i] == 1)
{
new nomjoueur[MAX_PLAYER_NAME];
new string[256];
new Float:health;
GetPlayerHealth(i, health);
if(health <= 35)
{
{
format(string, sizeof(string), "* %s a le ventre qui gargouille.", nomjoueur);
ProxDetector(30.0, i, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 50.0, 10000);
SendClientMessage(i, COLOR_WHITE, "Vous avez faim, allez mangé quelques choses");
}
}
}
}
}
return 1;
}
-
Merci beaucoup Dizzy !
pour mon deuxième problème ? :
Ensuite j'aimerai aussi que vous m'aidiez à kick le joueur si il ne ce connecte pas, il as 15 secondes pour ça.
Merci d'avance
-
Ah, on sera 2 à attendre une réponse d'un autre membre alors ^^
Merci beaucoup, je te doit presque tout de mon savoir faire Dizzy.
-
Salut
Dans ton OnPlayerConnect tu fait un SetTimerEx de 15 sec (biensur tu lui donne un nom par exemple timerconnection donc, en haut de ton GM: new timerconnection et pour ton timer : timerconnection = SetTimerEx(......);). Apres, dans ta fonction qui connecte le joueur, tu mets que lorsque le joueur a reussi a se loger(donc le mdp est bon un KillTimer(timerconnection); ). Apres tu creer une fonction par exemple : fonctionkick(playerid) avec dedans : Kick(playerid);
Si tu as pas compris dis le.
-
tu fait un timer ou est ta difficulté ? ???
++C30
-
J'ai compris, je le ferai demain, je vous tien au courant merci beaucoup.
-
Salut
Dans ton OnPlayerConnect tu fait un SetTimerEx de 15 sec (biensur tu lui donne un nom par exemple timerconnection donc, en haut de ton GM: new timerconnection et pour ton timer : timerconnection = SetTimerEx(......);). Apres, dans ta fonction qui connecte le joueur, tu mets que lorsque le joueur a reussi a se loger(donc le mdp est bon un KillTimer(timerconnection); ). Apres tu creer une fonction par exemple : fonctionkick(playerid) avec dedans : Kick(playerid);
Si tu as pas compris dis le.
Vous allez me dire qu eje vais loin mais bon ^^
new timerconnection
n'est pas forcement neccesaire,
dans la plu saprt des gm en libre circulation larp ....
il y a un gPlayerLogged
donc tu fait juste le settimerex
et quand la fonction est appellée
public fonctionkick(playerid)
{
if(gPlayerLogged[playerid] == 1) { return 1; }
Kick(playerid);
}
-
Salut,
Vous allez me dire qu eje vais loin mais bon ^^
new timerconnection
n'est pas forcement neccesaire,
dans la plu saprt des gm en libre circulation larp ....
il y a un gPlayerLogged
donc tu fait juste le settimerex
et quand la fonction est appellée
public fonctionkick(playerid)
{
if(gPlayerLogged[playerid] == 1) { return 1; }
Kick(playerid);
}
effectivement, toutefois l'un n'est pas vraiment plus avantageux que l'autre, et la méthode en ajoutant la variable a l'avantage d'être compatible avec tous les scripts ayant un système de comptes.
komolos, à l'avenir donne un titre clair à ton topic ou je devrai m'en mêler. Comprend moi, il faut pouvoir s'y retrouver parmis tous ces topics...
cordialement,
++Sim++
-
Aucun soucis Sim, voilà ce que j'ai fait :
timerconnection = SetTimerEx("timerconnection", 15000, 1);
//===========================[Connection]===================
//forward fonctionkick();
public fonctionkick(playerid)
{
if(gPlayerLogged[playerid] == 1) { return 1; }
Kick(playerid);
}
C:\Users\haddou\Desktop\teste\gamemodes\dirthy.pwn(15354) : warning 202: number of arguments does not match definition
C:\Users\haddou\Desktop\teste\gamemodes\dirthy.pwn(33352) : warning 202: number of arguments does not match definition
C:\Users\haddou\Desktop\teste\gamemodes\dirthy.pwn(53759) : warning 235: public function lacks forward declaration (symbol "fonctionkick")
C:\Users\haddou\Desktop\teste\gamemodes\dirthy.pwn(53763) : warning 209: function "fonctionkick" should return a value
-
Salut,
sinon, je viens de remarquer concernant la fonction en elle même, il serait plus "propre" de la faire ainsi:
forward fonctionkick();
public fonctionkick(playerid)
{
if(gPlayerLogged[playerid] != 1)
{
Kick(playerid);
}
return 1;
}
En plus, tu aura deux avertissement en moins. (le problème de fonction non pré-déclarée (forward) et de retour de valeur)
++Sim++
-
C:\Users\haddou\Desktop\teste\gamemodes\dirthy.pwn(15354) : warning 202: number of arguments does not match definition
C:\Users\haddou\Desktop\teste\gamemodes\dirthy.pwn(33352) : warning 202: number of arguments does not match definition
C:\Users\haddou\Desktop\teste\gamemodes\dirthy.pwn(53759) : error 025: function heading differs from prototype
[code]
Voilà sa que ça me fait.[/code]
-
SetTimerEx("timerconnection", 15000, 1);
est faux
SetTimerEx("timerconnection", 15000, 0,"d",playerid);
est juste.
Pourquoi?
Car "1" ferais que le timer se répette, or il ne faut pas
"d", car tu appelle un public qui demande une variable
playerid, car s'est la variable nécessaire au public
-
Merci beaucoup scoot, mais je doit pas rename ce public ? en timerconnection ?