Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
Connexion avec identifiant, mot de passe et durée de la session

 
avancée

254727 Messages dans 14037 Fils de discussion- par 6623 Membres - Dernier membre: Magicien

24 Mai 2012 à 07:16:21
GTAOnline.frSan Andreas MultiplayerScripting SA-MP [Pawn center]Showroom SA:MP (Modérateurs: S!m, Xartrick)[INC] Areas (Zones)
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: [INC] Areas (Zones)  (Lu 2415 fois)
0 Membres et 1 Invité sur ce fil de discussion.
MrFredo
Hors ligne Hors ligne


GTAOnline Addict
*

Scripteur PHP/PAWN

Messages: 846


WWW
« 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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
« Dernière édition: 02 Juin 2009 à 10:59:11 par MrFredo » Journalisée

S!m
Hors ligne Hors ligne


Moderateur
GTAOnline Fan Boy
*

Messages: 2260


« Répondre #1 le: 02 Juin 2009 à 03:34:21 »

Salut,

très bel include vraiment utile, bravo Mr Fredo

++Sim++
Journalisée





cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #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
Journalisée

MrFredo
Hors ligne Hors ligne


GTAOnline Addict
*

Scripteur PHP/PAWN

Messages: 846


WWW
« Répondre #3 le: 02 Juin 2009 à 10:47:16 »

merci :p si vous avez des suggestion j'suis preneur ^^
Journalisée

cristab
Hors ligne Hors ligne


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #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
Journalisée

MrFredo
Hors ligne Hors ligne


GTAOnline Addict
*

Scripteur PHP/PAWN

Messages: 846


WWW
« Répondre #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 ^^
Journalisée

Ssk
Développeur d'Open SA-MP
Hors ligne Hors ligne


Sous-admin
GTAOnline Legend
*

Open-SA-MP - Unlimited Experience

Messages: 3731


WWW



sasuke78200

« Répondre #6 le: 02 Juin 2009 à 13:16:25 »

GG l' include =)
Journalisée






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


Admin V.I.P
GTAOnline Legend
*

Messages: 7333


« Répondre #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
Journalisée

MrFredo
Hors ligne Hors ligne


GTAOnline Addict
*

Scripteur PHP/PAWN

Messages: 846


WWW
« Répondre #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 Sourire
« Dernière édition: 02 Juin 2009 à 14:29:00 par MrFredo » Journalisée

jonjon
*** GTA FanBoy ***
Hors ligne Hors ligne


GTAOnline Big Member
*

Mouhaha

Messages: 408


WWWmetrakit01metrakit01

metrakit01

« Répondre #9 le: 02 Juin 2009 à 22:27:20 »

Hey Jolie Sourire

Félicitations MrFredo.
Journalisée

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


GTAOnline Addict
*

Scripteur PHP/PAWN

Messages: 846


WWW
« Répondre #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 ^^
Journalisée

futenesie
Hors ligne Hors ligne


Grand Banditisme
*

pro en => HTML-CSS-FLASH-JAVA-SDK

Messages: 71






« Répondre #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 Sourire
si tu peut me faire sa sa serait cool Sourire
Journalisée

Pages: [1]   Haut de page
Imprimer
Aller à:  

Theme créé par padexx et modifié par GTAOnline.fr
Page générée en 0.357 secondes avec 24 requêtes.
Forum GTAOnline.fr 2.0 | Design par : Lalu et GtaManiac
Merci a toute la communaute pour son support !
Copyright © 2004-2012 - GTAOnline.fr | GTAPro.com | Contact