GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Franky™ le 07 Juillet 2008, 10:44:44

Titre: Petite aide
Posté par: Franky™ le 07 Juillet 2008, 10:44:44
Salut à tous,

Je suis entrain de crée un FS de Herse, qui est bientôt fini mais j'ai un bug lol...

J'ai crée une commande pour ajouter les herses mais elle ne marche pas.

Code: (pawn) [Sélectionner]
if(strcmp(cmd, "/h", true) == 0)
{
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid, X,Y,Z);
    CreateObject(1593,X,Y,Z,0,0,0);
    format(string, sizeof(string), "   Herse mis en place.");
    SendClientMessage(playerid, COLOR_GREY, string);
}
return 1;
}

Ca me dit bien que mon herse est mis en place mais j'ai rien devant moi.
Si quelqu'un saurai m'aider sa serai cool merci lol

++ Franky
Titre: Re : Petite aide
Posté par: Eloctro le 07 Juillet 2008, 11:00:38
GetPlayerPos(playerid, X,Y,Z); ne serre a rien
Sa vient de ton créate objet
CreateObject(1593,X,Y,Z+200);
Eisseile avec les + et - ses un truc comme sa .

Sa ossi
CreateObject(1593, X , Y,  Z, 0.0000, 0.0000, 157.5000);
Si l'objet se mais sur toi ses que sa marche apres je texpliquerais

Titre: Re : Petite aide
Posté par: Franky™ le 07 Juillet 2008, 11:02:44
Hum il faut en être sur, la je pourrai pas tester car je suis au boulot, donc voila lol.
je regarderai sa se soir.

mais si quelqu'un à quelque chose aussi qu'il s'exprime mdr


Merci coco je regarderai sa
++ Franky
Titre: Re : Re : Petite aide
Posté par: UrbanGhetto le 07 Juillet 2008, 11:06:45
GetPlayerPos(playerid, X,Y,Z); ne serre a rien
Sa vient de ton créate objet
CreateObject(1593,X,Y,Z+200);
Eisseile avec les + et - ses un truc comme sa .

Sa ossi
CreateObject(1593, X , Y,  Z, 0.0000, 0.0000, 157.5000);
Si l'objet se mais sur toi ses que sa marche apres je texpliquerais



Ton code place la herse à 200 mètres au dessus du joueur  ???
Titre: Re : Petite aide
Posté par: Franky™ le 07 Juillet 2008, 11:07:58
Alors comment faire pour le faire apparaitre devant moi ?

++ Franky
Titre: Re : Petite aide
Posté par: Eloctro le 07 Juillet 2008, 11:22:23
On le met au dessu de sa tète y mesure combien lol
CreateObject(1593,X,Y+2,Z);
Je vai testé pour toi
Titre: Re : Petite aide
Posté par: Bayshore le 07 Juillet 2008, 11:59:19
Ce serait plutôt Z où il faudrait mettre +2.

Sinon le problème vient peut-être d'un mauvais angle, essaye de mettre la rotation X à 180°.

Sinon si tu veut le faire apparaitre devant toi il te faut la fonction GetXYFrontPlayer, disponible sur le forum SA:MP.

Désolé je n'ai rien de sûr. :(


++
Alexandre
Titre: Re : Petite aide
Posté par: garderer le 07 Juillet 2008, 13:33:17
Bonjour

CreateObject(1593,X,Y+2,Z); le probleme avec cette fonction c'est qua la grille va apparaitre juste devant lui au cente dans l'air donc il faut peut être régler X la hauteur donc la définiton ressemblera a CreateObject(1593,X-1,Y+2,Z);

mais a tester ;)
Titre: Re : Petite aide
Posté par: UrbanGhetto le 07 Juillet 2008, 15:35:45
Non, la hauteur c'est plutôt Z.

Et 1 mètres c'est quand même trop bas/haut. Donc essaye avec Z-0.5 ensuite Z-0.6 etc jusqu'à ce que tu sois satisfait.
Titre: Re : Petite aide
Posté par: Franky™ le 07 Juillet 2008, 15:40:32
oula, j'ai test le truc a garderer, mais sa me donne un warning.

donc je pense que ton truc fera pareil, enfin je sais pas, déjà j'ai pas capter ton truc lol

++ Franky
Titre: Re : Petite aide
Posté par: garderer le 07 Juillet 2008, 16:29:29
Oui je pense que tu as raison urban -1 c'est trop donc oui -0.5 ou -0.6 sa sera idéale
Titre: Re : Petite aide
Posté par: Franky™ le 07 Juillet 2008, 16:35:23
comme ça il faut mettre alors ?

