• 10 Juin 2024, 03:02:33


Auteur Sujet: probleme avec le script yrace  (Lu 2106 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
probleme avec le script yrace
« le: 05 Novembre 2008, 15:33:01 »
bonjour j'ai ajouter un code au script yrace pour que le joueur soit teleporté au point de depart mais, lorsqu'il est dans un vehicule il n'est pas teleporté et lorsqu'il est a pied il est teleporté .
voila le code que j'ai ajouté :
Code: (pawn) [Sélectionner]
dcmd_join(playerid,params[])
{
#pragma unused params
if(RaceBuilders[playerid] != 0)
{
    SendClientMessage(playerid, COLOR_YELLOW, "You are currently building a race, can't join. Use /clearrace to exit build mode.");
    return 1;
}
if(RaceParticipant[playerid]>0)
{
    SendClientMessage(playerid, COLOR_YELLOW, "You've already joined the race!");
}
else if(RaceActive==1 && RaceStart==0)
{
if(PrizeMode >= 2 && GetPlayerMoney(playerid) < JoinFee)
{
format(ystring,sizeof(ystring),"You don't have enough money to join the race! (Join fee: %d$)",JoinFee);
SendClientMessage(playerid, COLOR_YELLOW, ystring);
return 1;
}
else if (PrizeMode >= 2)
{
new tempval;
tempval=(-1)*JoinFee;
    GivePlayerMoney(playerid,tempval);
    Pot+=JoinFee;
}
CurrentCheckpoint[playerid]=0;
if(Racemode == 3)
{
SetRaceCheckpoint(playerid,LCurrentCheckpoint,LCurrentCheckpoint-1);
CurrentCheckpoint[playerid]=LCurrentCheckpoint;
}
else SetRaceCheckpoint(playerid,0,1);
RaceParticipant[playerid]=1;
CurrentLap[playerid]=0;
SendClientMessage(playerid, COLOR_GREEN, "You have joined the race, go to the start!");
Participants++;
}
else if(RaceActive==1 && RaceStart==1)
{
    SendClientMessage(playerid, COLOR_YELLOW, "The race has already started, can't join.");
}
else
{
    SendClientMessage(playerid, COLOR_YELLOW, "There is no race you can join.");
}
new target;
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(playerid,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2]);
}
else
{
SetPlayerPos(playerid,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2]);
}
return 1;
}

savez vous d'ou peut venir ce probleme

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne angelrider

  • Scripteur
  • *
  • Bandit
  • Messages: 299
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #1 le: 05 Novembre 2008, 15:51:04 »
Non désolé mais je pense que tu aurais put le mettre à la suite de ce sujet:
http://www.gtaonline.fr/forums/index.php/topic,5353.0.html
sauf si c'est celui de samp forum que tu utilise dans ce cas la je suis désolé fin bon pour en revenir à ton problème,
je pense qu'au lieux de téléporter le perso tu devrais téléporter le véhicule avec:

SetVehiclePos(..................);
SetPlayerPos(..................);
PutPlayerInVehicle(..............);

Voila sinon je ne sais pas
Nouveau Site de Mods San Andreas:
http://lcdacreation.fr

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #2 le: 05 Novembre 2008, 16:07:20 »
oui, jutilise le yrace du forum samp

mais j'avais deja essayer avec le put player in vehicule et sa ne marchait pas non plus

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne angelrider

  • Scripteur
  • *
  • Bandit
  • Messages: 299
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #3 le: 05 Novembre 2008, 16:09:20 »
A oki alors je suis désolé je n'ai pas de réponses à ton problème qui me viennent tout de suite j'éditerais si je trouve entre temps.

Bonne continuation et à bientôt.
Nouveau Site de Mods San Andreas:
http://lcdacreation.fr

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #4 le: 06 Novembre 2008, 20:00:13 »
svp repondez moi ce script est très important pour mon serveur

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

vincentdu90

  • Invité
