Plugins & Includes

20 fichiers

  1. OnPlayerClickPlayer (Extended)

    Ajout de la possibilité de "cliquer" physiquement sur un joueur (skin).
     
    Utiles :
    http://wiki.sa-mp.com/wiki/OnPlayerClickPlayer
    SelectPlayer(playerid);
    CLICK_SOURCE_SKIN

    18 téléchargements

       1 avis

    0 commentaire

    Mis à jour

  2. actor_plus.inc

    actor_plus 
    v4.1.2
    Hey.
    Je vous présente une petite include qui vous donne quelques fonctions pour manipuler les acteurs et interagir avec eux plus facilement.
     
    Il est à noter qu'il faut différencier les acteurs dynamiques des acteurs statiques. Vous devez le spécifier lorsque vous utilisez les fonctions disponibles. Si vous utilisez le streamer ; l'include que vous utilisez que des acteurs dynamiques et dans le cas où vous n'utilisez pas de streamer, elle considère que ce ne sont que des acteurs statiques. Malgré ça, vous pouvez utiliser les fonctions pour les deux types d'acteurs. Vous avez juste à le spécifier lors de l'utilisation, aussi simple que ça (la variable est isdynamic)
    Je recommande d'avoir la bibliothèque YSI (de Y_Less) pour de meilleures performances (l'include peut utiliser y_iterate et y_timers si possible). L'utilisation de streamer et d'acteurs dynamiques peut également améliorer les performances.
     
    Je vais copier / coller la «documentation» qui se trouve déjà sur GitHub. Je recommande de la lire directement sur GitHub, la présentation est plus claire mais elle
      est en anglais.  
    https://github.com/Dayrion/actor_plus/blob/master/README.md
    Constante
    Ne peut pas être redéfini
    MULTIPLE_TARGET_FOUND: Retourné par GetNearestActorForPlayer ou GetNearestActorByCoord quand plusieurs acteurs sont trouvés et quand return_multiple_target est sur 'true' DEFAULT_ACTOR_VALUE: Utilisez cette constante à la place de toute autre valeur prendra automatiquement la valeur de l'acteur DEFAULT_CHECKING_TIME: Utilisé pour détecter OnPlayerTargetActor ALL_VALUES_INCLUDED: Si ALL_VALUES_INCLUDED est retourné par une fonction, cela signifie que la chose apparaîtra à toutes les étapes (comme les intérieurs ou les mondes virtuels) DEFAULT_ACTOR_REPLACEMENT: Temps (en ms) avant qu'un acteur soit replacé à son ancienne position AP_DEBUG_ENABLED: Si le débug de l'include a besoin d'être lieu, définissez AP_DEBUG_ENABLED avant l'include MAX_ANIMATION_LIBRARY_LENGTH: Longueur maximum du nom d'une librairie d'animations  MAX_ANIMATION_NAME_LENGTH: Longueur maximum du nom d'une animation DEFAULT_IS_DYNAMIC_PARAMETER: Mis automatiquement sur true si vous utilisez le streamer, sinon mis sur false  
    Peut être redéfini
    DEFAULT_ACTOR_DRAW_DISTANCE: Distance maximum laquelle les labels sont affichés | (type: float) MAX_ACTOR_LABEL_LENGTH: Taille maximum qu'un texte peut contenir pour les labels | (type: integer) DEFAULT_ACTOR_COLOR: Couleur par défaut pour le texte des acteurs | (type: hexadecimal) DEFAULT_ACTOR_COLOR_NAME: Couleur par défaut pour le nom des acteurs | (type: hexadecimal) DONT_DETECT_OPTA: Vous pouvez le définir avant l'include pour désactiver la détection de  OnPlayerTargetActor (qui utilise des timers) | (type: N/A) DEFAULT_TEXT_RANGE_DETECTION: Ça vous permet de changer la distance à laquelle les acteurs sont détectés (pour OnPlayerTextNearActor seulement) | (type: float)
    Fonctions générales
    native RespawnActor(actorid, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native SetActorSkin(actorid, skinid, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native IsActorDead(actorid, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native GetActorSkin(actorid, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native ActorPlaySound(actorid, soundid, Float:x, Float:y, Float:z, Float:max_range, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native SetActorName(actorid, actor_name[], bool:display, bool:contain_id = false, bool:reformat_label = false, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native GetActorName(actorid, actor_name[], length = sizeof(actor_name), bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native ToggleActorName(actorid, bool:toggle, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native GetActorTextLabel(actorid, text[], length = sizeof(text), bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native GetActorLabelColor(actorid, bool:ToRGB = false, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); // output -> RGBA native GetActorNameColor(actorid, bool:ToRGB = false, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); // output -> RGBA native ActorHasAttachedLabel(actorid, &bool:name_displayed = false, &bool:text_displayed = false, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native UpdateAttachedActor3DTextLabel(actorid, text[], color, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native DestroyActor3DTextLabel(actorid, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native SetActorChatBubble(actorid, text[], color, Float:drawdistance, expiretime, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER);  
    Fonctions - Dépendantes du streamer
    native Attach3DTextLabelToActor(actorid, const text[], bool:isdynamic, color, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:drawdistance, testlos = 0, worldid = DEFAULT_ACTOR_VALUE, interiorid = DEFAULT_ACTOR_VALUE, playerid = DEFAULT_ACTOR_VALUE, Float:streamdistance = STREAMER_3D_TEXT_LABEL_SD, areaid = DEFAULT_ACTOR_VALUE, priority = 0, bool:store_string = true); // Used to get the real internal actor id used by SA-MP native GetInternalActorIDForPlayer(forplayerid, actorid); // In addition to the streamer native GetDynamicActorInterior(actorid); native SetDynamicActorInterior(actorid, interiorid); native DestroyAllDynamicActors(serverwide); native CountDynamicActors(serverwide); native UpdateDynamicActorForPlayer(playerid); native CountStreamedActorForPlayer(playerid, serverwide); native GetDynamicActorArea(actorid); native SetDynamicActorArea(actorid, STREAMER_TAG_AREA areaid); native STREAMER_TAG_AREA GetDynamicActorPriority(actorid); native SetDynamicActorPriority(actorid, priority); native GetInternalActorIdForPlayer(forplayerid, actorid); Fonctions - Ne dépendes pas du streamer
    native Attach3DTextLabelToActor(actorid, text[], color, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:drawdistance, virtualworld = DEFAULT_ACTOR_VALUE, testlos = 0, bool:store_string = true); native SetActorInvulnerable(actorid, invulnerable = true); // Force actor re-stream native SetActorVirtualWorld(actorid, vworld); // Force actor re-stream Fonctions utiles (aucune include nécessaire)
    native GetNearestActorForPlayer(playerid, &bool:isdynamic = false, type = SEARCH_TYPE_ALL, bool:return_multiple_target = false); native GetNearestActorByCoord(Float:x, Float:y, Float:z, &bool:isdynamic = false, type = SEARCH_TYPE_ALL, bool:return_multiple_target = false); native Float:GetActorDistanceFromPoint(actorid, Float:x, Float:y, Float:z, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native IsPlayerInRangeOfActor(playerid, actorid, Float:range = 2.0, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native IsPlayerAimingActor(playerid, actorid); // Return 0 tout le temps si `DONT_DETECT_OPTA` est défini native IsActorInPlayerFacingAngle(playerid, actorid, Float:max_angle = 90.0, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); Type de recherche:
    SEARCH_TYPE_DYNAMIC: Rechercher seulement les acteurs dynamiques SEARCH_TYPE_STATIC: Rechercher seulement les acteurs statiques SEARCH_TYPE_ALL: Rechercher seulement les acteurs dynamiques et statiques Fonctions «par joueur» (dépends de Pawn RakNet)
    native HideActorForPlayer(forplayerid, actorid, hide_type, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native BringBackActorForPlayer(forplayerid, actorid, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native SetActorHideTypeForPlayer(forplayerid, actorid, hide_type, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native RemoveAllHiddenActorForPlayer(playerid); native ApplyActorAnimationForPlayer(forplayerid, actorid, repeated_animation, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native ClearActorAnimationsForPlayer(forplayerid, actorid, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native SetActorPosForPlayer(forplayerid, actorid, fake_position_type, Float:x, Float:y, Float:z, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); native BringBackActorPosForPlayer(forplayerid, actorid, bool:isdynamic = DEFAULT_IS_DYNAMIC_PARAMETER); Flags pour les acteurs
    Fréquence de dissimulation
    HIDE_TYPE_NONE: Valeur par défaut HIDE_TYPE_ONE_TIME: L'acteur est «caché» une fois et réapparaît lorsqu'il est re-stream par le joueur HIDE_TYPE_PERMANENT: L'acteur est caché jusqu'à que le script le fait revenir pour le joueur. Re-stream l'acteur n'y change rien. Type de répétition d'animation
    ANIMATION_PLAY_NONE: Valeur par défaut ANIMATION_PLAY_ONE_TIME: L'acteur va jouer une animation une fois et l'arrête une fois que le joueur re-stream l'acteur ANIMATION_PLAY_PERMANENT: L'acteur joue la même animation à chaque fois que le joueur re-stream ce dernier Position des acteurs par joueur
    FAKE_POSITION_NONE: Valeur par défaut FAKE_POSITION_ONE_TIME: L'acteur est placé, une fois, à des coordonnées spécifiques. Re-stream l'acteur le place aux coordonnées enregistrées par le serveur. FAKE_POSITION_PERMANENT: L'acteur est placé à des coordonnées spécifiques. Re-stream l'acteur ne change pas ses coordonnées. Callbacks
    forward OnPlayerShotActor(playerid, actorid, weaponid, bool:IsDynamicActor); forward OnPlayerTargetActor(playerid, actorid, weaponid); forward OnPlayerStopTargetActor(playerid, actorid, weaponid); forward OnPlayerMakeDamageToActor(playerid, damaged_actorid, Float:amount, weaponid, bodypart, bool:death, bool:IsDynamicActor); forward OnActorDeath(actorid, killerid, reason, bool:IsDynamicActor); forward OnActorSpawn(actorid, bool:IsDynamicActor); forward OnPlayerStreamForActor(forplayerid, actorid, actor_flags, bool:IsDynamicActor); // Pawn RakNet dependency forward OnActorVirtualWorldChange(actorid, oldvw, newvw, bool:IsDynamicActor); forward OnPlayerTextNearActor(playerid, actorid, text[], bool:IsDynamicActor); forward OnDynamicActorInteriorChange(actorid, oldinterior, newinteriorid); Explications
    OnPlayerShotActor: Appelé quand un joueur tir sur un acteur même si celui-ci est invulnérable OnPlayerTargetActor: Lorsqu'un joueur vise un acteur OnPlayerStopTargetActor: Lorsqu'un joueur ne vise plus un acteur OnPlayerMakeDamageToActor: Appelé lorsqu'un joueur applique des dégâts à un acteur avec une arme à feu. bool:death est mis sur true quand l'acteur va mourir après application des dégâts. Retourner 0 à cette callback empêche l'application des dégâts (et la mort éventuelle). OnActorDeath: Appelé quand un acteur meurt. Mettre les HPs à 0 d'un acteur appel également cette callback. OnActorSpawn: Appelé quand un acteur spawn (lorsqu'il est créé en outre) OnPlayerStreamForActor: Appelé lorsqu'un joueur Stream IN (il voit apparaître l'acteur et non disparaître) un acteur même si celui-ci est caché pour le joueur. Important: actor_flags DEVRAIT être utilisé avec les différents flags présentés ci-dessus. OnActorVirtualWorldChange: Appelé quand le script change le monde virtuel d'un acteur OnPlayerTextNearActor: Appelé quand un joueur parle près d'un acteur OnDynamicActorInteriorChange: Appelé quand un intérieur est mis à un acteur dynamique HUGE thank you to Jelly23 for his precious help and time to help me by answering hundred and hundred of my questions about PawnRakNet and other stuffs. Thanks also to Y_Less for fixing issues about hooking callbacks. <- Flemme de traduire tout ça.

    2 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  3. Simple timers

    j'ai fait un petite include (vraiment petit) qui va permettre de ranger un peux un gm/fs se son une série de Macro utile pour les timer
     
    MACRO:
    v_SetTimerEx(fonctname[], interval, reapeting, format[], mexed); //fonctionne pareille que SetTimerEx v_SetTimer(functname[], interval, reapeting); //fonctionne pareille que SetTimer TimerEx:functname(syntaxe) //appeler a la fin de l'interval de v_SetTimerEx Timer:functname() //appeler a la fin de l'interval de v_SetTimer  
    UTILISATION :
    public OnFilterScriptInit() { v_SetTimerEx("test", 100, false, "i", 1); } TimerEx:test(id) { printf("test du timer %i",id); } ATTENTION:
    Elle fonctionne pareille que les fonction initial mais sa permet de mieux ranger vos code source
     

    2 téléchargements

       0 avis

    0 commentaire

    Envoyé

  4. Vehicle Function

    Bonjours j'ai coder diverse fonction/appel de callback a différant événement a propos des véhicule qui peuvent faciliter la vie de tout développeur.
    Voici comment cela fonctionne est se qui comporte :
     
    CALLBACK:
    public OnVehicleUpdate(vehicleid) //appeler toute les 50ms par véhicule public OnVehicleCreated(vehicleid) //Appeler a la création du véhicule via la foncione CreateVehicleEx public UpdateVehicleCarDoors(vehicleid, door, status) //appeler quand on modifie le status des porte d'un véhicule public UpdateVehicleCarWindows(vehicleid, win, status) //pareille qu'au dessus mais pour les fenêtres  
    FONCTION:
    native CreateVehicleEx(model, Float:x, Float:y, Float:z, Float:rot, color1, color2, respawn_delay, addsirene = 0, plate[] = "",virtualworld = -1, lock = 0); //créer un véhicule avec des syntaxe supplémentaire a l'original || retourne l'id du véhicule créer native GenerateNumberPlate(plate[], size, dest[]); //Permet de générer des plaque d'imatriculation avec un format || retourne aucune valeur spécifique native GetVehicleCarDoor(vehicleid, door); //permet de voir le status d'une porte || retourne le status de la porte native SetVehicleCarDoor(vehicleid, door, bool:status); //permet de modifier le status d'une porte || retourne aucune valeur spécifique native GetVehicleCarWindows(vehicleid, win); //permet de voir le status d'une fenètre || retourne le status de la fenètre native SetVehicleCarWindows(vehicleid, win, bool:status); //permet de modifier le status d'une fenètre. || ne retourne aucune valeur spécifique native InitVehicleUpdate(vehicleid); //permet de lancée le timer d'update (valide qui si la callback OnVehicleUpdate(vehicleid) est présente || retourne l'id du timer lancée  
    A utiliser dans les syntaxe door et win :
    VEH_DRIVER //coter conducteur VEH_PASSENGERS //coter passager VEH_BACK_LEFT //coter arrière gauche VEH_BACK_RIGHT //coter arrière droit VEH_UP //place avant (conducteur et passager avant) VEH_DOWN //place arrière (passager arrière) VEH_ALL //tout le véhicule Exemple
    La logique est la même pour les porte.
    CMD:fenetre(playerid, params[]) { if(GetPlayerVehicleID(playerid) == INVALID_VEHICLE_ID) return false; SetVehicleCarWindows(GetPlayerVehicleID(playerid), VEH_ALL, 0); //ouvrir la fenetre }  
     
    Génération de plaque formater :
    la fonction GenerateNumberPlate fonctionne ainsi :
    public OnFilterScriptInit() { new newplate[12], frmplate[12] = "ss<iisii>ss"; //s = lettre || i = chiffre || les autre caractère que i et s seront recopier. print(frmplate); for(new i;i < 50;i++) { GenerateNumberPlate(frmplate, sizeof(frmplate), newplate); print(newplate); strdel(newplate, 0, strlen(newplate)); } }  
    Cette fonction ma générer 50 plaque différante :
     
     
    BUG:
     
    Je n'est pas tout tester car sur certaine chose je suis assez confiant, mais au moindre bug merci de le partagée dans le sujet support

    3 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  5. Bases

    Conversions valeurs 32bits en base 2, 10 et 16.
    Codé en C#, because j'savais pas quoi faire de ma soirée et j'voulais retoucher un peu à ce langage.
     
    Sources: https://github.com/Dutheil/Bases




     



    4 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  6. CLI

    C_far Library Includes
     
    c_actors - 0.2
    c_countdown - 0.4
    c_doorswindows - 0.3
    c_skinscat - 0.3
    c_speakdialog - 0.2
    c_tdselect - 0.6
    c_time - 0.2
    c_uid - 0.2
    c_vehcat - 0.4 (16/06/17)
    c_vehspeed - 0.4
     

    13 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  7. [email protected]

    [email protected] v0.1
     
    Informations :
     
    Cette include permet de rendre un joueur en flammes et que celui-ci perde des dégâts de manière aléatoires durant un temps prédéfinit.
     
    Fonctions :
     
    native [email protected](const playerid); -> Cette fonction retourne un slot libre pour attacher un objet sur le joueur. native [email protected](const playerid, const adminid, const time); -> Cette include permet de rendre un joueur en flammes et que ce dernier perde des dégâts de manière aléatoires durant un temps prédéfinit. -> Paramètre n°1 : playerid retourne l'id du joueur qui prendra flammes. -> Paramètre n°2 : adminid retourne l'id du joueur qui brule playerid. Si adminid retourne INVALID_PLAYER_ID playerid prend flammes tout seul. -> Paramètre n°3 : time retourne le temps en seconde durant lequel playerid prend flammes.  
    Commande :
     
    La commande /bruler est incluse et fonctionnera uniquement si vous êtes connectés au rcon.
     
    Compatibilité :
     
    y_timers ou les timers par défauts. ZCMD et YCMD ou sans processeur de commande (OnPlayerCommandText)  
    Utilisation :
     
    #include "[email protected]"  
    Vous l'aurez compris, l'include doit être appelé après les includes y_timers, zcmd et y_commands si vous les utilisez.
     
    Configuration :
     
    MinTimeOnBurn : Temps en secondes minimum durant lequel le joueur sera en flammes. MaxTimeOnBurn : Temps en secondes maximum durant lequel le joueur sera en flammes. MaxDamageBySeconde : Dégâts soustrait chaque seconde.  
    Prérequis :
     
    Le plugin et l'include sscanf sont nécessaires pour que l'include fonctionne (Lien).  
    MAJ :
     
    v0.1 - Première version
     
     

    10 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  8. Fichier color

    Voici un petit fichier avec plus de 305 couleur pour vous amusez et a pas chercher plein de couleur pour rien

    7 téléchargements

       0 avis

    0 commentaire

    Envoyé

  9. pause.inc

    pause.inc
    Pour introduire cette include, je tient à précisier que je suis conscient que cette include est très simple à réaliser et que cela explique (en partie) qu'elle est destinée aux débutants. Cette include a été réalisé principalement dans le but de me faire comprendre comment la méthode ALS par hooking fonctionne.
    * Deux façons d'utiliser:
    - Avec y_hooks
     
    #include <pause_ALS> - Sans y_hooks
     
    #include <pause_hook> Callback & fonction:
    -------------------------------------------------------------------------------------      public OnPlayerUnPause(playerid, time);         - Quand un joueur retourne in game après avoir été AFK. Donne le temps, en secondes, durant lequel le joueur était AFK.     public OnPlayerPause(playerid);         - Quand un joueur revient sur son bureau ou appuie sur échap.     bool:IsPlayerPaused(playerid);         - Returne si un joueur est, ou non, AFK.     ------------------------------------------------------------------------------------- * Configuration:
    Si vous voulez mettre des valeurs pré-définies, vous devez les définir avec l'include:
    #define INTERVAL_AFK_DETECT 500 // Toutes les 500 ms, un timer vérifie si un joueur est AFK ou non (Recommendé : 800ms) #define MAX_TIME_ALLOWED 3 // Temps, en secondes, avant qu'un joueur soit considéré comme AFK (Recommendé : 3 secondes) #include <pause_hook> // ou <pause_ALS> Include:
    pause_hook.inc
    pause_ALS.inc
    * Credits:
    » Konstantinos : Pour son aide majeur depuis que j'ai commence à apprendre MySQL & ALS (Joueur du forum sa-mp anglais).
    » [HLF]Southclaw : Pour son aide majeur & précisue. Si vous souhaitez apprendre la méthode ALS pour les hooks, lisez ça (en anglais - Joueur du forum sa-mp anglais).
    » Y_Less: pour son include (y_hook).

    7 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  10. Envois de SMS

    Include Officiel
    Envois de SMS
    Auteur: Kiki
    Bonjour,
    Je vous publie aujourd'hui un script qui à pour utilité d'envoyer un SMS.
     
    Le script n'est pas fonctionnel en l'état, vous devrez vous inscrire sur VERYSMS et faire quelques modifications:
     
     
    Aucune mise à jour ne seras faites (hors bug éventuelle). Je n'est pas tester le script!
     
    Possibilité de rajouter ceci à votre script initiale pour qu'il fonctionne:

     
     

    2 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  11. AutoChatColor

    Bonjour !
     
    Aujourd'hui je vous propose un prox detector pour un chat RP basique.
    Mais ce qui fait sa petite particularité c'est qu'il génère les dégradés de gris TOUT SEUL ! OUI OUI ! Plus besoin de mettre 12 couleurs avec des range fixés au hasard !
     
    La liste des fonctions :
    // Prox chat forward EnableDefaultChatProxDetect(bool:t_enable); forward SendProxMessage(senderID, message[]); forward GetProxChatColor(senderID, receiverID); // Alpha forward EnableAlpha(bool:t_enable); // Colors forward SetColors(t_startingColor, t_endingColor); forward SetStartingColor(t_startingColor); forward SetEndingColor(t_endingColor); // Distance forward SetMaxDistance(Float:t_maxDist); Donc je pense que le nom des fonctions est assez parlant.
    Toutefois, chose à savoir : 
    - startingColor est la couleur du début de la plage de dégradé dans le sens numérique. CaD que startingColor est le gris le plus foncé, et endingColor sera le gris le plus clair (le blanc souvent).
    L'alpha se gère via la plage de couleur (par exemple, pour avoir un alpha de 55 lorsque la personne est à la limite du range : SetStartingColor(0xRRGGBB55) et ensuite EnableAlpha(true) ).
    - Le prox chat par défaut est vraiment simpliste, je vous invite donc à le laisser désactiver et à faire votre tambouille habituelle avec SendProxMessage.
     
    Voilà voilà, j'espère que ça vous sera utile (vous pouvez vous amuser à ne pas mettre que des dégradés de gris  car chacune des trois couleurs primaire est indépendante l'une de l'autre !).

    19 téléchargements

       2 avis

    4 commentaires

    Mis à jour

  12. [INC] n_fonctions

    Bonjour !
    Aujourd'hui je propose ma 1ere include que j'ai realiser aujourd'hui, celle-ci regoupe quelques fonctions utiles pour les nouveaux codeurs (et pas scripteurs @Dutheil, j'ai compris ^^).
    /* native TeleportPlayer(playerid,string[],time,style,Float:X,Float:Y,Float:Z,interior,virtualworld,angle) native MoveVehicleTo(vehicleid, Float:x, Float:y, Float:z, Float:health, interiorid) native MoveObjectForGate(objectid, Float:X, Float:Y, Float:Z, Float:Speed ,funcname[], interval, repeating) native GetTime() native SetPlayerMoney(playerid,amount) native KickAll() native BanAll() native IsPlayerOnFoot(playerid) native GivePlayerHealth(playerid,Float:Health) native ClearChat() native SendNearbyMessage(playerid, Float:radius, string[], col1, col2, col3, col4, col5) native IsPlayerNearPlayer(playerid, targetid, Float:radius) */  

    10 téléchargements

       0 avis

    0 commentaire

    Envoyé

  13. Fonction Utile j_fonction

    Ce fichier Regroupe plusieurs fonctions utile pour les  nouveaux Scripteur  
     
    /* native GiveHealth(playerid,Float:Health) native ClearChatForAll() native GetPlayerFPS(playerid) native GetName(playerid) native GetPlayerSpeed(playerid) native TakeHealth(playerid, Float:Health) native Slap(playerid) native GetVehicleSpeed(vehicleid) native DisarmAll() native GetAmmo(playerid) native JailPlayer(playerid) native UnJailPlayer(playerid) native GiveAllCash(cash) native GiveAllScore(score) native vehicle_lock(vehicleid) native vehicle_unlock(vehicleid) native banEx(playerid, raison[]) native SlapEx(playerid, raison[]) */  

    4 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  14. Papawytems

    Ce Plugin date un peu et j'suis entrain de développer une nouvelle version beaucoup plus poussée pour un serveur, à voir si je la sortirais en tant que màj plus tard.
    Le plugin peut avoir des bugs, merci des les signaler, j’essaierais de les régler, promis !
    La version linux n'est pas "testée" donc AU PIRE, il faut recompiler le plugin (et c'est pas la chose la plus aisée du monde).
     
    /!\ La documentation est finie ! Disponible ici : https://github.com/Papawy/Papawytems/wiki
     
    Bonsoir/Bonjour !
    Aujourd'hui je vous propose un petit plugin qui permet une gestion d'items assez efficace.
    La liste des fonctions est détaillée dans papawytems.inc (j'ai eu la flemme de faire la doc de toutes les fonctions mais ça va arriver, et les noms sont assez explicites).
    Le post sera mis à jour en temps voulu, lorsque tout sera finalisé (doc, version linux, et tout le bazar).
     
    Quelques explications
    Tout d'abord, vous devez créer un ItemSchema qui sera un modèle pour vos Items, il spécifie le nom par défaut, le model, et le type de l'item.
    Tout ItemSchema a un type, par exemple : TYPE_FOOD, TYPE_WEAPON, ou 4, 5, 659, enfin bref, un entier.
    /!\ ATTENTION : Récupérez bien l'id de l'ItemSchema, il est très important pour la suite !
    Toute modification sur l'ItemSchema se répercute sur les Items associés (sauf si le nom a été modifié pour l'item)
    Après cela vous créez votre Item via CreateItem (ou CreateItemEx si vous voulez directement spécifier les positions).
    /!\ ATTENTION : Récupérez bien l'id de l'Item, il est très important pour la suite !
    Pour afficher l'Item, faites un ShowItem(itemID), et HideItem(itemID) pour le cacher.
     
    Téléchargement
    Version actuelle : 1.2 (pre-release en test)
    Les versions windows, linux ainsi que la version compilable sont disponible sur GitHub
     
    Crédits
    Zeex -> SAMPGDK
    Moi -> plugin
    Utilisez le, partagez le, modifiez le, je ne vous dirais rien. Un petit plus serait quand même d'indiquer qu'il vient de moi, merci .
     
    Si vous voyez des bugs ou autres, prévenez moi et dites moi comment il est arrivé pour que je le reproduise et le corrige !

    4 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  15. Répertoire

    Bonsoir à tous, ou bonjour, selon l'heure à laquelle vous regardez ce thread.
     
    Donc, je viens de réaliser suite à une demande, une include de "Repertoire", chaque joueur possède un répertoire auquel vous pouvez ajouter, modifier et supprimer des contacts.
    J'ai essayé de faire un maximum de fonctions pour tout les cas. S'il en manque dites le moi, je serais ravis de les rajouter.
    Bon, sans plus attendre voici la liste des fonctions (tout droit tirée de l'include) :
     
     
    Petite précision :
    - Une constante MAX_CONTACTS est déclarée (de base à 50), vous pouvez augmenter le nombre maximum en modifiant l'include.
    Installation : copiez collez dans un fichier texte vierge. Sauvegardez sous le nom "repertoire.inc". Placez le fichier dans "pawno/include".
    Aller, à plus tard !

    3 téléchargements

       0 avis

    0 commentaire

    Mis à jour

  16. dth_countdown

    dth_countdown.inc v0.4
    Après avoir écrit un tutoriel sur la façon de coder un décompte, j'me suis dit hier soir que j'allais coder une petite include pour créer des décomptes plus facilement.
    2 fonctions et 2 callbacks
     
    StartCountdownForPlayer : ID du joueur Nom du décompte Temps du décompte Texte du décompte Type de décompte (GAMETEXT, MESSAGE, TEXTDRAW1, TEXTDRAW2) Son (true : oui, false : non) (optionnel)  
    Retourne :
     
    L'id du décompte si tous les paramètres sont bons. -1 : - Si votre texte est supérieur à 120 caractères.
    - Si le temps est inférieur à 1 ou supérieur 999.
    - Si vous avez dépassé le nombre de décomptes max (500).
    - Si vous avez oublié de placé le [XX] dans votre texte, il permet de placer le temps.
    - Si votre texte est supérieur à 60 caractères pour le type TEXTDRAW1.
    - Si votre texte est supérieur à 22 caractères pour le type TEXTDRAW2.  
     
    Utilisation :
     
      #include #include public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp("/start", cmdtext, true) == 0) return StartCountdownForPlayer(playerid, Test, 10, "Tu recevras une arme dans ~n~[XX] secondes", GAMETEXT, true); return 0; }  
     
     
    StopCountdown : ID du décompte  
    Retourne :
     
    1 La fonction a bien été exécutée. 0 L'id du décompte est invalide.  
     
    Utilisation :
     
      #include #include new countdown; public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/start", cmdtext, true) == 0) { countdown = StartCountdownForPlayer(playerid, Test, 10, "Tu recevras une arme dans ~n~[XX] secondes", GAMETEXT, true); return 1; } if(strcmp(cmdtext, "/stop", true) == 0) { if(!StopCountdown(countdown)) return SendClientMessage(playerid, -1, "Erreur : ID du décompte erroné."); return 1; } return 0; }  
    Le nom du décompte est appelé à la fin du décompte pour exécuter le code que vous souhaitez à la fin du décompte.
    Il est défini en second paramètre de la fonction StartCountdownForPlayer.
    S'utilise comme zcmd ou easydialog :
     
      #include #include public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp("/start", cmdtext, true) == 0) return StartCountdownForPlayer(playerid, Test, 10, "Tu recevras une arme dans ~n~[XX] secondes", GAMETEXT, true); return 0; } P_CNTD:Test(playerid) { GivePlayerWeapon(playerid, 24, 150); return 1; }  
    J'ai aussi tout bêtement ajouté 2 callbacks :
     
    forward OnPlayerCountdownStarted(playerid, countdownid, time); /* Appelé quand le décompte du joueur commence */ forward OnPlayerCountdownFinished(playerid, countdownid); /* Appelé quand le décompte du joueur est terminé. */  
    Lien GitHub : https://github.com/Dutheil/DTH/blob/mas ... ntdown.inc

    1 téléchargement

       0 avis

    0 commentaire

    Envoyé

  17. dth_skinscat

    dth_skinscat.inc v0.1
    30 fonctions et 35 macros.
     
    === FUNCTIONS === native IsValidSkin(const skinid); native IsSkinWhite(const skinid); native IsSkinBlack(const skinid); native IsSkinHispanic(const skinid); native IsSkinChinese(const skinid); native IsSkinMale(const skinid); native IsSkinFemale(const skinid); native IsSkinBeach(const skinid); native IsSkinAgriculture(const skinid); native IsSkinWhore(const skinid); native IsSkinSportive(const skinid); native IsSkinConstruction(const skinid); native IsSkinGrove(const skinid); native IsSkinBallas(const skinid); native IsSkinAztecas(const skinid); native IsSkinVagos(const skinid); native IsSkinDaNang(const skinid); native IsSkinRifa(const skinid); native IsSkinBiker(const skinid); native IsSkinGang(const skinid); native IsSkinTriad(const skinid); native IsSkinRussianMafia(const skinid); native IsSkinItalianMafia(const skinid); native IsSkinMafia(const skinid); native IsSkinSecurity(const skinid); native IsSkinSheriff(const skinid); native IsSkinPolice(const skinid); native IsSkinSWAT(const skinid); native IsSkinFBI(const skinid); native IsSkinArmy(const skinid); native IsSkinFireFighter(const skinid); native IsSkinParamedic(const skinid); native IsSkinPublicService(const skinid); === MACROS === dth_skin_WHITE - Using in -> switch YES, array YES with the Zeex's PAWN Compiler otherwise NO. dth_skin_BLACK - Using in -> switch YES, array YES. dth_skin_HISPANIC - Using in -> switch YES, array YES. dth_skin_CHINESE - Using in -> switch YES, array YES. dth_skin_MALE - Using in -> switch YES, array YES with the Zeex's PAWN Compiler otherwise NO. dth_skin_FEMALE - Using in -> switch YES, array YES. dth_skin_BEACH - Using in -> switch YES, array YES. dth_skin_AGRICULTURE - Using in -> switch YES, array YES. dth_skin_WHORE - Using in -> switch YES, array YES. dth_skin_SPORTIVE - Using in -> switch YES, array YES. dth_skin_CONSTRUCTION - Using in -> switch YES, array YES. dth_skin_GROVE - Using in -> switch YES, array YES. dth_skin_BALLAS - Using in -> switch YES, array YES. dth_skin_AZTECAS - Using in -> switch YES, array YES. dth_skin_VAGOS - Using in -> switch YES, array YES. dth_skin_DANANG - Using in -> switch YES, array YES. dth_skin_RIFA - Using in -> switch YES, array YES. dth_skin_BIKER - Using in -> switch YES, array YES. dth_skin_GANG - Using in -> switch YES, array YES. dth_skin_TRIAD - Using in -> switch YES, array YES. dth_skin_RUSSIANMAFIA - Using in -> switch YES, array YES. dth_skin_ITALIANMAFIA - Using in -> switch YES, array YES. dth_skin_MAFIA - Using in -> switch YES, array YES. dth_skin_SECURITY - Using in -> switch YES, array YES. dth_skin_SHERIFF - Using in -> switch YES, array YES. dth_skin_POLICE - Using in -> switch YES, array YES. dth_skin_SWAT - Using in -> switch YES, array YES. dth_skin_FBI - Using in -> switch YES, array YES. dth_skin_ARMY - Using in -> switch YES, array YES. dth_skin_FIREFIGHTER - Using in -> switch YES, array YES. dth_skin_PARAMEDIC - Using in -> switch YES, array YES. dth_skin_PUBLICSERVICE - Using in -> switch YES, array YES.  
    Lien GitHub : https://github.com/Dutheil/DTH/blob/mas ... inscat.inc

    2 téléchargements

       0 avis

    0 commentaire

    Envoyé

  18. dth_time

    dth_time.inc v0.1
    Une include vous permettant de (dé)formater un temps.
    2 fonctions
     
    Informations :
    Les fonctions sont basées sur un format particulier.   native ReturnSecondByDate(const duration[]); native ReturnDateBySecond(time); Exemple théorique :
    2 jours 5 heures 30 minutes et 15 secondes : 2j5h30m15s (192 615 secondes) 2 jours 5 heures et 30 minutes : 2j5h30m (192 600 secondes) 2 jours et 30 minutes : 2j30m (174 600 secondes) 2 jours et 15 secondes : 2j15s (172 815 secondes) 5 heures et 30 minutes : 5h30m (19 800 secondes)  
    Exemple d'utilisation :
      main() { print("_____________________"); print("ReturnSecondByDate"); printf("2j5h30m15s : %d", ReturnSecondByDate("2j5h30m15s")); printf("2j5h30m : %d", ReturnSecondByDate("2j5h30m")); printf("2j30m : %d", ReturnSecondByDate("2j30m")); printf("2j15s : %d", ReturnSecondByDate("2j15s")); printf("5h30m : %d", ReturnSecondByDate("5h30m")); print("_____________________"); print("ReturnDateBySecond"); printf("192 615 : %s", ReturnDateBySecond(192615)); printf("192 600 : %s", ReturnDateBySecond(192600)); printf("174 600 : %s", ReturnDateBySecond(174600)); printf("172 815 : %s", ReturnDateBySecond(172815)); printf("19 800 : %s", ReturnDateBySecond(19800)); }  
    Très utile pour les commandes temporaires (ban, mute, jail...) : "/ban Joueur 1h30m La raison"
    Lien GitHub : https://github.com/Dutheil/DTH/blob/master/dth_time.inc

    0 téléchargement

       0 avis

    0 commentaire

    Envoyé

  19. dth_vehspeed

    dth_vehspeed.inc v0.3
    Avec cette include, contrôlez facilement la vitesse des véhicules de votre serveur.
    3 fonctions et 3 macros.
    Informations :
     
    Comme vous le verrez dans les paramètres de 2 fonctions, vous devrez indiquer si vous voulez communiquer avec ces fonctions en km/h ou mp/h.   native ConvertKmhToMph(const kmh); native ConvertMphToKmh(const mph); native GetVehicleSpeed(const vehicleid, const dth_speed_unit:unit=kmh); native SetVehicleSpeed(const vehicleid, speed, const dth_speed_unit:unit=kmh); native GetSpeedByMilliseconds(const speed, const milliseconds); native GetVehicleModelTopSpeed(const modelid);  
    Avec ces fonctions, vous pourrez créer un compteur de vitesse, un limiteur de vitesse, régulateur de vitesse et un système de kilométrage facilement.
    Lien GitHub : https://github.com/Dutheil/DTH/blob/mas ... hspeed.inc

    3 téléchargements

       0 avis

    0 commentaire

    Envoyé

  20. dth_tdselect

    dth_tdselect.inc v0.5
    Cette include vous permet de mieux organiser votre code, dans le cas où vous utilisez beaucoup de TextDraws sélectionnables.
    2 fonctions et 1 callback.
     
    dth_TextDrawSetSelectable : ID du textdraw Sélection Nom d'appel  
    Retourne : Pas de valeur spécifique.
    Utilisation :
     
    #include #include new Text:Bouton; public OnGameModeInit() { Bouton = TextDrawCreate(545.0, 410.0, "Bouton Yolooo"); TextDrawTextSize(Bouton, 635.000000, 30.000000); TextDrawBackgroundColor(Bouton, -1); TextDrawColor(Bouton, 0xFF0000FF); TextDrawSetShadow(Bouton, 5); TextDrawSetOutline(Bouton, 1); TextDrawFont(Bouton, 1); TextDrawSetProportional(Bouton, 1); TextDrawLetterSize(Bouton, 0.340001, 2.999999); dth_TextDrawSetSelectable(Bouton, 1, Test1); // <-------- return 1; }  
    dth_PlayerTextDrawSetSelectable :
     
    ID du joueur ID du textdraw Sélection Nom d'appel  
    Retourne : Pas de valeur spécifique.
    Utilisation :
     
      #include #include new PlayerText:Bouton; public OnPlayerConnect(playerid) { Bouton2 = CreatePlayerTextDraw(playerid, 557.0, 360.0, "Bouton aha"); PlayerTextDrawTextSize(playerid, Bouton2, 637.0, 30.0); PlayerTextDrawBackgroundColor(playerid, Bouton2, -1); PlayerTextDrawColor(playerid, Bouton2, 0x228301FF); PlayerTextDrawSetShadow(playerid, Bouton2, 5); PlayerTextDrawSetOutline(playerid, Bouton2, 1); PlayerTextDrawFont(playerid, Bouton2, 1); PlayerTextDrawSetProportional(playerid, Bouton2, 1); PlayerTextDrawLetterSize(playerid, Bouton2, 0.340001, 2.999999); dth_PlayerTextDrawSetSelectable(playerid, Bouton2, 1, Test2); // <-------- return 1; }  
    OnPlayerCancelSelectByEchap:
     
    ID du joueur  
     
    L'appel de la fonction fonctionne comme zcmd/easydialog ou mon autre include (dth_countdown).
    Je vous montre un exemple, vous comprendrez :
     
      #include #include main(){} new Text:Bouton1, PlayerText:Bouton2; public OnGameModeInit() { Bouton1 = TextDrawCreate(545.0, 410.0, "Bouton Yolooo"); TextDrawTextSize(Bouton1, 635.000000, 30.000000); TextDrawBackgroundColor(Bouton1, -1); TextDrawColor(Bouton1, 0xFF0000FF); TextDrawSetShadow(Bouton1, 5); TextDrawSetOutline(Bouton1, 1); TextDrawFont(Bouton1, 1); TextDrawSetProportional(Bouton1, 1); TextDrawLetterSize(Bouton1, 0.340001, 2.999999); dth_TextDrawSetSelectable(Bouton1, 1, Test1); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp(cmdtext, "/select", true) == 0) return SelectTextDraw(playerid, 0xFF4040AA); if(strcmp(cmdtext, "/deselect", true) == 0) return CancelSelectTextDraw(playerid); return SendClientMessage(playerid, -1, "Commande inconnue."); } public OnPlayerConnect(playerid) { Bouton2 = CreatePlayerTextDraw(playerid, 557.0, 360.0, "Bouton aha"); PlayerTextDrawTextSize(playerid, Bouton2, 637.0, 30.0); PlayerTextDrawBackgroundColor(playerid, Bouton2, -1); PlayerTextDrawColor(playerid, Bouton2, 0x228301FF); PlayerTextDrawSetShadow(playerid, Bouton2, 5); PlayerTextDrawSetOutline(playerid, Bouton2, 1); PlayerTextDrawFont(playerid, Bouton2, 1); PlayerTextDrawSetProportional(playerid, Bouton2, 1); PlayerTextDrawLetterSize(playerid, Bouton2, 0.340001, 2.999999); dth_PlayerTextDrawSetSelectable(playerid, Bouton2, 1, Test2); return 1; } public OnPlayerSpawn(playerid) { TextDrawShowForPlayer(playerid, Bouton1); PlayerTextDrawShow(playerid, Bouton2); return 1; } TDS:Test1(playerid) { return SendClientMessage(playerid, -1, "Tu cliques sur le bouton 1"); } PTDS:Test2(playerid) { return SendClientMessage(playerid, -1, "Tu cliques sur le bouton 2"); } public OnPlayerCancelSelectByEchap(playerid) { return SendClientMessage(playerid, -1, "Vous venez de presser Echap et vous n'êtes plus en mode de sélection."); }  
    Lien GitHub : https://github.com/Dutheil/DTH/blob/mas ... select.inc

    2 téléchargements

       0 avis

    0 commentaire

    Envoyé