CreateObject(1593,X,Y,Z,0,0,-0.5);

++ Franky

EDIT: Sa marche toujours pas, rhaaa j'en ai marre lol.
Ca devrai me crée l'objets mais sa marche pas.
Titre: Re : Petite aide
Posté par: [StAfF]MaN le 07 Juillet 2008, 16:53:37
non pas comme ça !!!


CreateObject(1593,X,Y,Z-0.5,0,0,0);

Les 3 zéros servent a la rotation, laisse les a leur valeur pour que ton objet ne tourne pas ;)

si tu veut

CreateObject(1593,X,Y,Z-0.5, Rx, Ry, Rz);
Titre: Re : Petite aide
Posté par: Franky™ le 07 Juillet 2008, 16:56:35
J'ai une erreur car il connais pas Rx...

 :( jvais peter un plomb sur se truc moi lol.

++ Franky
Titre: Re : Petite aide
Posté par: [StAfF]MaN le 07 Juillet 2008, 16:58:52
Ne met pas Rx, Ry et Rz s'était pour te montrer ;)
Titre: Re : Petite aide
Posté par: Franky™ le 07 Juillet 2008, 16:59:54
mais lol quoi, il fallais me le dire mdr

 :boulet que je suis lol

++ Franky

EDIT: j'ai mis comme ça CreateObject(1593,X,Y,Z-0.5, 0, 0, 0); Mais sa marche toujours pas.

Voila mon code en entier, http://pastebin.gtaonline.fr/pastebin.php?show=453
Titre: Re : Petite aide
Posté par: [StAfF]MaN le 07 Juillet 2008, 17:36:15
Je sais que j'ai des probs avec le CreateObject, alors moi j'utilise le CreatPlayerObject ;) tu as juste a rajouter

playerid,

avant l'ID de ton objet, oubli pas la virgule hein ^^

Si tu veut que tout le monde vois tu fait un for new et tu remplace playerid, pas i, ;)

ce qui donnerait :

for(new i = 0; i < MAX_PLAYERS; i++)
{
CreatePlayerObject(i,1593,X,Y,Z-0.5, 0, 0, 0);
return 1;
}
Titre: Re : Petite aide
Posté par: CeMondeLeVotre le 07 Juillet 2008, 17:38:01
les herses fonctionnent? j'avais entendu que non.
Titre: Re : Re : Petite aide
Posté par: Franky™ le 07 Juillet 2008, 17:39:18
les hersses fonctionnent? j'avais entendu que non.

Enfaite non, mais mon FS fait que quand tu passe dessu une herse ca te Freeze pendant quelque temps.



[StAfF]mAn je test sa et je te redit plus tard
merci

++ Franky
Titre: Re : Petite aide
Posté par: Bayshore le 07 Juillet 2008, 19:24:25
Donc soit ton objet est invisible soit ce n'est pas le bon, tu as déjà testé cet objet ?

Pour voir si c'est le bon tu n'a qu'a faire un pickup avec l'ID de l'objet et si tu le vois ton problème vient dautre part, si tu ne le vois pas ne chrche pas plus loin. ;)


++
Alexandre
Titre: Re : Petite aide
Posté par: Franky™ le 07 Juillet 2008, 22:21:10
Oui c'est le bon...

Au debut pour tester j'ai juste faire un CreateObject pour tester, et sa fonctionne très bien le freeze quand tu passe dessu et le defreeze au bout de (je sais plus le temps lol)...

j'arrive juste pas à crée l'objet en fesant cette commande.


++ Franky
Titre: Re : Petite aide
Posté par: Franky™ le 08 Juillet 2008, 13:07:40
Désolé du double poste.

j'y arrive toujours pas, une personne ne saurai pas m'aider ? svp

++ Franky
Titre: Re : Petite aide
Posté par: Eloctro le 08 Juillet 2008, 13:10:44
Ta un onglet édité en haut a droite ses pour évitez les double post
Titre: Re : Re : Petite aide
Posté par: Franky™ le 08 Juillet 2008, 13:12:42
Ta un onglet édité en haut a droite ses pour évitez les double post

Comme si je ne le savais pas, mais je voulais pas édité car sinon personne ne l'aurai vu enfaite c'est un mini UP.

Et ton poste ne m'aide pas du tout, alors tu peux t'en passé

++ Franky
Titre: Re : Petite aide
Posté par: Eloctro le 08 Juillet 2008, 13:30:26
Sa donne pas envie de t'aider lol
alors [StAfF]mAn tu tes trompé pas return remplace sa :