Re : probleme avec le script yrace
« Réponse #5 le: 06 Novembre 2008, 20:11:57 »
Eu a la place de " IsPlayerInVehicle " .

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : Re : probleme avec le script yrace
« Réponse #6 le: 06 Novembre 2008, 20:45:22 »
Eu a la place de " IsPlayerInVehicle " .
j'ai pa compris ton message

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

vincentdu90

  • Invité
Re : probleme avec le script yrace
« Réponse #7 le: 06 Novembre 2008, 21:01:35 »
Désoler je suis tête en l'ai , a la place de "IsPlayerInAnyVehicle" ce serait pas "IsPlayerInVehicle" .

Hors ligne [StAfF]MaN

  • [StAfF] forever ^^
  • *
  • Gangster
  • [StAfF] un jour, [StAfF] toujours ^^ !!!
  • Messages: 1040
    • Voir le profil
    • SITE [StAfF]
Re : probleme avec le script yrace
« Réponse #8 le: 06 Novembre 2008, 21:15:37 »
ça changera rien puisqu'il y a un else après, donc si le joueur est dans aucun véhicule (bla bla)

sinon

(bla bla)

Donc que se soit un IsPlayerInVehicle ou pas le résultat sera le même, je pense qu'il faut déjà que tu remonte un peut le code, que ça positionne le véhicule et le joueur avant les messages d'erreurs, peut être que, des fois c'est juste en changeant le place les codes que ça fonctionne ^^
^v^v^v^v|
   StAfF  |                              IP: gtaunderground.No-Ip.org

^v^v^v^v|

Hors ligne gtafan

  • *
  • Nouveau
  • Messages: 17
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #9 le: 06 Novembre 2008, 21:44:52 »
repere toi à la phrase "You have joined the race, go to the start!"
c'est bien la phrase qui apparait quand on tape /join, il me semble ?

donc, remplacer ton:
if(Racemode == 3)
{
SetRaceCheckpoint(playerid,LCurrentCheckpoint,LCurrentCheckpoint-1);
CurrentCheckpoint[playerid]=LCurrentCheckpoint;
}
else SetRaceCheckpoint(playerid,0,1);
RaceParticipant[playerid]=1;
CurrentLap[playerid]=0;
SendClientMessage(playerid, COLOR_GREEN, "You have joined the race, go to the start!");
Participants++;

par:
au début de la commmande join:
 
       new PState=GetPlayerState(playerid);
       new string[256];
       new name[MAX_PLAYER_NAME];
       GetPlayerName(playerid, name, MAX_PLAYER_NAME);
   
if(!IsPlayerInAnyVehicle(playerid))
{
         SendClientMessage(playerid, COLOR_RED, "Choose a car and type /join to join the race!");
         return 1;
}
if(PState != PLAYER_STATE_DRIVER)
{
         SendClientMessage(playerid, COLOR_RED, "Choose a car and type /join to join the race!");
         return 1;
}

puis plus bas:

if(Racemode == 3)
{
SetRaceCheckpoint(playerid,LCurrentCheckpoint,LCurrentCheckpoint-1);
CurrentCheckpoint[playerid]=LCurrentCheckpoint;
}
else SetRaceCheckpoint(playerid,0,1);
RaceParticipant[playerid]=1;
CurrentLap[playerid]=0;
//SendClientMessage(playerid, COLOR_GREEN, "You have joined the race, go to the start!");
Participants++;
                format(string, sizeof(string), "<%s> Join the race", name);
                SendClientMessageToAll(COLOR_YELLOW, string);

new target;
        SetVehiclePos(GetPlayerVehicleID(playerid), RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2]); // téléporte le véhicule avec le joueur

par contre, tu vas devoir maintenant jouer avec les:
RaceParticipant[playerid]=3; // (values: 0 - not in race, 1 - joined, 2 - arrived to start CP, 3 - /ready, 4 - racing, 5 - Last CP)
ReadyRefresh();
« Modifié: 06 Novembre 2008, 21:47:48 par gtafan »

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #10 le: 06 Novembre 2008, 21:59:48 »
j'ai fait com tu ma dit mais :

