-
Bonjour, J’ai décidé de faire un pickup aide dans ce genre :
(http://img507.imageshack.us/img507/8254/infopickupvy4.jpg)
Et une valise qui active un Checkpoint et un message d’alerte a tout le monde quand on la prend :
(http://img507.imageshack.us/img507/6093/maletteeu6.png)
Donc j'ai pencé a faire une nouvelle fonction dans le genre de OnPlayerEnterPickup
Mais le problème c'est que je cet pas comment faire :(
Merci d'avance ;)
-
Arrêtez ce HS. Message Supprimer.
Pour ton "problème" qui n'en est pas un. Puisque c'est juste que tu est dans l'ignorance de "comment faire une fonction". Tout simplement en réfléchissant comment elle doit réagir.
Si le joueur prend le Pick Up c'est qu'il se trouve dans une certaine zone, alors il va falloir récupérer ses positions et vérifier si il est a proximité. Ensuite a toi de voir ce que tu veut faire de sa :)
-
J'ai finalement désider de créer un checkpoint juste au dessus de la mallette et de faire un public OnPlayerEnterCheckpoint avec un GameTexteForAll :)
Quand au Pickup Info j'ai l'ai supprimer ça sert a rien
PS : Désolé pour le HS ;)
-
Yo Urban ! J'ai la solution :
tout en haut du script :
new pickup1;
tout en bas :
public OnPlayerPickUpPickup(playerid, pickupid){
if ( pickupid == pickup1 )
{
SendClientMessage(playerid,COLOR_RED,"Info");
DestroyPickup(pickupid);
pickup1 = CreatePickup(1239,19,268.6798,1863.5541,8.7578);
}
return 1;
}
//-------------------------
PS : Pour la valise, fait pareil : new pickup2;
-
Salut
Desoler du UP du sujet mais comment peut -on trouver les coordoner d'un Pickup
(emplacement)
Merci et desolé du Up !
Parceque voila mon script :
new pickup1;
public OnPlayerPickUpPickup(playerid, pickupid){
if ( pickupid == pickup1 )
{
SendClientMessage(playerid,COLOR_RED,"Bienvenue !");
DestroyPickup(pickupid);
pickup1 = CreatePickup(1239,19,268.6798,1863.5541,8.7578);
}
return 1;
}
Et je voudrait placer mon PickUp ici a la place de ce persos :
AddPlayerClass(260,1948.4337,-2184.9961,13.5542,175.5193,0,0,0,0,0,0); //
Voila merci de me repondre ++
(http://www.gtaonline.fr/forums/Themes/proton/images/warnwarn.gif) Double poste en l'espace de 10 minutes. Merci d'utiliser la fonction "modifier". (http://www.gtaonline.fr/forums/Themes/proton/images/warnwarn.gif)
-
Avec une position X-Y-Z ;)
-
Hum tu peut me la faire ou sur msn car jessaye je comprend rien ;D
-
Mais t'as juste a remplacer les coordonnée par celle du player que tu nous a montrés mdr ^^
new pickup1;
public OnPlayerPickUpPickup(playerid, pickupid){
if ( pickupid == pickup1 )
{
SendClientMessage(playerid,COLOR_RED,"Bienvenue !");
DestroyPickup(pickupid);
pickup1 = CreatePickup(1239,19,-2184.9961,13.5542,175.5193);
}
return 1;
}
Voila c'est tout bête... mdr ^^
-
heu comment on fait pour enlever un message involontaire :laugh ^^ :P
-
Ok mai sje le met ou ?
-
A la fin de ton script pour pas que sa gène ::) 8)
tu fera un truk du genre pour le séparer
//-------------------------------------------------------------------------------------------
new pickup1;
public OnPlayerPickUpPickup(playerid, pickupid){
if ( pickupid == pickup1 )
{
SendClientMessage(playerid,COLOR_RED,"Bienvenue !");
DestroyPickup(pickupid);
pickup1 = CreatePickup(1239,19,-2184.9961,13.5542,175.5193);
}
return 1;
}
et voila ^^
-
Urban pk tu l'as enlever du mode ? Il y est plus la !
-
Rha aidez moi sa marche pas :snip :snip
gamer tu dit a la fin de ton script ou GM ? : ;)
Oops dsl c'est staffMAn mdr dsl
Alors jai mit ce que tu as dit tout en bas de mon GM et j'ai recus une erreur (warning) :
C:DOCUME~1pcadrienMESDOC~1SERVEU~1GAMEMO~1SFTDM(5).pwn(1674) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
Voila alors pk mon return 1 me fait ca ?
(http://www.gtaonline.fr/forums/Themes/proton/images/warnwarn.gif) Triple post. (http://www.gtaonline.fr/forums/Themes/proton/images/warnwarn.gif)
-
slt a toi lepro49 :) , je croi que warning né pas une erreur mais ce que je coprend pas c'est loose identation :bangin
-
Loose identation ça veux dire que ce n’est pas dans l'ordre, Que c'est mal mis dans le script mais ce n’est pas vraiment un problème car la compilation s'effectue quand même.
-
merci :D donc c'est se que j'ai dit warning né pas un probleme voilla voillou ton Code et bon ptet juste qu'il né pas au bon endroit :happy
(je connais pas grand chose en pawno donc faux attendre les experes :laugh
:cheers syg , uzi , guigui .... vous etes ou ? on a besoin de vous LOL!!!
XD>>>[GFC]Gamer<<<DX
-
En faite ce problème ce lance quand nos lignes sont mal empilées, Exemple :
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,"Teste");
return 1;
}
Vous remarquez sur le SendClientMessage n'est pas a la même ligne que le return, Alors il faut faire ca :
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,"Teste");
return 1;
}
Mais on peut aussi modifier la position du return comme ça :
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,"Teste");
return 1;
}
Voila, J'espert avoir été asses clair ;)
-
Oui, mais ca ne marche pas :s si tu saurait comment faire, ou me le faire par msn. merci beaucoup j'aimerais trop avoir ce script !! Merci Beaucoup
-
Mais normalement le warning n'empêche pas le script de fonctionner... mais si tu met dans ton scriptfile sa devrai marcher... avec le warning mais si il n'y que celui la c'est bon ^^
Mias dit nous plutôt si quand tu lance le jeu sa fait quelque chose de bizzard (sa marche pas, sa te jette du jeu ??)
-
non ca ne fait rien juste qu'il n'est pas la...
Sinon peut être il faut que je mette dans les pick up normal nan ?
-
Bah dans gamemode init.. Où tu veu le metre sinon ?? ::)
et après que tu ait mis ta ligne
AddStaticPickup(ID,Style de PickUp,X,Y,Z); (enfin un truk du genre)
dans gamemode init
tu met dans
Public OnPlayerPickUpPickup(playerid, pickupid)
ça :
{
if(pickupid==idMinigun)
{
GivePlayerWeapon(playerid, 362,1500);
}
return 1;
}
(ceci rajoute fait que quand le perso entre dans le pickup il ait un minigun, après tu change l'interrieur par ce que tu veun des messages, des téléportations, etc...)
-
Pour la création du pickup, presque tout a été dit dans ce topic. Sauf qu'aucun post ne donne la méthode complète.
Donc je m'y colle.
En haut du script on ajoute les lignes :
forward CreerPickup ();
new MonPickup;
Dans OnGameModeInit, on ajoute la ligne suivante :
MonPickup = CreatePickup (Modèle (http://www.gtaonline.fr/forums/index.php/topic,427.0.html), Type (http://stephantom2.st.funpic.de/experiments/samp/files/pickup-types.html), X, Y, Z);
Note : Seuls les types 2 et 3 sont utiles (2 =>lle pickup revient après avoir été pris, 3 => le pickup ne revient pas)
Puis on rajoute la fonction OnPlayerPickupPickup :
public OnPlayerPickUpPickup (playerid, pickupid)
{
if (pickupid == MonPipickup) //attention, double signe =
{
/* ICI ON FAIT CE QU'ON DOIT FAIRE (Ajout de vie ou attribution d'arme ou téleport ou ...) */
/* Si le pickup est de type 3, il faut le détruire car il n'apparaitra plus */
/* Inutile pour un pickup de type 2 ou si on ne veut pas recréer le pikcup */
DestroyPickup(pickupid);
/* Re-création du pickup dans 10 secondes (10000 ms) */
/* Inutile pour un pickup de type 2 ou si on ne veut pas recréer le pikcup */
SetTimerEx ("CreerPickup", 10000, 0);
}
return 1;
}
Et enfin, la fonction de re-création du pickup à placer en bas du script :
public CreerPickup ()
{
/* On creer un nouveau pickup */
MonPickup = CreatePickup (Modèle (http://www.gtaonline.fr/forums/index.php/topic,427.0.html), Type (http://stephantom2.st.funpic.de/experiments/samp/files/pickup-types.html), X, Y, Z);
}
++
Syg
-
Salut SYG,
desolé mais esceque tu pourrais le mettre en code][/code ?
Merci ! :D
AHhh cool ca marche c'est super ! :D :D,
Mais mtn je veut en mettre deux, trois, quattres :s comment faire ?
Ah non marche pu :s
Voici mon script tous en bas de mon GM :
public OnPlayerPickUpPickup (playerid, pickupid)
{
if (pickupid == MonPickup) //attention, double signe =
SendClientMessage(playerid, COLOR_LIGHTGREEN,"<<=====StuntMania=====>>");
SendClientMessage(playerid, COLOR_RED,"Bienvenue à StuntMania !");
SendClientMessage(playerid, COLOR_GREEN,"Ici est une ville stuntm modifié ");
SendClientMessage(playerid, COLOR_GREEN,"Pour un max de plaisir !");
SendClientMessage(playerid, COLOR_LIGHTGREEN,"<<=====StuntMania=====>>");
DestroyPickup(pickupid);
SetTimerEx ("CreerPickup", 10000, 0);
}
return 1;
}
{
MonPickup = CreatePickup (1239, 1, 1948.4337,-2184.9961,13.5542);
}
Et voici mes ereurs :
C:DOCUME~1pcadrienMESDOC~1SERVEU~1GAMEMO~1SFTDM(5).pwn(1791) : warning 217: loose indentation
C:DOCUME~1pcadrienMESDOC~1SERVEU~1GAMEMO~1SFTDM(5).pwn(1796) : warning 217: loose indentation
C:DOCUME~1pcadrienMESDOC~1SERVEU~1GAMEMO~1SFTDM(5).pwn(1796) : warning 202: number of arguments does not match definition
C:DOCUME~1pcadrienMESDOC~1SERVEU~1GAMEMO~1SFTDM(5).pwn(1798) : error 010: invalid function or declaration
voila et l'erreur c'est encore le return 1;
;D
Aidez moi svpp
(http://www.gtaonline.fr/forums/Themes/proton/images/warnpmod.gif) Triple post pour la troisième fois.
Modéré pour 7 jours. (http://www.gtaonline.fr/forums/Themes/proton/images/warnpmod.gif)
-
La ligne de ton erreur c'est laquel ?
Parce que il y a ecri error ligne 1798 mais on ne sais pas la quel c'est !
AK NV.
-
voila et l'erreur c'est encore le return 1;
Voila c sa le return 1; ;)
Ok ca remarche sauf encore et encore un probleme,
Ca ne veut pas se compiler quand je met le timer de SYG : mon script
new pickup1;
public OnPlayerPickUpPickup(playerid, pickupid){
if ( pickupid == pickup1 )
{
SendClientMessage(playerid,COLOR_LIGHTGREEN,"<<=====StuntMania=====>>");
SendClientMessage(playerid,COLOR_DARKRED,"Bienvenue à Stuntmania :");
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Ici est une ville stunt modifié pour...");
SendClientMessage(playerid,COLOR_LIGHTBLUE,"...Un maximum de plaisir !");
SendClientMessage(playerid,COLOR_LIGHTGREEN,"<<=====StuntMania=====>>");
SetPlayerPos(playerid, 1953.5978,-2181.6936,17.0000);
DestroyPickup(pickupid);
SetTimerEx (CreatePickup, 10000, 0);
pickup1 = CreatePickup(1239,19,-2184.9961,13.5542,175.5193);
}
return 1;
}
mes erreurs :
C:\DOCUME~1\pcadrien\MESDOC~1\SERVEU~1\GAMEMO~1\SFTDM(5).pwn(1801) : error 076: syntax error in the expression, or invalid function call
Voila et cette ligne c'est mon SetTimerEx.
Le probleme est : je doit mettre quoi a la place de CreerPickup Create pickup etc car ca na marche pas, et, si sa marche, ca remttra le pickup après 10 Secondes ?
-
Ta avais juste un peu oublié des accolades on dirait, fais attention à l'indentation, ça aide pour voir les accolades manquantes.
J'ai mis le code dans le pastebin : http://pastebin.gtaonline.fr/pastebin.php?show=98
Et, comme à mon habitude, j'avais fait une petite erreur : il manquait un paramètre à l'appel à la fonction SetTimerEx.
SetTimerEx ("CreerPickup", 10000, 0, "");
Sinon, pour créer plusieurs pickup, il faut :
- Déclarer plusieurs variables en haut du script (pickup1, pickup2, ...)
- Affecté à chaque variable la valeur retour d'un appel à CreatePickup (attention, ne pas utiliser AddStaticPickup)
pickup1 = CreatePickUp (...);
pickup2 = CreatePickUp (...); etc
- Rajouter un test spécifique pour chaque nouveau pickup
if (pickupid == pickup1)
{
....
}
else if (pickupid == pickup2)
{
....
}
++
Syg
-
Ok le timer marche mais mtn je veut en mettre d'autre (et oui, je sais je vous fé ***** mdr)
Alors.. j'ai rien compris a ton truk pour en mettre un autre :S ;D
-
Je viens de poster le code pour 3 pickups dans le pastebin : http://pastebin.gtaonline.fr/pastebin.php?show=99
J'ai mis des commentaires au début du script.
Par contre, je n'ai pas eu le temps de tester
++
Syg