CreateObject(1593,X,Y,Z-0.5, 0, 0, 0);
par sa :
               
for(new i = 0; i < MAX_PLAYERS; i++)
{
CreatePlayerObject(i,1593,X,Y,Z-0.5, 0, 0, 0);
}
Sa donne sa :

    if(strcmp(cmd, "/h", true) == 0)
        {
                new Float:X,Float:Y,Float:Z;
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                CreatePlayerObject(i,1593,X,Y,Z-0.5, 0, 0, 0);
                }
                format(string, sizeof(string), "   Herse mis en place.");
                SendClientMessage(playerid, COLOR_RED, string);
                PlayerPlaySound(playerid,1057,0,0,0);
        }
        return 1;

}
On UP un sujet quand il est vraiment loin mais sa change rien se que ta fait  .
Titre: Re : Petite aide
Posté par: Franky™ le 08 Juillet 2008, 13:35:22
Ok j'essairai sa se soir.

j'ai Up car j'ai vraiment envie d'en finir le plus vite possible se FS c'est pour ça.

Sinon merci de ton aide

++ Franky
Titre: Re : Petite aide
Posté par: [StAfF]MaN le 08 Juillet 2008, 14:53:26
Salut ^^  :D j'en profite que ça parle d'objet pour poser une petite question ;) :

est ce que vous pouvez m'aider ?? (  :jesors )

Non sans dec j'arrive pas a mettre un objet aussi lol, il fonctionne très bien puisqu'avant il fonctionnais, mais je ne sais pas pourquoi il ne fonctionne plus.

Vous allez voir mon code, j'ai regardé le système du FS bomber, que j'ai repris, mais ça ne fonctionne pas..


