GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Showroom SA:MP => Discussion démarrée par: MrFredo le 06 Novembre 2009, 21:20:57
-
Etant donné le nombre de personne cherchant a crée un systeme de radar j'ai decidé de depousierer un peux un bout de code que j'avait fait dans un de mes GM, j'en ai profiter pour changer pas mal de chose pour rendre le systeme plus efficace qu'il ne l'etait lors du premier codage.
Cette include sert donc a vous faciliter la creation d'un systeme de radar sur votre serveur et vous fourni toute les fonction pour sa.
Juste une petite precision quand au fonctionement du systeme, enfet lors de la creation d'un radar un cube 'virtuel' est cree devant le radar, lorsqu'un joueur (conducteur) entre dans ce cube sa vitesse est analyser si elle est superieur a c'elle autorisé par le radar le systeme appelera la callback OnPlayerFlashed c'est donc dans cette callback (a ajouter a votre GM) qu'il faudra placer les action a effectuer lorsqu'un joueur est flasher
Telechargement
v1.0
(http://solidfiles.com/info_imgs/DQ0c.jpg) (http://solidfiles.com/d/DQ0c)
Instalation
Ajouter '#include <radar>' dans votre GM (attention si vous utiliser l'include dans un FS ajouter '#define FILTERSCRIPTS' AVANT l'include !!)
Ajouter le code suivant dans votre GM (ou FS)
public OnPlayerFlashed(playerid,radarid,vitesse)
{
return true;
}
N'oubliez pas de parametrer l'include selon vos besoin grace au define en haut de l'include chaque define est commenter ;)
Fonction
native CreateRadar(Float:X,Float:Y,Float:Z,Float:A,vitesse = DEFAULT_VITESSE,Float:distcentre = DEFAULT_DIST_CENTRE_ZONE);
native DestroyRadar(radarid);
native GetRadarPos(radarid,&Float:X,&Float:Y,&Float:Z,&Float:A);
native SetRadarPos(radarid,Float:X,Float:Y,Float:Z,Float:A,Float:distcentre = DEFAULT_DIST_CENTRE_ZONE);
native SetRadarVitesse(radarid,vitesse);
native GetRadarVitesse(radarid);
native AttachRadarToPlayer(playerid,radarid)
native DettachRadarToPlayer(playerid,Float:distcentre = DEFAULT_DIST_CENTRE_ZONE);
native IsValidRadar(radarid);
native IsRadarAttach(radarid);
native IsPlayerRadarAttach(playerid);
native GetPlayerRadarAttach(playerid);
native SetZoneRadar(radarid,Float:distcentre = DEFAULT_DIST_CENTRE_ZONE);
native GetRadarProxPlayer(playerid,Float:radi = DEFAULT_PROX_RADAR);
native GetRadarObjectID(radarid);
native GetVehicleSpeed(vehicleid);
native GetNbRadar();
L'explication de chaque fonction est presente au dessus de chacune d'elle dans l'include c'est donc pour cela que je ne ferait pas de description des fonction dans ce topic
Callback
forward OnPlayerFlashed(playerid,radarid,vitesse);
La une petite explication s'impose :p
Cette callback est appeler au moment ou un joueur a été flasher par un radar, la callback recoit en parametre l'id du joueur qui a été flasher, l'id du radar qui a flasher le joueur et la vitesse a laquelle le joueur a été flasher
C'est donc dans cette callback qu'il vous faudra placer le code a executé quand un joueur est flasher, autre petite précision, si cette callback renvoi false le flash visuel (ainsi que le son) ne seront pas executé (par exemple vous pouvez faire que si c'est un admin on le flash pas grace a sa :))
Voila en esperant que cette include vous sera utile :)
ps: Je serait interessé pour ceux qui utiliseront cette include de voir de qu'elle facon vous l'avez utilisé :)
++
Fred
-
Sympa, GG ;)
++
R@f
-
GG, merci je test ça demain !
Merci pour ce joli partage !
-
J'ai éssayer de testé, mais sa donne sa quand je compile :
C:\Documents and Settings\Antoine\Bureau\Serveur RP\pawno\include\radar.inc(438) : error 017: undefined symbol "GetVehicleVelocity"
C:\Documents and Settings\Antoine\Bureau\Serveur RP\pawno\include\radar.inc(435) : warning 203: symbol is never used: "vehicleid"
C:\Documents and Settings\Antoine\Bureau\Serveur RP\pawno\include\radar.inc(504) : error 004: function "Radar_Exit" is not implemented
C:\Documents and Settings\Antoine\Bureau\Serveur RP\pawno\include\radar.inc(537) : warning 235: public function lacks forward declaration (symbol "OnPlayerUpdate")
C:\Documents and Settings\Antoine\Bureau\Serveur RP\gamemodes\larptraduitfr.pwn(4087) : warning 209: function "Radar_PlayerDisconnect" should return a value
C:\Documents and Settings\Antoine\Bureau\Serveur RP\gamemodes\larptraduitfr.pwn(47638) : error 029: invalid expression, assumed zero
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
j'ai pas trop compris... :s
-
Salut,
bravo, beau script^^
enfin un bon système de radar publié (que je connaisse)
++Sim++
-
nantoine :
L'include tel quel est prevu pour 0.3 (pour le calcul de la vitesse d'un vehicule) , si t'est en 0.2X faut alor refere toi a l'explication de la define GETVEHICLESPEED
Pour t'est autre erreur c'est pck dans ton GM/FS il te manque certaine callback (apparament te manque OnGameModeExit et OnPlayerDisconnect)
Pour l'erreur OnPlayerUpdate j'ai l'impression que ton script n'est meme pas en 0.2X :/
-
Salut.
Pour ma part, je peux déjà dire que je vais le télécharger et l'installer (surement début de la semaine prochaine car j'ai un We chargé dans lequel je ne pourrait donc pas faire grand choses).
Pour ma part, je ferais en sorte que le joueur qui a été flashé (et non pas le véh car j'ai un mauvais souvenir avec les vols de veh) qui reçoit une amende. De plus, je ferais en sorte que se soit les flics qui mettent les radars (histoire que se soit un peu plus réel) ainsi que certains admins (selon le niveau qu'il sera) et vu que j'ai une commande HRP (qui sert à dire que les Admin sont là mais qu'ils ne sont pas en train de jouer Rp pour X raison), je ferais en sorte que ceux si ne soient pas flashé.
-
belle include ;)
@nantoine : il me semble que tu es encore en 0.2.2 :lmao
-
Non je suis en 0.3a.
-
Salut.
Cette nuit j'ai pensé à 2 petites suggestions (que j'apporterais peux être moi même dans le radar que j'aurais, mais qui pourrait être pas mal pour les autres ou pour une futur MAJ)
Donc voilà, j'ai pensé à save les Radars et leurs positions, au moins si le serveur Restart (manuellement ou automatiquement), les Radars restent à leur place et on est pas obligé de les remettre.
La 2è chose est donc la possibilité de se Tp au Radar (au moins, vu que lorsque le serveur se redémarrera les radars ne sont plus supprimé, on a la possibilité de les retrouver facilement sans avoir besoin de trop chercher).
Voilà juste mes petites suggestions ;)
-
Très bonne idée...
Moi quand je compile mon GM, sa met
C:\Documents and Settings\Antoine\Bureau\Serveur RP\pawno\include\radar.inc(438) : error 017: undefined symbol "GetVehicleVelocity"
C:\Documents and Settings\Antoine\Bureau\Serveur RP\pawno\include\radar.inc(435) : warning 203: symbol is never used: "vehicleid"
C:\Documents and Settings\Antoine\Bureau\Serveur RP\pawno\include\radar.inc(537) : warning 235: public function lacks forward declaration (symbol "OnPlayerUpdate")
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Et pour le CallBack j'ai pas compris comment on le met :s
Merci.
-
pas trop compris moi
dans le GM pour cree le radar tu a ceci CreateRadar(Float:X,Float:Y,Float:Z,Float:A,vitesse = DEFAULT_VITESSE,Float:distcentre = DEFAULT_DIST_CENTRE_ZONE);
donc si il reboot t'es radars seront toujour la
-
Avec cette ligne, le radar se créé (je suis d'accord), mais ça sauvegarde la position que si le serv ne reboot pas. Si donc une personne se co et que les radars sont déjà là, il les verra.
Mais si le serveur doit reboot, le radar ne réapparait pas (je viens de test ;) )
-
Nantoine, tu n'as pas tes includes mis à jour en 0.3 c'est tout ;).
-
Diablo, je ne ferait pas ta suggestion car ce n'est pas le but premier de l'include, se genre de chose peux facilement être realiser dans le GM/FS qui utilise l'include vu que le tableau RadarInfo contenant les info de chaque radar est accesible :)
Vla un exemple de cmd pour se TP a un radar:
if(strcmp(cmd,"/radartp",true) == 0)
{
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid,0xFFFFFFFF,"Vous n'ête pas autoriser a utiliser cette commande");
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
return SendClientMessage(playerid,0xFFFFFFFF,"UTILISATION: /radartp [radarid]");
new radarid = strval(tmp);
if(!IsValidRadar(tmp))
return SendClientMessage(playerid,0xFFFFFFFF,"Radarid incorect!");
new Float:X,Float:Y,Float:Z,Float:A;
GetRadarPos(radarid,X,Y,Z,A);
SetPlayerPos(playerid,X,Y,Z);
return SendClientMessage(playerid,0xFFFFFFFF,"Téléporter!");
}
Bon j'ai fait cette cmd direct sur le fofo donc elle marchera ptet pas tel quel mais sa montre comment faire ^^
-
Nantoine, tu n'as pas tes includes mis à jour en 0.3 c'est tout ;).
Comment les mettres a jour ? :s
-
Salut.
Cette nuit j'ai pensé à 2 petites suggestions (que j'apporterais peux être moi même dans le radar que j'aurais, mais qui pourrait être pas mal pour les autres ou pour une futur MAJ)
Tres bonne idée, je vais essayer je dit bien essayer
Au fait, ou stoc t'il les radar créé?
-
Diablo, je ne ferait pas ta suggestion car ce n'est pas le but premier de l'include, se genre de chose peux facilement être realiser dans le GM/FS qui utilise l'include vu que le tableau RadarInfo contenant les info de chaque radar est accesible :)
Vla un exemple de cmd pour se TP a un radar:
if(strcmp(cmd,"/radartp",true) == 0)
{
if(!IsPlayerAdmin(playerid))
return SendClientMessage(playerid,0xFFFFFFFF,"Vous n'ête pas autoriser a utiliser cette commande");
tmp = strtok(cmdtext,idx);
if(!strlen(tmp))
return SendClientMessage(playerid,0xFFFFFFFF,"UTILISATION: /radartp [radarid]");
new radarid = strval(tmp);
if(!IsValidRadar(tmp))
return SendClientMessage(playerid,0xFFFFFFFF,"Radarid incorect!");
new Float:X,Float:Y,Float:Z,Float:A;
GetRadarPos(radarid,X,Y,Z,A);
SetPlayerPos(playerid,X,Y,Z);
return SendClientMessage(playerid,0xFFFFFFFF,"Téléporter!");
}
Bon j'ai fait cette cmd direct sur le fofo donc elle marchera ptet pas tel quel mais sa montre comment faire ^^
Salut.
Mes suggestion, est comme son nom l'indique une suggestion. Même si ce n'est pas réaliser, ça peux toujours donner des idées aux personnes qui pourront le réaliser eux même.
Pour ma part, comme je l'ai précisé dans mon post, je pense apporté ces suggestions dans mon sev afin de ne pas devoir toujours les remettre ou de chercher après parce qu'un flic l'a perdu.
Dans tous les cas, merci pour le bout de code (la téléportation vers un radar). Si ça ne fonctionne pas tel quel, au moins la base est faites et donc ce ne sera juste que du fignolage pour le faire fonctionner ;)
-
J'ai ajouté ton fs dans mon gm et
C:\Documents and Settings\Propriétaire\Bureau\serveur samp\LARP\bon 03a\pawno\include\radar.inc(484) : warning 201: redefinition of constant/macro (symbol "OnGameModeInit")
C:\Documents and Settings\Propriétaire\Bureau\serveur samp\LARP\bon 03a\pawno\include\radar.inc(504) : error 004: function "Radar_Exit" is not implemented
C:\Documents and Settings\Propriétaire\Bureau\serveur samp\LARP\bon 03a\pawno\include\radar.inc(510) : warning 201: redefinition of constant/macro (symbol "OnGameModeExit")
C:\Documents and Settings\Propriétaire\Bureau\serveur samp\LARP\bon 03a\gamemodes\epurer2.pwn(26) : error 021: symbol already defined: "GMExit"
C:\Documents and Settings\Propriétaire\Bureau\serveur samp\LARP\bon 03a\gamemodes\epurer2.pwn(3737) : warning 209: function "Radar_PlayerDisconnect" should return a value
C:\Documents and Settings\Propriétaire\Bureau\serveur samp\LARP\bon 03a\gamemodes\epurer2.pwn(47953) : error 025: function heading differs from prototype
C:\Documents and Settings\Propriétaire\Bureau\serveur samp\LARP\bon 03a\gamemodes\epurer2.pwn(47954) : error 021: symbol already defined: "strtok"
C:\Documents and Settings\Propriétaire\Bureau\serveur samp\LARP\bon 03a\gamemodes\epurer2.pwn(47965) : error 047: array sizes do not match, or destination array is too small
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
-
Salut.
Je viens de le transférer aujourd'hui et j'ai eu quelques petits soucis également à la compilation (error 021: symbol already defined: "strtok", radar.inc(504) : error 004: function "Radar_Exit" is not implemented, ... ), mais avec un peu de jugeote et de bon sens on arrive facilement à résoudre ses choses.
Il me reste juste donc à faire en sorte que les Flics puissent l'utiliser également (pour l'instant juste les Admins) et 2-3 petits réglages et je pourrais le lancer sur mon Serv :)
Encore merci donc :)
-
Merci de ton partage, c'est utile pour certains :p
-
tu te complique la vie ! -_- pour mon serveur de trucks j'ai aussi eu l'ider de radars qui envoi un flash ds l'ecran du player avec un textdraw et un ptuit dout dmerde pour ariver a un script 9 fois plus simple et autres mais avec gta online comme aide je te felicite XD GTA Online pue la merde et je suis conten de ne pas demander de l'aide dumoin plus de l'aide car avec se que l'on te disais la plupar abandonais ! :D
bonne yourner a you le monde :D
-
tu te complique la vie ! -_- pour mon serveur de trucks j'ai aussi eu l'ider de radars qui envoi un flash ds l'ecran du player avec un textdraw et un ptuit dout dmerde pour ariver a un script 9 fois plus simple et autres mais avec gta online comme aide je te felicite XD GTA Online pue la merde et je suis conten de ne pas demander de l'aide dumoin plus de l'aide car avec se que l'on te disais la plupar abandonais ! :D
bonne yourner a you le monde :D
Rageux tu sort
-
Salut,
c'est toujours bien de voir à quel point les gens sont...irréfléchis.
par exemple, pourquoi venir poster des stupidités s'il se fou de GTAOnline?
Dans mon esprit, ça sonne plutôt le frustré qui cherche désespérément de l'aide mais qui parce qu'il ne sait pas vivre en société n'obtient pas ce qu'il voudrait et tente de se remonter en insultant les autres, chose qui bien sur ne fais que le rabaisser lui-même.
svp. retient toi avant de poster à nouveau un truc de ce genre
++Sim++
-
tu te complique la vie ! -_- pour mon serveur de trucks j'ai aussi eu l'ider de radars qui envoi un flash ds l'ecran du player avec un textdraw et un ptuit dout dmerde pour ariver a un script 9 fois plus simple et autres mais avec gta online comme aide je te felicite XD GTA Online pue la merde et je suis conten de ne pas demander de l'aide dumoin plus de l'aide car avec se que l'on te disais la plupar abandonais ! :D
bonne yourner a you le monde :D
Wouah tu na pas demander de l aide c 'est quoi ca alors
http://www.gtaonline.fr/forums/index.php/topic,7793.msg124590.html (http://www.gtaonline.fr/forums/index.php/topic,7793.msg124590.html)
et ca
http://www.gtaonline.fr/forums/index.php/topic,7705.msg123713.html (http://www.gtaonline.fr/forums/index.php/topic,7705.msg123713.html)
Pis 113 message c pas en un jours qu on le post du a dut en demander de l aide ( parti GTA IV)
-
Salut,
c'est toujours bien de voir à quel point les gens sont...irréfléchis.
par exemple, pourquoi venir poster des stupidités s'il se fou de GTAOnline?
Dans mon esprit, ça sonne plutôt le frustré qui cherche désespérément de l'aide mais qui parce qu'il ne sait pas vivre en société n'obtient pas ce qu'il voudrait et tente de se remonter en insultant les autres, chose qui bien sur ne fais que le rabaisser lui-même.
svp. retient toi avant de poster à nouveau un truc de ce genre
++Sim++
Et c'est souvent ce genre de gars qui télécharge en Premier (je parle du Fichier Pawn et non pas téléchargement en règle générale), qui pompe se qu'il y a à pomper et se vanter que c'est lui qui l'a fait avant et en mieux.
Enfin, maintenant s'il n'a pas besoin d'aide et vu qu'il ne vient pas aider (il dit qu'il a un système de Radar beaucoup plus mieux, mais il ne le partage pas et ne dit pas comment faire alors qu'il y a plein de demandes sur ça), je ne vois pas réellement ce qu'il vient faire ici.
Mais bon, on va pas pourrir un sujet pour ça.
Pour ma part je suis très content de ce système de Radar (qui fonctionne parfaitement dans son Fs de Base, mais dans lequel il est normal de devoir faire des modif si on veux l'implanter dans un Gm ou dans un autre Fs) et je le recommanderais (d'ailleurs quand je ferais ma maj pour le mettre sur mon Serv (pour l'instant je l'ai juste en Local), j'écrirais bien que le système de radar viens de MrFredo) parce qu'il est vraiment très bien et pour l'instant sans Bug.
-
Bonsoir a tous, je viens de tomber sur ce magnifique Filterscript il y a deux jours et j'ai voulus le tester.
Mais comment peut on faire pour que seulement les policiers peuvent l'utiliser ?
Je vous en serez reconnaisant de me donné quelques conseils .
PS : Felicitation au créateur^^
-
Tu change le
if(!IsPlayerAdmin(playerid))
par if(!TAVARIABLEQUIDEFINISIUNJOUEURESTUNPOILICIER(playerid))
ex:
if(!IsPlayerCop(playerid))
-
Ouais, mais si tu laisses dans le Fs de base, ça ne fonctionnera pas parce qu'il ne reconnaitra pas ta variable.
Il faut avant de faire ça définir dans le Fs la variable pour les Flics, soit intégré le Fs dans le Gm.
-
Je souhaite juste prévenir d'un problème qui m'est apparu sur plusieurs GM. Dés que quelqun fait une annimation l'écran devient tout blanc. Par contre si je desactive cette include sa redevient normal plus de bug. Voila merci.
-
Oo, j'voit pas pk le textdraw s'afficherai lors d'une animation :/ j'ferai un test se soir
-
Moi non plus, mais sa le fait surtout avec Larp.
-
Bonsoir cela fait plusieurs jours que je ne reussi pas a mettre ce systeme que pour les policier.
J'ai integrer le IsACop de le FS mais tout les joueurs y on comme meme acces.
Si quelqu'un pourrait mieux m'expliquer je vous serez tres reconnaissant.
Merci
forward IsACop(playerid);
public IsACop(playerid)
{
if(IsPlayerConnected(playerid))
{
new leader = PlayerInfo[playerid][pLeader];
new member = PlayerInfo[playerid][pMember];
if(member==1)
{
return 1;
}
else if(leader==1)
{
return 1;
}
}
return 0;
}
post editer
-
sotck IsACop(playerid)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pLeader]==1 || PlayerInfo[playerid][pMember] ==1)
{
return 1;
}
else
{
return 0;
}
}
return 1;
}
-
Depuis un FS tu na pas acces au variable du gamemode donc de cette facon sa n'ira pas , ya la solution de mettre ta fonction IsACop en public dans ton Gamemode et d'ensuite utiliser CallRemoteFunction ou bien le mieux reste a utiliser l'include dans le GM
et de reprendre la cmd du FS dans le GM
-
merci, je test et vous tien au courant.
Edit : laisser tomber cela ne marche pas, merci comme meme de votre soutien
-
Pour eviter le problème du textdraw je l'ai desactivé, du moin mit en commentaire. Merci.
-
Désolé de cet énorme up..
Serait t'il possible de rendre l'inc de Mr Fredo compatible avec la Version R7 ?
-
Elle n'est pas compatible?
-
J'ai essayé avec la R3, ca marche mais pas avec la R7
-
qu'est qui ne fonctionne pas ??
-
Quand j'ai la R7, il me dit cannot read...from radar alors qu'il est biensur dans le dossier Include alors que quand je suis en R3, mon serv arrive a compiler et ne me met pas ce message d'erreur.
-
euh c'est le serveur qui change de version pas la compilot