GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: pinouf42 le 28 Mai 2008, 18:23:46
-
Bonjour,
Je souhaiterais qu'à chaque fois qu'un joueur quitte un vehicule, que la commande reset weapon s'active
Merci d'avance
Voila le post est édité !
-
public OnPlayerExitVehicle(playerid)
{
ResetPlayerWeapons(playerid);
return 1;
}
NV.
-
Je voudrais qu'à chaque fois qu'un joueur quitte un vehicule, que la commande reset weapon s'active
Je veux pas dire, mais tu pourrai peu etre demander autrement ... :rules
Du genre salut ... svp, merci ...
++
nikko
-
Ben quoi c'est ben ce que j'ai fait ! :laugh :laugh :laugh
-
le code ne marche pas pour les voitures de police
-
Ouai maintenant tu la mit
Et Maintenant tu fait des double postes !! :rules :dry
++
nikko
-
CE code ne marche pas !
-
Dommage
++
nikko
-
CE code ne marche pas !
c'est tout bidon de faire fonctionner se code ^^, soit un peu plus poli et calme et on t'aidera ;)
++
j0nj0n
-
Mais je ne suis pas énervé. C'est peut-être le "CE" en majuscule que j'ai mit? si oui c'etait une faute de frappe. Et si j'ai dis quelque chose de malpoli alors je m'en excuse !
Merci
-
Ce n'est pas pour le CE qu'on est pas tres content, mais pour ta phrase entiere, on est pas tes esclaves, juste des gens qui t'aides a résoudre des problemes.
Donc un minimum de politesse du genre "salut, le code ne marche pas :(, pouvez vous m'aider ? Ciao"
Enfin voila.
++
nikko
-
Disons que c'est le minimum :dry
m'enfin... Est ce qu'il a y des erreurs de compil ?? Renvois le code pour voir ce que tu as fais ;)
-
j'ai fait exactement ce qu'a marqué Native. C'est la meme chose et aucune erreur de compil. Mais dans le jeu, quand je sort d'une voiture de police, j'ai toujours le fusils a pompes
-
Tu met un timer dans OnPlayerExitVehicle :happy
Tu le règles sur 2000ms et normalement c'est bon :)
http://wiki.sa-mp.com/wiki/SetTimerEx
-
Je tiens à vous remercier malgré que aucune de vos commandes n'est marché mais je vous remercie pour le temps que vous m'avez consacré.
Ensuite je tiens à partager la methode que j'ai utilisé pour aider les autres:
Tout en haut:
forward AutoRemoveWeapons();
Dans OnGameModInit
SetTimer("AutoRemoveWeapons", 1000, 1); //cela enleve les armes de tous les joueurs chaques secondes (pratique pour les cheaters qui prennent des armes !)
Tout en bas du script
public AutoRemoveWeapons()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
ResetPlayerWeapons(i);
}
}
return 1;
}
-
Dans ton timer
if(IsPlayerConnected(i))
{
Ne te sert a rien !
NV.
-
Si ça sert (je pense). :D
À mon avis ça prend moins de temps d'éxécuter une condition plutôt que d'éxécuter une fonction. :king
++
Alexandre
-
Et bien non ca ne sert a rien !
Le timer ne vas pas executer les fonctions sur des joueur Offline !
Met un else et avec un SendClientMessage qui dit "Ce player n'est pas en ligne" et tu verras bien !
NV.
-
OnGameModeInit:
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
printf("Le joueur %d est connecté", i);
}
else
{
printf("Le joueur %d n'est pas connecté", i);
}
}
Résultat:
(http://www.noelshack.com/uploads/etcestlhiver053562.jpeg)
-
Donc la preuve que ca ne te sert a rien...
NV.
-
Ca sert...
Il vaut mieux tester le paramètre que d'exécuter 200 fois la fonction dans le vide. En effet, normalement même si le joueur n'est pas connecté, SA:MP exécutera quand même le code avec l'ID correspondant.
Donc, oui ca sert.
-
Si c'est toi qui le dit, je me rabaisse :happy
NV.
-
Oui Native, ça sert.
Dans le cas qui nous occupe, ce n'est pas très grave car, mis à part le fait que la fonction du timer mettra un peu plus de temps à s'exécuter, ça n'a pas de conséquences particulières.
Par contre, dans d'autres cas, faire un traitement sur un joueur qui n'est pas connecté peut faire planter le serveur.
Une des règles de base de la programmation en PAWN sous SAMP :
TOUJOURS faire un test sur IsPlayerConnected dans un boucle sur les joueurs.
++
Syg