/* Mini-Script réalisé pour l'exercice 19/08/2012 sur le forum Sa:Mp. Mini-script réalisé par Jujuv. */ #include #define SPECIAL_ACTION_PISSING 68//Se référer au Wiki officiel e Sa:Mp #define ResetPlayerAnim(%0) SetPlayerSpecialAction(%0, SPECIAL_ACTION_NONE)//C'est plus pour montrer la puissance des macros qu'autre chose ^^' enum//Enumeration des IDs de dialogues { dAnim } stock ApplyPlayerAnimation(playerid, animID)//Parceque la programmation modulaire, ça gére { if(!IsPlayerConnected(playerid)) return 1; if(GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_NONE) SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); SetPlayerSpecialAction(playerid, animID); return 0; } public OnPlayerCommandText(playerid, cmdtext[]) { if(!(strcmp("/anim", cmdtext, true) || strcmp("/animation", cmdtext, true)))//La commande { ShowPlayerDialog(playerid, dAnim, DIALOG_STYLE_LIST, "Choix de l'animation", "Dance 1\nDance 2\nDance 3\nDance 4\nMains en l'air\nUtilisation d'un telephone\nS'asseoir\nRaccrocher un telephone\nBoire une biére\nFumer un cigare\nBoire du vin\nBoire un soda\nUriner\nMennoté(e)", "Ok", "Annuler"); return 1; } return 0; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(!response)//Permet de quitter le menu return 0; switch(dialogid) { case dAnim: { switch(listitem) { case 0: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_DANCE1); case 1: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_DANCE2); case 2: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_DANCE3); case 3: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_DANCE4); case 4: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_HANDSUP); case 5: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_USECELLPHONE); case 6: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_SITTING); case 7: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_STOPUSECELLPHONE); case 8: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_DRINK_BEER); case 9: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_SMOKE_CIGGY); case 10: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_DRINK_WINE); case 11: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_DRINK_SPRUNK); case 12: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_PISSING); case 13: ApplyPlayerAnimation(playerid, SPECIAL_ACTION_CUFFED); default: { printf("[ERREUR] Type: Action innatendue - Importance: élevé - Detailles: La callback OnDialogResponse() a été appelé depuis le dialogue dAnim avec une valeur innatendue pour listitem - Valeur reçu: %i", listitem); } } } default: { printf("[ERREUR] Type: Action innatendue - Importance: élevé - Detailles: La callback OnDialogResponse() a été appelé avec un ID de dialogue innatendue - Valeur reçu: %i", dialogid); } } return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys & KEY_ACTION) { ResetPlayerAnim(playerid); } }