C:\DOCUME~1\TaricK\Bureau\yrace.pwn(145) : error 004: function "CreateRaceMenus" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(188) : error 033: array must be indexed (variable "dcmd_join")
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(189) : error 017: undefined symbol "dcmd_leave"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(190) : error 017: undefined symbol "dcmd_endrace"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(191) : error 017: undefined symbol "dcmd_ready"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(192) : error 017: undefined symbol "dcmd_bestlap"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(193) : error 017: undefined symbol "dcmd_bestrace"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(195) : error 017: undefined symbol "dcmd_airrace"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(196) : error 017: undefined symbol "dcmd_cpsize"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(197) : error 017: undefined symbol "dcmd_prizemode"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(198) : error 017: undefined symbol "dcmd_setprize"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(200) : error 017: undefined symbol "dcmd_raceadmin"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(201) : error 017: undefined symbol "dcmd_buildmenu"
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(234) : error 004: function "IsNotAdmin" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(246) : error 004: function "GetBuilderSlot" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(255) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(256) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(257) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(258) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(259) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(267) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(271) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(273) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(274) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(275) : error 004: function "b" is not implemented
C:\DOCUME~1\TaricK\Bureau\yrace.pwn(276) : error 004: function "b" is not implemented

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


26 Errors.
voila tout ce qui est sortit  :( en plus je comprend rien a ces erreur moi tout est definie

le lien pastbin de ma cmd /join http://pastebin.gtaonline.fr/pastebin.php?show=511

cordialement
« Modifié: 06 Novembre 2008, 22:01:39 par [LyC]tarick693 »

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne gtafan

  • *
  • Nouveau
  • Messages: 17
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #11 le: 07 Novembre 2008, 03:32:01 »
alors,
si tu veux que le joueur soit simplement téléporté avec son véhicule:
http://pastebin.gtaonline.fr/pastebin.php?show=515

et si tu veux qu'en plus, la commande /ready soit validé automatiquement:
http://pastebin.gtaonline.fr/pastebin.php?show=516
j'ai simplement ajouté:
                RaceParticipant[playerid]=3;
                ReadyRefresh();

pour la 2eme solution, je n'ai pas testé mais je pense que ça complique les choses et qu'il vas falloir modifier d'autre commande (ReadyRefresh()..)

Hors ligne Syg

  • Expert programmeur C/C++/PAWN
  • *
  • The GTAOnline Jesus
  • Messages: 3908
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #12 le: 07 Novembre 2008, 09:40:43 »
Dans ton script original, il y a une grosse erreur Tarick :

SetVehiclePos(playerid,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2]);

A la place de playerid, il faut mettre l'id du véhicule dans lequel est le joueur :

SetVehiclePos(GetPlayerVehicleId (playerid),RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2]);

C'est pour ça que ton script original ne fonctionnait pas quand tu étais dans un véhicule.

Par contre, le SetVehiclePos quand un joueur est dans le véhicule marche moyennement.
Il vaut mieux faire comme a dit angelrider. :
new vehicleid = GetPlayerVehicleId (playerid);
SetVehiclePos(vehicleid,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2]);
SetPlayerPos (playerid,RaceCheckpoints[target][0],RaceCheckpoints[target][1],RaceCheckpoints[target][2]);
PutPlayerInVehicle (playerid, vehicleid, 0);

++
Syg
Courtesy of GtaManiac

Hors ligne gtafan

  • *
  • Nouveau
  • Messages: 17
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #13 le: 07 Novembre 2008, 09:47:07 »
Quand tu dis "le SetVehiclePos quand un joueur est dans le véhicule marche moyennement"

c'est ce qui fait que souvent, on est invisible et obligé de sortir du véhicule pour le faire apparaitre ?

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : probleme avec le script yrace
« Réponse #14 le: 07 Novembre 2008, 17:32:05 »
merci gtafan et syg ^^

ton script marche gtafan encore merci et merci a toi syg

mais j'ai un autre probleme, quand le joueur tape join il est teleporté dans le sens inverse de la course auriez vous une solution ? (j'ai cherché mais rien trouvé :()

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).