GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Tutoriels et références SA:MP => Discussion démarrée par: Ssk le 13 Juillet 2010, 19:21:29
-
Voici, un petit topic, qui permettra aux nouveaux scripteurs de savoir quand sont appelées et pourquoi certaines callbacks.
Qu'est ce qu'une callback:
Alors déjà on va expliqué ce qu'est une callback, une callback, est une fonction mais cette fonction là est appelée que si des événements se produisent par exemple:
OnPlayerCommandText() est appelée quand le joueur écris sur la chatbox un texte qui commence par un ' / ', et sur SAMP on les interprètes comme des commandes.
Callbacks:
OnPlayerCommandText( playerid, cmdtext[] )
Cette callback, est appelée lorsqu'un joueur tape une commande dans la chatbox, une commande commence toujours par le caractères ' / '.
Les paramètres envoyés sont:
- playerid: Contient l'id du joueur qui a tapé la commande
- cmdtext: Contient la commande que le joueur a tapée
Si on retourne 0 comme valeur, alors un message sera envoyé au joueur ayant tapé la commande disant "Unknown Command", pour éviter cela retournez autre chose que 0
OnPlayerUpdate( playerid )
Cette callback, est appelée à chaque fois que le joueur envoie un packet ( Synchro des positions, des touches, etc ... ) au serveur, cela veut dire qu'elle est appelées très fréquemment.
Les paramètres envoyés sont:
- playerid: Contient l'id du joueur qui a envoyé le packet au serveur
OnPlayerConnect( playerid )
Cette callback est appelée à la connexion d'un joueur sur le serveur.
Les paramètres envoyés sont:
- playerid: Contient l'id du joueur qui s'est connecté
OnPlayerDisconnect( playerid, reason )
Cette Callback est appelée a la déconnexion d'un joueur.
Les paramètres envoyés sont:
- playerid: L'id du joueur qui s'est déconnecté
- reason: la raison de la déconnexion
OnPlayerEnterVehicle ( playerid , vehicleid , ispassenger )
Cette callback est appelée quand un joueur entre dans un véhicule .
Les paramètres envoyés sont :
- playerid: ID du joueur qui monte dans le véhicule
- vehicleid: ID du véhicule dans lequel le joueur est monté
- ispassenger: Vaut 1 si le joueur monte en passager, sinon 0
OnPlayerExitVehicle ( playerid , vehicleid )
Cette callback est appelée lorsqu'un joueur sort d'un véhicule.
Les paramètres envoyés sont :
- playerid: ID du joueur qui sort du véhicule
- vehicleid: ID du véhicule d'où le joueur est sorti
OnPlayerEnterCheckpoint ( playerid )
Cette Callback est appelée quand un joueur entre d'un Checkpoint.
Les paramètres envoyés sont :
- playerid: ID du joueur qui entre dans un Checkpoint
OnPlayerExitCheckpoint ( playerid )
Cette Callback est appelée quand le joueur sort dans un Checkpoint
Les paramètres envoyés sont :
- playerid: ID du joueur qui sort du checkpoint
OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
Cette Callback est appelée quand un joueur répond à un dialog présent sur sa fenêtre.
Les paramètres envoyés sont :
- playerid: ID du joueur qui à répondu au dialog.
- dialogid: ID du dialog que vous avez préalablement mis, en créant le dialog.
- response: Quel bouton à été appuyé, 0 pour le second bouton, 1 pour le premier ( le premier étant à gauche )
- listitem: ID de l'item sélectionner dans un LIST_BOX
- inputtext: Texte entré dans un INPUT_BOX
Merci à Dizzy-Benno, et à Sim =)
(Voila pour le moment)
-
GG sasuke , c'est bien d'expliquer les bases car souvent elles sont mal comprise par les débutant :)
Merci =)
J'ajouterai les autres callback au fur et à mesure.
-
Salut,
un topic qui s'annonce bien,
bravo, je déplace dans les tutos
bonne chance pour le terminer :P
++Sim++
-
on dirait un wiki :-*
bonne continuation tu a encore pas mal de boulot ^^
-
Merci Dizzy, je corrige les quelques erreurs, et je l'ajoute au premier post
-
Oui, tu as mis deux fois OnPlayerEnterCheckpoint, et tu as mis fonction au lieu de Callback ^^
-
C'est bon j'ai corrigé ^^
-
Ajouté ^^
-
No problème
-
OnPlayerUpdate( playerid )
Cette callback, est appelée à chaque fois que le joueur envoie un packet ( Synchro des positions, des touches, etc ... ) au serveur, cela veut dire qu'elle est appelées très fréquemment.
Les paramètres envoyés sont:
- playerid: Contient l'id du joueur qui a envoyé le packet au serveur
Merci mais si elle est dans le samp d'origine, dis moi pkoi dans certain game mode il y
forward OnPlayerUpdate(playerid)
Si elle y etait, elle ne devrait pas etre définie, ou il nous dirait qu'elle l'est deja.
Merci d'avance
-
OnVehicleMod(playerid,vehicleid,componentid)
Cette callback est appelé quand un joueurs ajoutes un composant de tunng sur sont véhicule
Les paramètres envoyés sont :
• playerid : Le joueur qui tune sont véhicule.
• vehicleid: Le véhicule auquel on ajoute le composant .
• componentid: L'id du composant ajouté au véhicule .
OnPlayerDisconnect(playerid, reason)
Cette callback est appelé quand un joueurs se déconnecte du serveur
Les paramètres envoyés sont :
• playerid : Le joueur qui se déconnect.
• reason: La raison de la déconnection ( il y en a 3, deconnection, crash, kick) .
OnPlayerDeath(playerid, killerid, reason)
Cette callback est appelé quand un joueurs meurt
Les paramètres envoyés sont :
• playerid : Le joueur qui meurt.
• killerid: le tueur du joueur mort .
• reason: La raison de la mort ( De quoi est il mort, ecrasé, carkill, par les point uzi... ) .
OnPlayerStateChange(playerid, newstate, oldstate)
Cette callback est appelé quand un joueurs change d'"état"
Les paramètres envoyés sont :
• playerid : Le joueur qui change d'"état".
• newstate: son nouvel état .
• oldstate: son ancien état . ( plusieur etat, conducteur, passagé, vien se spawn, vien d'etre en spectateur...)
OnPlayerText(playerid, text[])
Cette callback est appelé quand un joueurs tape du text dans le chat, sans le '/'
Les paramètres envoyés sont :
• playerid : Le joueur qui change envoi du text.
• text[]: texte envoyé .
-
Salut,
OnPlayerUpdate( playerid )
Cette callback, est appelée à chaque fois que le joueur envoie un packet ( Synchro des positions, des touches, etc ... ) au serveur, cela veut dire qu'elle est appelées très fréquemment.
Les paramètres envoyés sont:
- playerid: Contient l'id du joueur qui a envoyé le packet au serveur
Merci mais si elle est dans le samp d'origine, dis moi pkoi dans certain game mode il y
forward OnPlayerUpdate(playerid)
Si elle y etait, elle ne devrait pas etre définie, ou il nous dirait qu'elle l'est deja.
Merci d'avance
ce dont tu parle n'est présent que dans certains gamemodes RP plus anciens (qui devrait avoir été modifié depuis la venue de la callback OnPlayerUpdate dans la v 0.2X). En fait, il s'agit d'une fonction qui était appelée chaque fois qu'une / des informations d'un joueur était changé afin de sauvegarder le tout (si j'ai bien compris).
À noter, si c'est le cas de votre GM, changez le nom de cette fonction sinon vous risquez la surcharge de sauvegarde qui ralentira grandement le serveur.
la callback OnPlayerUpdate (depuis la 0.2X, je répète) est belle et bien ce que sasuke la décrit.
D'ailleurs je viens de faire un test en local et elle est appelée (en local hein) 28 fois par secondes. Via internet le nombre sera plus petit comme le ping est plus grand.
++Sim++
-
S'est pour ça que je me suis toujours demandé, pkoi tout le monde nous dis ça alors qu'elle est definie. PAWN bug a ce nivaeau, il devrait signaler qu'elle est définie 2 fois.
Merci Sim
-
Il est la le problème des RP ^^
Depuis la 0.2X ça rame à mort ^^
-
Il est la le problème des RP ^^
Depuis la 0.2X ça rame à mort ^^
Mouais...
Au passage actualise ton poste xD