public TimerCounter()
{
   new string[128];
   new Float:x2,Float:y2,Float:angle;
   new Float:LocX = 0.0;
   new Float:LocY = 0.0;
   new Float:LocZ = 0.0;
   if(counter == 0)
   {
       for(new i = 0; i < MAX_PLAYERS; i++)
       {
       KillTimer(Counter);
       GameTextForAll("~r~Bombe en place", 3000, 5);
       SendClientMessageToAll(COLOR_RED,"La bombe explosera dans 30 scondes !!");
       GetPlayerPos(TEAM_T_BOMB,LocX,LocY,LocZ);
       GetPlayerFacingAngle(TEAM_T_BOMB, angle);
       x2 = LocX + (1 * floatsin(-angle+5, degrees));
       y2 = LocY + (1 * floatcos(-angle+5, degrees));
       ApplyAnimation(TEAM_T_BOMB, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
       object=CreatePlayerObject(i,1252, x2, y2, LocZ-0.8, angle, angle+1, angle+1);
       SetPlayerCheckpoint(TEAM_CT, x2, y2, LocZ, 3);
       bomb[i] = 0;
       ttard[i] = 0;
       posse[TEAM_CT] = 1;
       Explose = SetTimer("TimerExplose", 1000, true);
       explose = 30;
       PlayAllSound(1057);
       return 1;
       }
   }else{
format(string,sizeof(string),"~r~%d",counter);
GameTextForAll(string,1000,5);
PlayAllSound(1056);
counter--;
}
   return 1;
}

Voila, mais l'objet n'apparait pas a la fin du timer....
Titre: Re : Petite aide
Posté par: Franky™ le 08 Juillet 2008, 16:58:53
Pour toi j'ai pas regarder mais pour moi ça ne fonctionne toujours pas et ça commence légèrement à me souler cette commande à deux balle lol.

Il y a pas un "fou" de script qui pourrai m'aidé lol
sa serai cool car la je désespéré mdr

++ Franky
Titre: Re : Petite aide
Posté par: [StAfF]MaN le 08 Juillet 2008, 18:16:22
Un petit Syg dans le coin ?  :'(
Titre: Re : Re : Petite aide
Posté par: Franky™ le 08 Juillet 2008, 19:17:59
Un petit Syg dans le coin ?  :'(

Ouai ça serai cool lol.

La j'en peux vraiment plus sur ce truc, je vais bientôt m'arracher les cheveux mdr

++ Franky
Titre: Re : Petite aide
Posté par: Bayshore le 08 Juillet 2008, 19:21:56
Syg est en vacance. :(
Titre: Re : Petite aide
Posté par: [StAfF]MaN le 08 Juillet 2008, 19:22:11
Mais c'est bizarre quand même !!! Parce que mon objet qui est une bombe, fonctionnait nickel !!! Et je ne sais pas ce que j'ai fais pour que ça fonctionne plus...
Toi aussi Patou689, il fonctionnait ton objet, puis il fonctionne plus :s...
Titre: Re : Petite aide
Posté par: Franky™ le 08 Juillet 2008, 19:26:05
Oui mais faut dire qu'il fonctionnais seulement quand je fesais un CreateObject et tout fonctionnais bien.

donc je voulais en faire une commande, alors je l'ai fait et c'est la que sa marche pas, mon objet ne veux pas se crée.

Soit elle se crée pas à cause d'une connerie de ma part
Soit elle est invisible à cause d'une connerie de ma part aussi...

Sinon je vois pas se qu'il y a d'autre.

Grrr j'en ai marre lol  :wall :wall :wall :wall

++ Franky
Titre: Re : Petite aide
Posté par: R@f le 09 Juillet 2008, 10:06:40
Voila la solution les gars  :D
Code: (pawn) [Sélectionner]
        if (strcmp("/herse", cmdtext, true) == 0)
{
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid, X,Y,Z);
CreateObject(1593,X,Y,Z,0,0,0);
format(string, sizeof(string), "   Herse mis en place.");
SendClientMessage(playerid, 0xFF0000FF, string);
return 1;
}
J'ai juste re-écrit la commande, donc ce que j'ai modifié : j'ai mis cmdtext à la place de cmd, j'ai mis /herse à la place de /h et j'ai mis le return 1; à l'intérieur des accolades. Je pense que le problèmes venait du return 1; qui n'était pas dans les accolades ;)

++
R@f
Titre: Re : Petite aide
Posté par: Bayshore le 09 Juillet 2008, 10:09:33
Et sans le return à l'intérieur ça donne quoi ?

Parce que maintenant j'ai peur que son problème soit un autre return en liberté qui ai était placé avant herse.


++
Alexandre
Titre: Re : Petite aide
Posté par: Franky™ le 09 Juillet 2008, 10:11:29
Pour te répondre alex,
j'ai pas d'autre commande dans mon FS, il n'y a que celle la donc pas d'autre return :p

Et Merci beaucoup R@f, je testerais se soir après le boulot

++ Franky
Titre: Re : Petite aide
Posté par: Franky™ le 11 Juillet 2008, 10:25:02
Deux jours, et sa ne marche toujours pas snif j'en ai marre de se truc lol

++ Franky
Titre: Re : Petite aide
Posté par: [StAfF]MaN le 11 Juillet 2008, 13:41:38
J'ai toujours eu des probs avec les createobject de toute façon, cette partie de script la n'est pas au point xD

Patou689, essaye de changer l'ID 1593 par 987 (c'est un grillage) comme ça tu pourra voir si ce qu'a donné R@F fonctionne, car l'ID 987 marche a tout les coup ;)
Titre: Re : Petite aide
Posté par: Franky™ le 11 Juillet 2008, 13:50:59
j'ai donner mon FS via msn a R@f et cher lui il marche je sais pas pk

grrr j'essairai se soir
merci

Et appel moi Franky lol

++ Franky
Titre: Re : Petite aide
Posté par: Franky™ le 16 Juillet 2008, 09:28:06
UP


Marche toujours pas, je sais pas pourquoi.

la j'ai même mis mon objet en "createobject" et il est la mais le freeze marche plus du tout grrr ^^

++ Franky
Titre: Re : Petite aide
Posté par: Nikko™ le 16 Juillet 2008, 10:48:28
Salut,

Jai a peu pres compris ton probleme, mais je n'ai pas tout lu ...
Ce que tu peu faire, cest que si tu a un script de ramp, utiliser la meme fonction d'Alexandre.
Je l'ai dans mon GM, je vais esseyer de te la retrouver ....

++
nikko
Titre: Re : Petite aide
Posté par: Franky™ le 16 Juillet 2008, 10:49:34
lol ok mais j'ai pas le script de ramp mdr ^^

mais si tu trouve la soluc j'en serai ravie car ca fait trop longtemps que sa traine mdr ^^

++ Franky
Titre: Re : Petite aide
Posté par: [StAfF]MaN le 16 Juillet 2008, 13:26:56
Sinon tu fais une condition supplémentaire


en haut de ton script :

new pose[MAX_PLAYERS];

juste en dessous de ton CreateObject du fais

pose[playerid]=1;

et après tu trouve un endroit ou tu pourrais mettre un if(pose[playerid]==1){

et dedans tu met ton freeze ;)