GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Jeffreeeey le 11 Novembre 2009, 13:01:34
-
Voila j'ai un certain problème pour aficher "x a quitté le serveur (raison = y)"
public OnPlayerDisconnect(playerid, reason)
{
new astring[256];
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
gActivePlayers[playerid]--;
numplayers--;
if(OnDuty[playerid]==1)
{
Flicservice --;
}
if(reason == 0)
{
PlayerInfo[playerid][pCrashed] = 1;
format(astring, sizeof(astring), "%s a quitté x (Crash).",plname);
SendClientMessageToAll(COLOR_RED, astring);
for(new slot = 0; slot != 12; slot++)
{
new wep, ammo;
GetPlayerWeaponData(playerid, slot, wep, ammo);
if(wep != 0 && ammo != 0)
{
if(PlayerInfo[playerid][pGun1] == 0) { PlayerInfo[playerid][pGun1] = wep; PlayerInfo[playerid][pAmmo1] = ammo; }
else if(PlayerInfo[playerid][pGun2] == 0) { PlayerInfo[playerid][pGun2] = wep; PlayerInfo[playerid][pAmmo2] = ammo; }
else if(PlayerInfo[playerid][pGun3] == 0) { PlayerInfo[playerid][pGun3] = wep; PlayerInfo[playerid][pAmmo3] = ammo; }
else if(PlayerInfo[playerid][pGun4] == 0) { PlayerInfo[playerid][pGun4] = wep; PlayerInfo[playerid][pAmmo4] = ammo; }
}
}
}
else if(reason == 2)
{
PlayerInfo[playerid][pKicked] = 2;
format(astring, sizeof(astring), "%s a quitté x (Kické).",plname);
SendClientMessageToAll(COLOR_RED, astring);
}
else if(reason == 1)
{
format(astring, sizeof(astring), "%s a quitté x (Quitté).",plname);
SendClientMessageToAll(COLOR_RED, astring);
OnPlayerUpdate(playerid);
}Merci de votre futur aide.
-
Voila j'ai un certain problème pour aficher "x a quitté le serveur (raison = y)"
if(reason == 0)
{
PlayerInfo[playerid][pCrashed] = 1;
format(astring, sizeof(astring), "%s a quitté x (Crash).",plname);
SendClientMessageToAll(COLOR_RED, astring);
for(new slot = 0; slot != 12; slot++)
{
new wep, ammo;
GetPlayerWeaponData(playerid, slot, wep, ammo);
if(wep != 0 && ammo != 0)
{
if(PlayerInfo[playerid][pGun1] == 0) { PlayerInfo[playerid][pGun1] = wep; PlayerInfo[playerid][pAmmo1] = ammo; }
else if(PlayerInfo[playerid][pGun2] == 0) { PlayerInfo[playerid][pGun2] = wep; PlayerInfo[playerid][pAmmo2] = ammo; }
else if(PlayerInfo[playerid][pGun3] == 0) { PlayerInfo[playerid][pGun3] = wep; PlayerInfo[playerid][pAmmo3] = ammo; }
else if(PlayerInfo[playerid][pGun4] == 0) { PlayerInfo[playerid][pGun4] = wep; PlayerInfo[playerid][pAmmo4] = ammo; }
}
}
}
else if(reason == 2)
{
PlayerInfo[playerid][pKicked] = 2;
format(astring, sizeof(astring), "%s a quitté x (Kické).",plname);
SendClientMessageToAll(COLOR_RED, astring);
}
else if(reason == 1)
{
format(astring, sizeof(astring), "%s a quitté x (Quitté).",plname);
SendClientMessageToAll(COLOR_RED, astring);
OnPlayerUpdate(playerid);
}
S'est déjà dedans -_-
-
C'est deja dedans mais sa ne fonctionne pas =)
-
Bizarre que ça ne fonctionne pas, je ne vois rien dans ton code qui explique cela.
Par contre, si tu testes en local avec une seule machine, c'est normal que tu ne vois jamais ces messages, ils ne sont jamais affichés pour le joueur qui se déconnecte (puisqu'en fait, il n'est plus là), seulement chez les autres.
La seul chose que je peux te conseiller, c'est de mettre un printf au début de OnPlayerDisconnect et de vérifier qu'il apparait bien dans le log du serveur (ou dans la fenêtre du serveur). Ce qui voudra dire que le callback est bien appelée.
Ex :
public OnPlayerDisconnect(playerid, reason)
{
printf ("Deconnexion de %d, raison %d", playerid, reason);
...
}
Si ceci fonctionne, déplace le printf plus à l'intérieur de la callback OnPlayerDisconnect et refais la même vérification.
NB : Si tu veux tu peux mettre plusieurs printf un peu partout pour suivre le déroulement de OnPlayerDisconnect.
++
Syg
-
Merci je vais esseyer sa.
-
Comme tu utilise mon gm, je peux t'assurer que ça fonctionne, car chez moi je n'ai pas de soucis, a moins que tu aie bidouiller le onplayer
-
Je sais pas, car sa me le faisait non plus avant. Je vais reeseyé. mais la plus part des bugs que j'ai sont du a la compilation du 0.2 a la 0.3 ...
Je viens de retest ton serveur depuis 0 mais sa change rien.
-
Je sais pas, car sa me le faisait non plus avant. Je vais reeseyé. mais la plus part des bugs que j'ai sont du a la compilation du 0.2 a la 0.3 ...
Je viens de retest ton serveur depuis 0 mais sa change rien.
Si tu est seul tu ne vera pas que tu a quitter le serv
-
J'ai fais une erreur sur le gamemode. J'ai modifier quelque chose qui ne fallait pas. Maintenant va faloir recommencer a zero =(
-
J'ai fais une erreur sur le gamemode. J'ai modifier quelque chose qui ne fallait pas. Maintenant va faloir recommencer a zero =(
Pense à faire des sauvegarde de ton GM, quand tu invente par exemple une commande et tout ça et que ça fonctionne bien copie le .amx et le .pwn dans un autre dossier comme ça si tu te plante tu peux toujours reprendre où tu en était avant que tu foire le GM ;)