• 23 Avril 2025, 19:55:24


Auteur Sujet: [INC] Areas (Zones)  (Lu 5213 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
[INC] Areas (Zones)
« le: 02 Juin 2009, 02:08:50 »
Description
 Ce script va vous permetre de crée facilement des zone soit pour tout les joueur soit pour un joueur
 
 Les fonction:
Code: (pawn) [Sélectionner]
CreateArea(Float:minX, Float:maxX, Float:minY, Float:maxY); // Crée une zone pour tout les joueur, renvoi: l'id de la zone ou INVALID_AREA si le nombre de zone maximal est ateint
DestroyArea(areaid); // Detruire une zone, renvoi: true si la zone a bien été detruite, false si l'id est incorect ou que la zone n'etait pas crée
IsPlayerInArea(playerid, areaid); //Verifie si un joueur est dans la zone 'areaid', renvoi: true si le joueur est dans la zone, false si c'est pas le cas
GetPlayerInArea(playerid); //renvoi: l'id de la zone dans laquel se trouve le joueur, INVALID_AREA si le joueur n'est pas dans une zone
SetPlayerInArea(playerid,areaid); //Place le joueur au centre de la zone 'areaid', renvoi: true si le joueur a bien été placer dans la zone, false si l'id de la zone est incorect ou que la zone n'etait pas crée

 // Les fonction suivante renvoi la meme chose que leur equivalent en zone pour tout les joueur
CreatePlayerArea(playerid,Float:minX, Float:maxX, Float:minY, Float:maxY);
DestroyPlayerArea(playerid,areaid);
IsPlayerInPlayerArea(playerid, areaid);
GetPlayerInPlayerArea(playerid);
SetPlayerInPlayerArea(playerid,areaid);

Telechargement

 V1.0
 

Instalation

 - Placer le fichier 'areas.inc' dans votre dossier pawno/include
 - Ajouter '#include <areas>' en haut de votre gamemode
 - Ajouter 'AR_OnGameModeInit();' TOUT EN HAUT de la callback 'OnGameModeInit'
 - Ajouter 'AR_OnGameModeExit();' dans 'OnGameModeExit'
 - Ajouter 'AR_OnPlayerConnect(playerid)'; dans 'OnPlayerConnect'
 - Ajouter 'AR_OnPlayerDisconnect(playerid)'; dans 'OnPlayerDisconnect'
 - Ajouter en bas de votre script ceci:
Code: (pawn) [Sélectionner]
public OnPlayerEnterArea(playerid,areaid)
{
return 1;
}
public OnPlayerExitArea(playerid,areaid)
{
return 1;
}
public OnPlayerEnterPlayerArea(playerid,areaid)
{
return 1;
}
public OnPlayerExitPlayerArea(playerid,areaid)
{
return 1;
}


Utilisation
 
 Exemple d'utilisation pour une zone pour tout les joueur
 
 On crée la variable de la zone en haut du script:
Code: (pawn) [Sélectionner]
new zonedm = INVALID_AREA; //Toujour initaliser les variable de zone avec INVALID_AREA pour plus de precaution
 Ensuite on cree la zone dans OnGameModeInit
Code: (pawn) [Sélectionner]
zonedm = CreateArea(2043.4329, 2053.2830, 1352.0414, 1364.6141); // Xmin,Xmax,Ymin,Ymax
 Ensuite dans OnPlayerEnterArea on va detecter si le joueur entre dans la zone dm comme ceci:
Code: (pawn) [Sélectionner]
public OnPlayerEnterArea(playerid,areaid)
{
 if(areaid == zonedm)// Si la zone dans laquel entre le joueur est la zone de DM qu'on a cree plus haut
 {
 // Le code a executer quand le joueur entre dans la zone de DM (exemple un message de bienvenu ou bien lui donné les armes corespondante au DM)
 }
 return 1;
}

 On peux aussi detecter quand le joueur sort d'une zone pour lui retirer les armes ou le prevenir qu'il est sorti de la zone (ou bien le replacer dedans aussi) pour cela:
Code: (pawn) [Sélectionner]
public OnPlayerExitArea(playerid,areaid)
{
 if(areaid == zonedm)// Si la zone dans laquel etait le joueur est la zone de DM
 {
 // le code a executer quand le joueur sort de la zone
 }
 return 1;
}



 Exemple d'utilisation pour une zone pour un joueur uniquement (exemple une zone qui se créera par une commande et qui une fois entrer dans la zone l'empechera de sortir)

 En haut du script on crée la variable qui stockera l'id de la zone la diference est que la on doit la cree avec un tableau
Code: (pawn) [Sélectionner]
new ZoneP[MAX_PLAYERS];
 Ensuite il faut bien mettre la valeur INVALID_AREA sur la variable quand il se connecte donc dans OnPlayerConnect on mettra:
Code: (pawn) [Sélectionner]
ZoneP[playerid] = INVALID_AREA;
 Ensuite a l'endroit ou vous le souhaitel on crée une zone sur le joueur de cette facon:
