• 04 Juin 2026, 21:41:04


Auteur Sujet: Pb scripting  (Lu 3551 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Pb scripting
« le: 28 Août 2008, 11:35:09 »
Salut Salut tout le monde  :)

Bon voila jai l'intention de coder un truc, et jaurai besoin de connaitre la fonction qu'on utilise pour retrouver la vitesse d'un vehicule...
Cest a dire, si un vehicule roule a 84km/h quand il passe dans un endroit préci, ca récupére sa vitesse.
Si quelqu'un sait faire ca ... :D
Merci

++
nikko

MadFire

  • Invité
Re : Pb scripting
« Réponse #1 le: 28 Août 2008, 11:55:31 »
Comme un radar ?  :D

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : Pb scripting
« Réponse #2 le: 28 Août 2008, 12:29:16 »
Voila =)

++
nikko

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : Pb scripting
« Réponse #3 le: 28 Août 2008, 15:32:53 »
J'ai jamais trop testé mais j'ai une petite idée a creuser. Si tu a un compteur "digital" ca pourrait etre simple:

Avec une condition if PlayerToPoint(l'endroit de ton radar);
Tu fait une autre condition qui verifiera le chiffre affiché par le compteur, exemple:

if(PlayerToPoint(25.0,playerid,207.5627,-103.7291,1005.2578))
{
     if(compteur < 84)
     {
            TogglePlayerControllable(i, 0);
     }
     return 1;
}

Bon c'est juste un exemple fait en vitesse pour te montrer se que je pense etre la bonne voie. La enfait si la personne depasse 84 km/h il est freezé quand il passe au radar. Pour les test c'est bien de freezer pour voir si ca marche vraiment.

En esperant que ca aide ;)

++

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : Pb scripting
« Réponse #4 le: 28 Août 2008, 15:57:34 »
Ouai mais comment on défini au préalable le compteur ??

++
nikko

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : Pb scripting
« Réponse #5 le: 28 Août 2008, 18:56:21 »
Selon le compteur que tu as, tu doit avoir un endroit dans le code qui fait que le compteur prend la valeure Kilometrique. . .

Jvais essayer de trouve ca dans le vmenu en vitesse et jte le montre ;)

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : Pb scripting
« Réponse #6 le: 28 Août 2008, 19:22:16 »
Ya pas un objet qui ressemble à un radare ?

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : Pb scripting
« Réponse #7 le: 28 Août 2008, 19:44:38 »
Y'a des boite rouge mais pour te dire l'id faudra que tu attende un peu que je le retrouve ^^.

Bon jvient de faire quelque test avec le FS de R@F le speedo, pour le moment je n'arrive pas a faire prendre la valeur au calcul de distance (floatround) j'essaye de trouver un autre systeme de compteur pour voir si c'est pas plus simple avec un autre ;)

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : Pb scripting
« Réponse #8 le: 28 Août 2008, 19:46:42 »
Moi aussi jai esseyer de faire ac le speedo de raf
Voila ce que jai fait:

if(PlayerToPoint(25.0,playerid,207.5627,-103.7291,1005.2578))
{
if(IsPlayerInAnyVehicle(playerid))
{
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
value = floatround(distance * 5000);

if(floatround(value/1000) > 50)
     {
            TogglePlayerControllable(i, 0);
     }
     return 1;
}

Mais 4 erreur   invalid function or declaration x4

++
nikko

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : Pb scripting
« Réponse #9 le: 28 Août 2008, 20:15:47 »
Moi j'ai fait autrement, y'a pas d'erreur mais IG ca change rien pour le moment mais je pense qu'il faut le faire comme ca:

new Float:x,Float:y,Float:z;
new Float:distance,value;
new km;
for(new i=0; i<SLOTS; i++)
{
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
value = floatround(distance * 5000);
if(UpdateSeconds > 1)
{
value = floatround(value / UpdateSeconds);
}
km = floatround(value/1000);
if(km > 140)
{
TogglePlayerControllable(i, 0);
}
}

J'ai mis tous ca dans un timer a part du speedo, a cause de l'initialisation du compteur qui affiche 12000. ..

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : Pb scripting
« Réponse #10 le: 28 Août 2008, 20:44:06 »
Tu la mit dans un timer mais comment tu fait pour savoir quand le joueur est dans la zone avec ca ??

++
nikko

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : Pb scripting
« Réponse #11 le: 28 Août 2008, 22:05:39 »
Pour le moment tu n'a pas besoin de zone, fait deja une version test avec le minimum de chose pour voir si ca marche la prise de kilometre. Quand ca marchera (quand le joueur sera freeze a tel vitesse), la tu pourra rajouter la condition de lieu pour ton radar. Tu aura juste a ajouter le playertopoint.
Je continu a travailler dessus mais j'ai du mal ca fait 2 moi que j'ai rien scripté de concret :s

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : Pb scripting
« Réponse #12 le: 28 Août 2008, 23:19:26 »
Ok merci pour ton aide, mais le code, jai pas bien capté ou le placé....

++
nikko

Hors ligne feldbrau

  • Despo_Rutti,Co-Scripteur de Redwood Valley RP & Ancien Scripteur GTAngel Life RP
  • *
  • Bandit
  • Messages: 410
    • Voir le profil
Re : Pb scripting
« Réponse #13 le: 29 Août 2008, 00:27:41 »
Tu créé un nouveau public tu met ca dedans sans oublier le forward ;) Sinon je bloque toujours au meme endroit, soit il freeze pendant l'initialisation ou sinon j'ai testé avec un km++; il prend une valeur a chaque fois que le compteur augmente mais il ne baisse pas et je voit pas comment le faire baisser :s

Affaire a suivre ^^

Hors ligne Nikko™

  • *
  • Mafioso
  • Messages: 2393
    • Voir le profil
Re : Pb scripting
« Réponse #14 le: 29 Août 2008, 10:41:14 »
Ca y est jai réussi, quand le joueur arrive a 140km, il est freezer  :), enfin moi pour tester, je fesait envoyer un message...
Mtn, plus qu'a rajouter le playertopoint. Je te montrerai la soluc =)

++
nikko

EDIT:

JAi terminé, tout marche bien, jai positioner un objet pour faire office de radar et jai mi le playertopoint.
Tu avez oublier les Last X, Last Y .... cest pour ca que ca buggé ;)
Attention, ya des forwards et des new ...

new Float:x,Float:y,Float:z;
new Float:distance,value;
//new km;
for(new i=0; i<SLOTS; i++)
{
GetPlayerPos(i, x, y, z);
distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
value = floatround(distance * 5000);
if(UpdateSeconds > 1)
{
value = floatround(value / UpdateSeconds);
}
//km = floatround(value/1000);

SavePlayerPos[i][LastX] = x;
SavePlayerPos[i][LastY] = y;
SavePlayerPos[i][LastZ] = z;

if(floatround(value/1000) >= 140 && IsPlayerInAnyVehicle(i) && (PlayerToPoint(25.0, i, 1822.0105,-1632.0487,12.9347)))
{
  SendClientMessage(i, COLOR_SYSTEM, "(!) Attention, vous avez été flashé par un radar à plus de 150 km/h! (!)");
}
}
}
« Modifié: 29 Août 2008, 11:01:09 par Nikko™ »