GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Tutoriels et références SA:MP => Discussion démarrée par: UrbanGhetto le 25 Octobre 2007, 23:27:45
-
Bonjour et bienvenue dans le tutorial qui va vous apprendre à déchiffrer les CheckPoint :)
Au menu :
I) Créer un CheckPoint.
II) Désactiver les CheckPoints.
III) Lancer une action dans un CheckPoint.
I) Créer un CheckPoint :
Il y a 5 paramètres dans un CheckPoint
SetPlayerCheckpoint(playerid, X, Y, Z, Taille);
Les paramètres :
- Playerid = Récupérer l'ID du joueur.
- X = Coordonnée X.
- Y = Coordonnée Y.
- Z = Coordonnée Z.
- Taille = Taille du CheckPoint (1 Petite - 8 Grande).
Exemple d'utilisation :
public OnPlayerSpawn(playerid)
{
SetPlayerCheckpoint(playerid, -1671.22, 685.87, 30.60, 4);
return 1;
}
II) Désactiver les CheckPoints :
Il y a 1 seul paramètre dans la désactivation des CheckPoint :
DisablePlayerCheckpoint(playerid);
- Playerid = Récupérer l'ID du joueur.
Exemple d'utilisation :
public OnPlayerEnterCheckpoint(playerid)
{
DisablePlayerCheckpoint(playerid);
return 1;
}
III) Lancer une action dans un CheckPoint :
Maintenant, Je vais vous montrer comment activer une action quand on entre dans un CheckPoint.
public OnPlayerSpawn(playerid)
{
SetPlayerCheckpoint(playerid, -1671.22, 685.87, 30.60, 4);
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
//nous vérifions si le joueur est suffisamment près du checkpoint pour lancer l'action
//notez pour la distance j'ai mis une valeur légèrement supérieure à celle du rayon du checkpoint pour être de détecter le checkpoint correctement
if (IsPlayerInRangeOfPoint(playerud, 5.0, -1671.22, 685.87, 30.60))
{
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint atteint.");//nous lui envoyions un message pour l'avertir qu'il y est
DisablePlayerCheckpoint(playerid);//nous lui retirons le checkpoint
}
return 1;
}
Voila, Les CheckPoints n'ont plus de secret pour vous :)
A très bientôt ;)
EDIT Sim: Corrigé certaines inexactitude +indentation....
-
lu
Merci urban pour le tuto
Mais est t/il possible que quand je rentre dans le check points sa me teleporte une infernus ou autre et je sui directement dedan????
Merci
-
new Check1;
public OnPlayerSpawn(playerid){
Check1 = SetPlayerCheckpoint(playerid, -1671.22, 685.87, 30.60, 4);
return 1;
}
public OnPlayerEnterCheckpoint(playerid) {
if (Check1){ // Si le joueur est dans le CheckPoint définis :
new Float:x;
new Float:y;
new Float:z;
new Float:Angle;
new Infernus;
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid,Angle);
Infernus = CreateVehicle(411,x,y,z,Angle,1,1,50000);
PutPlayerInVehicle(playerid,Infernus,0);
}
return 1;
}
T'as pas plus dûr ? :P
-
Très bien ce tuto.
Juste une petite remarque : Etant donné que le joueur ne peut avoir qu'un seul checkpoint à la fois, le test if (Check1) est
inutile puisque si on arrive là, c'est que le joueur est dans le seul et unique checkpoint.
++
Syg
-
Oui, Je ne sais pas vraiment pourquoi la Team SA-MP n'a pas permis ça :(
Par contre on peut utiliser la nouvelle fonction SetPlayerRaceCheckpoint qui peut autoriser jusqu'a 2 Checkpoints :)
-
Je ne sais pas ce que donne l'utilisation conjointe de SetPalyerCheckpoint et SetPlayerRaceCheckpoint.
Mais ces deux fonctions correspondent à deux callbacks différentes (OnPlayerEnterCheckpoint et OnPlayerEnterRaceCheckpoint)
Donc un joueur peut bien avoir deux chekcpoint en même temps mais pas du même type.
++
Syg
-
Les CheckPoint et CheckPointRace sont bien different dans le jeu.
Et pourquoi la team SA-MP n'as pas permis l'utilisation de plusieurs checkpoint ? Beh ils sont dans la logique que plusieur sa bouffe de la bande passates et que CJ est jamais a deux endroit en meme temp.
Pour les checkPointRace c'est le jeu qui permet pas plus de deux.
-
Bonne déduction UZI-I :)
-
Pour les RaceCheckpoints, on ne peut en avoir qu'un seul à la fois, comme les autres.
La différence c'est qu'on peut spécifier des coordonnées supplémentaires pour orienter la flèche à l'intérieur du RaceCheckpoint. Mais ces coordonnées ne sont pas forcément les coordonnées d'un autre checkpoint (bien que ce soit ce qu'il y a de plus logique).
++
Syg
-
BOnjour j'ai une question comment fait-on pour que lorsque le joueur est dans le checkpoint il peut faire une commande (seulement dans le checkpoint)
-
En fait, il vaut mieux tourner ta question dans l'autre sens :
"Comment fait-on pour que le joueur ne puisse faire une commande que quand il est dans un checkpoint ?"
Et la réponse est simple :
Il suffit d'utiliser la fonction IsPlayerInCheckpoint (ou IsPlayerInRaceCheckpoint selon le cas) pour tester si le joueur est sur son checkpoint (ou racecheckpoint).
++
Syg
-
Merci syg mais j'ai 2 checkpoint ou plutot 1 check point et un Racecheckpoint
-
Et bien tu combines les deux fonctions IsPlayerInCheckpoint et IsPlayerInRaceCheckpoint dans ton test.
++
Syg
-
Merci
-
Bonjour, j'ai une autre question comment faire pour voir un checkpointa une certaine distance? Moi on voit mon checkpoint meme si on est a l'otre bout de San Andreas.
Merci :)
-
Tu définit une zone. Si le joueur est dans cette zone, Il voit le CheckPoint, Sinon il y à rien
-
Ok MErci!
-
y avait un bon exemple dans un script mais je me souviens plus le quel,essaye le lvdm de 0.1 (je suis pas sur du tout)
-
Salut alors voici mon code :
//------------------------------------------------------------------------------
public OnPlayerEnterCheckpoint(playerid) {
DisablePlayerCheckpoint(playerid);
if (Check1){ // Si le joueur est dans le CheckPoint définis :
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint atteint.");
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerCheckpoint(playerid, -1936.8719,294.5338,47.7031, 2);
Check1 = SetPlayerCheckpoint(playerid, -1936.8719,294.5338,47.7031, 2);
}
new iconid;
{
SetPlayerMapIcon(playerid, iconid, 1948.3848,-2184.4851,13.5542, 48, COLOR_YELLOW);
}
SetPlayerInterior(playerid,0);
et j'ai deux erreurs :
C:\DOCUME~1\pcadrien\MESDOC~1\SERVEU~1\GAMEMO~1\SFTDM(5).pwn(658) : error 029: invalid expression, assumed zero
C:\DOCUME~1\pcadrien\MESDOC~1\SERVEU~1\GAMEMO~1\SFTDM(5).pwn(658) : error 004: function "OnPlayerSpawn" is not implemented
Et la ligne 658 est celle ci :
public OnPlayerSpawn(playerid)
Merci de m'aider a resoudre le pb ! A+
-
Hum, Va falloir commencer à arranger les erreurs tout seul si tu veux faire un pat en avant dans le scripting.
return 1;
}
-
Je vois très bien ce qui t'arrive, Lepro49, t'a mis des accolades un peu n'importe où et le compilo n'arrive plus à s'y retrouver.
Je vais le répéter encore une fois :
INDENTER SON SCRIPT CORRECTEMENT, C'EST PAS POUR FAIRE JOLI !!
//------------------------------------------------------------------------------
public OnPlayerEnterCheckpoint(playerid)
{
DisablePlayerCheckpoint(playerid);
if (Check1)
{ // Si le joueur est dans le CheckPoint définis :
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint atteint.");
}
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerCheckpoint(playerid, -1936.8719,294.5338,47.7031, 2);
Check1 = SetPlayerCheckpoint(playerid, -1936.8719,294.5338,47.7031, 2);
new iconid;
SetPlayerMapIcon (playerid, iconid, 1948.3848,-2184.4851,13.5542, 48, COLOR_YELLOW);
SetPlayerInterior(playerid,0);
}
++
SYg
-
Ok, j'ai essayer de tout reformuler ca....
J'ai plus que 1 erreur :
1794) : error 004: function "SetupPlayerForClassSelection" is not implemented
Avant ca ne le faisait pas... Je ne trouve pas pourquoi sa fait sa ? Aidez-moi !
Urbaghetto, dans un post précédent tu voulais quelqu'chose de dur hein ? Et ba voila :
Je voudrais mettre des checkpoint un peut partout dans SA et c'est comme les huitres ou les tags ou les fers a cheval, il faut les trouver et a chaque fois que tu les as trouver tu va dedans et tu as une récompense... Bon ba j'y vais a++
Merci de me rep.
-
demain ou aujourd'hui peut etre je vais te montrer comment faire, j ai pas le temps maintenant (entrainement d'aviron). Je vais mettre un exemple sur pastbin, mettre des screens et bien t'expliquer le tout comme sa tu comprendras ;)
++
R@f
-
pfiou moi j'ai du mal avec les checkpoints , je fais tout bien comme il faut (enfin je pense lol) aucun wanring rien, mais quand je vais sur le serveur je vois rien....
Si quelqu'un a une réponse...
Merci d'avance ;)
++
j0nj0n
-
Euh le SetPlayerCheckpoint il faut le mettre dans OnPlayerConnect, Pas dans OnGameModeInit...
-
Salut, je suis débutant en Pawn et j'ai voulu améliorer le code donner par Urban pour spawner un véhicule, mais ça ne marche pas. :ninja
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/nrg500", cmdtext, true) == 0)
{
if (!IsPlayerInAnyVehicle)
{
new Float:nrg500x;
new Float:nrg500y;
new Float:nrg500z;
new Float:nrg500Angle;
new nrg500;
GetPlayerPos(playerid, nrg500x, nrg500y, nrg500z);
GetPlayerFacingAngle(playerid,nrg500Angle);
nrg500 = CreateVehicle(522,nrg500x,nrg500y,nrg500z,nrg500Angle,158,175,50000);
PutPlayerInVehicle(playerid,nrg500,0);
return 1;
}
else
{
SendClientMessage(playerid,COULEUR_JAUNE, "Sortez de votre véhicule avant d'en spawné un autre!");
return 1;
}
}
return 0;
}
error 076: syntax error in the expression, or invalid function call
Si vous pourriez m'aider ce serait top. (http://www.jeuxvideo.com/smileys/71.gif)
Merci d'avance. (http://www.jeuxvideo.com/smileys/54.gif)
-
Ah la belle erreur, ça me rappelle ma jeunesse, j'avais passer une journée sur exactement la même erreur mais dans mons cas, j'avais pas d'erreur de compil (c'était du C).
Bref, trève de nostalgie.
Pour ton erreur, tu as simplement oublié les parenthèses dans IsPlayerInAnyVehicle :
if (!IsPlayerInAnyVehicle)
devient
if (!IsPlayerInAnyVehicle ())
++
Syg
-
Ah ok, c'était ça! :laugh :laugh
En plus j'ai l'habitude des parenthèses pourtant avec le PHP :dry ¬¬
merci Syg. :)
++
ZecKo
-
Salut,
Moi j'ai un problème avec le code
ca me dit
D:\Mes_Jeux\gta\gamemodes\test.pwn(5308) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
Header size: 4176 bytes
Code size: 267672 bytes
Data size: 348688 bytes
Stack/heap size: 16384 bytes; estimated max. usage=5540 cells (22160 bytes)
Total requirements: 636920 bytes
1 Warning.
Pourtant c'est bien mis ici
public OnPlayerEnterCheckpoint(playerid)
{
if (Check1)
{
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint atteint.");
}
return 1;
}
Savez vous pourquoi ?
-
Mauvaise indentation. :)
public OnPlayerEnterCheckpoint(playerid)
{
if (Check1)
{
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint atteint.");
}
return 1;
}
++
Alexandre
-
oué je me doute mais ca le désactive pas c'est ca qui est bizarre
faut dire aussi que j'ai du mal lol
j'ai fait
public OnPlayerEnterCheckpoint(playerid)
{
if (Check1)
{
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint atteint.");
DisablePlayerCheckpoint(playerid);
}
return 1;
}
-
j'ai fait comme ca ca l'aire de marcher
public OnPlayerEnterCheckpoint(playerid)
{
if (Check1)
{
}else {
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint 1.");
DisablePlayerCheckpoint(playerid);
AddStaticVehicle(477,1445.4526,974.2831,10.5534,1.6213,-1,-1);
}
if (Check2)
{
}else {
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint 2.");
DisablePlayerCheckpoint(playerid);
}
return 1;
}
quand je vais sur le 1er checkpoint ca me donne les deux phrases (CheckPoint 1 et CheckPoint 2.)
alors que c'est pas le meme race
if(strcmp(cmdtext, "/race", true) == 0)
{
SetPlayerCheckpoint(playerid, 1958.3783,1343.1572,15.3746, 4);
return 1;
}
Merci en tout cas pour ton aide :)
-
Cest normal que ca bug! XD regarde:
public OnPlayerEnterCheckpoint(playerid)
{
if (Check1)
{
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint 1.");
DisablePlayerCheckpoint(playerid);
AddStaticVehicle(477,1445.4526,974.2831,10.5534,1.6213,-1,-1);
}
if (Check2)
{
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint 2.");
DisablePlayerCheckpoint(playerid);
}
return 1;
}
Esseye comme ca ;)
++
nikko
Ps: Evite les doubles postes :rules ;)
-
Bonjour,
j'ai fait le code suivant
public OnPlayerEnterCheckpoint(playerid)
{
if (Check1)
{
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint 1.");
DisablePlayerCheckpoint(playerid);
}
if (Check2)
{
SendClientMessage(playerid,0xFFFF00AA, "> CheckPoint 2.");
DisablePlayerCheckpoint(playerid);
}
return 1;
}
quand je suis dans le Checkpoint ca me dit aucun message
alors que normalement je devrais avoir le message du SendClientMessage
Savez vous pourquoi ?
Merci
-
La, je sais pas pourquoi .... Dsl ;D
++
nikko
-
Yosh !
AU lieu de :
SetPlayerCheckpoint(playerid, 1958.3783,1343.1572,15.3746, 4);
Met :
Check1 = SetPlayerCheckpoint(playerid, 1958.3783,1343.1572,15.3746, 4);
;)
++
Alexandre
-
Merci beaucoup ca marche comme ceci
Cordialement,
-
moi j'ai uprobleme mon checkpoint reste tous le temps allume sur la mini carte (le radar) comment faire ? merci
-
Fait un disable check point for player ;)
Et verifie que tu parle bien du meme chek point
++
nikko
-
Salut,
Moi j'ai fait come ca pour un un race sur 1 seul checkPoint
if (Check2) // CheckPoint pour le Race 1
{
GameTextForPlayer(playerid,"~w~Tu as gagner", 3000,3);
SendClientMessage(playerid, COLOR_RED, "--------------------------------------------------------");
SendClientMessage(playerid, COLOR_WHITE, "Bravo tu as eu le Chechpoint");
SendClientMessage(playerid, COLOR_WHITE, "Tu as reçu 1000$ sur ton compte");
SendClientMessage(playerid, COLOR_RED, "--------------------------------------------------------");
GivePlayerMoney(playerid, 1000);
KillTimer(compteur);
DisablePlayerCheckpoint(playerid);
}
return 1;
}
pour avoir le CheckPoint tu fait
Check2 = SetPlayerCheckpoint(playerid, x, y, z, 7);
ou
Check2 = DisablePlayerCheckpoint(playerid); // Suivant le cas
En tout cas chez moi ca marche pas de toucher 1 checkpoint de le Disable et
re faire un chepoint quand tu roule dessus
Check3 = SetPlayerCheckpoint(playerid, x, y, z, 7);
Mais sinon 1 seul checkpoint ca marche...
Bon courage a toi
Cordialement,
-
pour avoir le CheckPoint tu fait
Check2 = SetPlayerCheckpoint(playerid, x, y, z, 7);
ou
Check2 = DisablePlayerCheckpoint(playerid); // Suivant le cas
En tout cas chez moi ca marche pas de toucher 1 checkpoint de le Disable et
re faire un chepoint quand tu roule dessus
Check3 = SetPlayerCheckpoint(playerid, x, y, z, 7);
Mais sinon 1 seul checkpoint ca marche...
Tu peux expliquer clairement ce que tu aimerai que ca fasse ?? :dry
++
nikko
-
Salut,
J'ai deja fait un Topic sur les CheckPoints
http://www.gtaonline.fr/forums/index.php/topic,3744.0.html
ca évite d'en faire trop sur le meme sujet.
Mercid e ton aide :)
Cordialement,
-
merci a vous deux et aussi a urban pour son superbe tuto
-
Désoler du double poste mais sa serais pour une aide j'aimerais savoir comment faire un checkpoint qui se voit que quand on s'approche de ce checkpoint merci d'avance ! :)
-
Timer + PlayerToPoint (que tu trouveras dans le script PEN1). :happy
Sinon en haut à droite de tes posts tu a un bouton "Éditer" pour éviter les doubles-posts. :)
++
Alexandre
-
Désolé de ne pas répondre souvent sur le forum je suis un peux (beaucoup) occupé ces temps-ci (Menteur :dry)
Enfin bref, j'en sais vraiment rien car j'utilise des Filterscript pour ce genre de choses mais j'ai quand même une idée.
Comme t'a dit -Alexandre essaye de faire un timer avec un GetPlayerPos. En gros il y à un minuteur qui vérifie toutes les X secondes que le joueur est dans la zone ou pas. Si oui le checkpoint s'affiche, si non tu connais la suite...
-
D'accord merci les mecs je vais essayer sa si j'ai un blem je revient :)
-
Perso pour mon serveur et éviter les bug regarde on cré un seule variable c'est aussi bien.
http://fight-international.com/forums/index.php?showtopic=139
Dites mois ce que vous en pensez ???
Edit :
http://pastebin.com/f5a376120
Pour faire plaizir a coco76
-
La tu fait surtout une pub pour ton site tu aurais donné sa http://pastebin.com/f5a376120 sa nous aurais suffit .
En plus y manque des choses return1; et des paranthèse j'ai corrigé sa
public OnPlayerEnterCheckpoint(playerid)
{
switch(desbomb[playerid])
{
case 1:
{
//Commande
}
case 2:
{
//commande
}
}
return 1;
}
Voila la pres le reste est pas mâle
-
Salut,
désolé de remonté ce "vieux" topic mais je tien à effectué une précision,
comme on peut le voir dans le script de UrbanGhetto :
public OnPlayerEnterCheckpoint(playerid)
LA CALLBACK NE COMPORTE PAS DE PARAMÈTRE CHECKPOINTID, alors tous vos test sur check1, check 2 etc.. ne servent à rien, du moins, pas de la façon dont vous le faites
vous pourriez utiliser un checkpoint streamer comme celui-ci (http://forum.sa-mp.com/index.php?topic=79283.0) ou encore celui-ci (http://forum.sa-mp.com/index.php?topic=69459.0)
pas contre, si vous faites de vous même un "streamer", ce qui serait effectivement recommandé si vous avez peu de checkpoint...
utilisez plutôt la fonction IsPlayerToPoint (comme mentionné plus tôt) ou IsPlayerInArea afin de décider si un joueur peut voir ou non un checkpoint,
dans ce streamer, vous devriez faire une variable informant le script si le joueur voit un checkpoint ou non, à ce moment, le test ne sera plus le même, il serait même possible de faire un streamer qui montre tout simplement le checkpoint le plus près...
bref:
au lieu de faire des tests du genre:
public OnPlayerEnterCheckpoint(playerid)
{
switch(desbomb[playerid])
{
case 1:
{
//Commande
}
case 2:
{
//commande
}
}
return 1;
}
Pensez plutôt a un test du genre:
public OnPlayerEnterCheckpoint(playerid)
{
if(IsPlayerToPoint(playerid,X,Y,Z,DISTANCE))//les paramètres X,Y,Z pourraient provenir d'un tableau de données et distance devrait être une constante défini au haut du script
{
....
}else if(IsPlayerToPoint(playerid,X,Y,Z,DISTANCE))
}
...
}
return 1;
}
P.S. un tableau de donnéee serait un code du genre:
enum CHECKPOINT_ENUM
{
Float:X,
Float:Y,
Float:Z,
Float:Taille,//le rayon(ou diamètre) du checkpoint
Float:Distance,//distance pour le voir
}
new CheckpointList[][CHECKPOINT_ENUM] = {
{123.32,432.12,3.231,12,250},//checkpoint ID 0
{123.32,432.12,3.231,12,250},//CheckPoint ID 1
{123.32,432.12,3.231,12,250},//.....
{123.32,432.12,3.231,12,250}
};
new PlayerCheckpointID[MAX_PLAYERS];
new TimerCheckStreamer;
forward StreamCheck();
public OnGameModeInit()
{
TimerCheckStreamer = SetTimer("StreamCheck",1000,1);
return 1;
}
public OnGameModeExit()
{
KillTimer(TimerCheckStreamer);
return 1;
}
public StreamCheck()
{
for(new i; i<MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
for(new o; o<sizeof(CheckpointList);o++){
if(IsPlayerToPoint(i,CheckpointList[o][X],CheckpointList[o][Y],CheckpointList[o][Z],CheckpointList[o][Distance]){
CreatePlayerCheckPoint(i,CheckpointList[o][X],CheckpointList[o][Y],CheckpointList[o][Z],CheckpointList[o][Taille]);
PlayerCheckpointID[i] = o;
break;//on stoppe la seconde boucle
}
}
}
}
}
//ET FINALEMENT
public OnPlayerEnterCheckPoint(playerid)
{
if(PlayerCheckpointID[playerid] == ...)
{
.....
}
......
return 1;
}
en espérant que le code fonctionne ou presque (composé sur le forum)
++Sim++
-
Bonjour j'ai besoin d'aide avec un de mes métiers, celui de la job du fermier,je voudrais que quand ils arrive au checkpoint 22 sa retourne au 1 et en continue a place de terminer comme sa je peut faire la job tout le temps sans attendre au prochain paycheck.Comment est-ce que je peut faire sa? j'avais penser a enlever le disabledcheckpoint mais quoi mettre a la place sa j'ai pas trouver.Merci d'avance et bonne journée a vous.
case 21:
{
SetPlayerCheckpoint(playerid, -376.7750,-1437.6874,25.7266, 5.0);
if(JustStarted[playerid] != 0)
{
JustStarted[playerid] = 0;
}
}
case 22:
{
DisablePlayerCheckpoint(playerid);
TogglePlayerControllable(playerid, 0);
new cashes=(random(35-10)+100);
format(string, sizeof(string), "Utilisez /sortir pour sortir. Vous gagnez %d$",cashes);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SafeGivePlayerMoney(playerid, cashes);
}
}
FarmerPickup[playerid][0]++;
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}
}
return 1;
-
On ne peut pas t'aider avec juste cette portion de code, montre nous tout ce qui concerne ceci en séparent correctement les différentes parties du code.
PS: Pense à utiliser la balise code.
PS2: Ne fait pas l'erreur de poster un code trop grand sur le forum.
-
Okay mais il a 22 cases donc je vais devoir montrer le début et la fin tout simplement ce sont les meme code que un 2ieme monde.Desoler j'ai enlever les parathese et les espace pour que le code soit moins gros. sa part de ceci et sa continue jusqu'au case 22 comme mon message précédant.J'aimerais que apres le 22 case sa recommence au case 1
P.s Comment étuliser la balise code le mien donne sa.
if(FarmerVar[playerid] == 1)
if (IsPlayerInAnyVehicle(playerid))
new carid = GetPlayerVehicleID(playerid);
//new cash=(random(70-20)+50);
if(IsAHarvest(carid))
switch(FarmerPickup[playerid]
case 0:
SetPlayerCheckpoint(playerid, -205.9348,-1332.2749,10.4056, 5.0);
if(JustStarted[playerid] != 0)
JustStarted[playerid] = 0;
case 1:
SetPlayerCheckpoint(playerid, -376.7750,-1437.6874,25.7266, 5.0);
if(JustStarted[playerid] != 0)
JustStarted[playerid] = 0;
case 2:
if(JustStarted[playerid] != 1)
new cashes=(random(15-10)+50);
format(string, sizeof(string), "Vous gagnez %d$",cashes);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SafeGivePlayerMoney(playerid, cashes);
else
JustStarted[playerid] = 0;
SetPlayerCheckpoint(playerid, -548.5396,-1329.0653,19.6210, 5.0);
-
Tu ne connait apparemment pas l'existence des blocs d'instructions (encadrés par des accolades).