Code: (pawn) [Sélectionner]
ZoneP[playerid] = CreatePlayerArea(playerid,2043.3358,2052.8030,1391.5140,1407.7013);
 Ensuite on detecte l'entée dans la zone de cette facon:
Code: (pawn) [Sélectionner]
public OnPlayerEnterPlayerArea(playerid,areaid)
{
 if(areaid == ZoneP[playerid])// Si la zone dans laquel entre le joueur est la zone qu'on a crée plus haut
 {
 // Le code a executer quand le joueur entre dans la zone
 }
 return 1;
}

 On peux ensuite aussi detecter le moment ou il sort de la zone de cette facon
Code: (pawn) [Sélectionner]
public OnPlayerExitPlayerArea(playerid,areaid)
{
 if(areaid == ZoneP[playerid])// Si la zone dans laquel etait le joueur est la zone qu'on a crée plus haut
 {
 // Le code a executer quand le joueur entre dans la zone exemple on peux le replacer dans la zone de cette facon:
 SetPlayerInPlayerZone(playerid,areaid);
 }
 return 1;
}

Voila j'ai tenter d'expliquer au mieux, j'sais que le CreatePlayerArea ne semble pas tres util mais j'me suis dit que sa pouvait toujour servir (exemple pour une prison invisible uniquement sur un joueur et que dé qu'il quiterai cette zone on pourait le replacer dedans , sa ferait une sorte de worldbounds mais sans les mur invisible ^^)

Si vous trouver des bugs prevener moi j'ferait de mon mieux pour corriger

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : [INC] Areas (Zones)
« Réponse #1 le: 02 Juin 2009, 03:34:21 »
Salut,

très bel include vraiment utile, bravo Mr Fredo

++Sim++





Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : [INC] Areas (Zones)
« Réponse #2 le: 02 Juin 2009, 08:29:46 »
un gros
GG
pour mr fredo


Encore un include que je vais surement utiliser sur mon lstdm GG
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici


Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : [INC] Areas (Zones)
« Réponse #4 le: 02 Juin 2009, 12:55:52 »
conquerire les zones  je me doute bien que sa ne seras pas tres simples mais ce serais pas mal
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : [INC] Areas (Zones)
« Réponse #5 le: 02 Juin 2009, 12:59:34 »
Heu na c'est pas trop le but de cette INC, un systeme de conquete de zone peux être fait facilement avec cette INC mais la l'inc a pour but de faciliter la creation de zone pas de les conquerir :s

A la limite tu me donne ptet une idee d'un GM que j'pourait coder avec l'aide de cette INC j'verrai si j'ai le courage de le faire ^^

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : [INC] Areas (Zones)
« Réponse #6 le: 02 Juin 2009, 13:16:25 »
GG l' include =)



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : Re : [INC] Areas (Zones)
« Réponse #7 le: 02 Juin 2009, 13:29:52 »
Heu na c'est pas trop le but de cette INC, un systeme de conquete de zone peux être fait facilement avec cette INC mais la l'inc a pour but de faciliter la creation de zone pas de les conquerir :s

A la limite tu me donne ptet une idee d'un GM que j'pourait coder avec l'aide de cette INC j'verrai si j'ai le courage de le faire ^^
meme idee xD je te dit si j'ai pas la flemme
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : [INC] Areas (Zones)
« Réponse #8 le: 02 Juin 2009, 13:38:57 »
A la limite si tu le fait j't'aiderai car les DM c'pas trop mon truc et j'ai pas trop le courage de le faire completement car j'doit m'occuper de mon serveur XD

File ton msn en MP si tu veux que j't'aide :)

Hors ligne jonjon

  • *** GTA FanBoy ***
  • *
  • Bandit
  • Mouhaha
  • Messages: 420
    • Voir le profil
    • http://metra-concept.fr
Re : [INC] Areas (Zones)
« Réponse #9 le: 02 Juin 2009, 22:27:20 »
Hey Jolie :)

Félicitations MrFredo.
== Jonjon ==
== Développeur du Web - http://Metra-concept.fr ==

Hors ligne MrFredo

  • *
  • Grand Banditisme
  • Scripteur PHP/PAWN
  • Messages: 953
    • Voir le profil
    • GTA-Hosting
Re : [INC] Areas (Zones)
« Réponse #10 le: 02 Juin 2009, 22:30:11 »
Merci ^^

c'est un script tout con enfet mais j'me suis dit que sa pouvait être util pour certain ^^

Hors ligne futenesie

  • *
  • Tueur
  • Messages: 70
    • Voir le profil
Re : [INC] Areas (Zones)
« Réponse #11 le: 29 Juillet 2009, 00:30:09 »
pourais tu le metre le tout en un seul script comme sa le fichier .pwn creer je le metrer dans filterscripts pour le rajouter ensuite sur  serveur.cfg :)
si tu peut me faire sa sa serait cool :)