
(Pour moi, Apprenti = quelqu'un qui sait ce que c'est qu'une callback)
Yop.
Ca a été ma première include, je viens de finir la MàJ v3.1 pour rendre tout ça plus clean. J'ai pas pour habitude de tester mes codes; la raison est simple : avec moi ils marchent jamais (+nofake). Je tiens juste à préciser que j'ai créé mon include AVANT celle d'Emmet_. Je l'ai juste release après. (Et j'avais pas vu qu'y'avait déjà la sienne de rel)
L'include comporte 14 callbacks crées par mes soins et pouvant être extrêmement utiles dans le cadre de la fabrication d'un anti cheat, ou simplement de scripts plus détaillés.
Pré-requis : (Merci à Sasuke)
• YSI 4.0
Les callbacks sont :
• OnPlayerAmmoChange(playerid, olda, newa, weapona) : Appelée lorsque les munitions de l'arme d'un joueur changent. Le paramètre "weapona" correspond à l'arme équipée (weapon armed).
• OnPlayerWeaponChange(playerid, oldw, neww) : Appelée lorsqu'un joueur change d'arme en main.
• OnPlayerHealthChange(playerid, Float:oldh, Float:newh) : Appelée lorsque la barre de vie d'un joueur change
• OnPlayerArmourChange(playerid, Float:olda, Float:newa) : Appelée lorsque la barre d'armure d'un joueur change
• OnServerConnectedPlayersChange(oldc, newc) : Appelée lorsque le nombre de connectés sur un serveur change.
• OnPlayerPosChange(playerid, Float:oldx, Float:newx, Float:oldy, Float:newy, Float:oldz, Float:newz) : Appelée lorsque la position d'un joueur change.
• OnPlayerFPSChange(playerid, oldfps, newfps) : Appelée lorsque les fps (frames per second) d'un joueur changent.
• OnPlayerMoneyChange(playerid, oldm, newm) : Appelée quand l'argent du joueur change
• OnPlayerSpeedChange(playerid, Float:oldsx, Float:newsx, Float:oldsy, Float:newsy, Float:oldsz, Float:newsz) : Appelée quand la vitesse du joueur change (à pied seulement)
• OnPlayerVehicleSpeedChange(playerid, vehicleid, Float:oldsx, Float:newsx, Float:oldsy, Float:newsy, Float:oldsz, Float:newsz) : Appelée quand la vitesse d'un véhicule conduit par un joueur change.
• OnPlayerAnimationChange(playerid, oldal[], newal[], oldan[], newan[]) : Appelée quand l'animation effectuée par un joueur change
• OnPlayerScoreChange(playerid, olds, news) : Appelée quand le score d'un joueur change
• OnPlayerPingChange(playerid, oldp, newp) : Appelée quand le ping d'un joueur change
• OnPlayerNameChange(playerid, oldn[], newn[]) : Appelée quand le nom d'un joueur change
Ces callbacks sont, me direz-vous, très simplistes, mais je trouve que c'est mieux de les avoir sous la main.
Pour les utiliser, c'est simple. Téléchargez le fichier, et rajoutez ce bout de code en haut de votre FS/GM :
#include <s_changes>
Ajoutez ensuite la callback voulue à votre FS/GM comme ceci (par exemple OnPlayerHealthChange)
#define USE_HEALTH
public OnPlayerHealthChange(playerid, Float:oldh, Float:newh)
{
// Actions
return 1;
}
Voilà ! Et j'ai failli oublier le plus important, les liens :
•
Pastebin de l'include (Dernière mise à jour : 6 juin 2014)
Changelog :
3.1 : 6 Juin 2014
• Grand nettoyage
• Suppression de la callback "OnPlayerFire" (remplacée par [url=http://wiki.sa-mp.com/wiki/OnPlayerWeaponShot]OnPlayerWeaponShot[/url] sur la 0.3z)
• Ajout de la callback "OnPlayerFPSChange"
• Utilisation de y_hooks pour éviter l'utilisation de fonctions intra callbacks (Crédits : Y_Less)
• Utilisation de foreach (y_iterate) pour éviter l'utilisation d'une boucle for sur 500 valeurs (Crédits : Y_Less)
• Utilisation des callbacks passée en pré-processeur (nouvelle méthode d'utilisation, crédits : Matthieu381)
• Ajout d'un système de "hook" include (ALS) pour empêcher la multi inclusion
Liste des pré-processeurs disponibles
#define USE_WEAPON - Active la callback "OnPlayerWeaponChange"
#define USE_AMMO - Active la callback "OnPlayerAmmoChange"
#define USE_HEALTH - Active la callback "OnPlayerHealthChange"
#define USE_ARMOUR - Active la callback "OnPlayerArmourChange"
#define USE_MONEY - Active la callback "OnPlayerMoneyChange"
#define USE_CONNECTED - Active la callback "OnServerConnectedChange"
#define USE_POS - Active la callback "OnPlayerPosChange"
#define USE_SPEED - Active les callbacks "OnPlayerSpeedChange" (si le joueur est à pied) et "OnPlayerVehicleSpeedChange" (si le joueur est en véhicule)
#define USE_ANIMATIONS - Active la callback "OnPlayerAnimationChange" (également appelée lorsqu'une animation appliquée à un joueur se termine)
#define USE_SCORE - Active la callback "OnPlayerScoreChange"
#define USE_PING - Active la callback "OnPlayerPingChange"
#define USE_NAME - Active la callback "OnPlayerNameChange"
#define USE_FPS - Active la callback "OnPlayerFPSChange"
NB : Mettre les pré-processeurs voulus AVANT d'inclure la bibliothèque
Peace.