GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: smackou77 le 30 Mai 2007, 20:06:23
-
alors voilà j'ai un script pour mon mode race qui est enfete des checkpoints alor en fete ce que j'avais prévu c'était que can le joueur passe dessus un otre s'allume etc et can le dérnié é passé ba les checkpoint s'enléve alor le voici:
OnPlayerEnterCheckpoint(playerid)
{
if(!nom_du_tab[playerid])
SetPlayerCheckpoint(playerid, position2 X, Y, Z, taille);
elseif(nom_du_tab[playerid]==1)
SetPlayerCheckpoint(playerid, position2 X, Y, Z, taille);
elseif(nom_du_tab[playerid]==2)
SetPlayerCheckpoint(playerid, position2 X, Y, Z, taille);
elseif(nom_du_tab[playerid]==3)
DisablePlayerCheckpoint(playerid);
nom_du_tab[playerid]++;
}
Vous en penssez quoi?
-
Utilises un switch plutôt que des if et des else.
Aussi, tu ferais mieux de récupérer un script de courses sur le forum sa:mp, parti showroom.
-
je trouve pas l'endroit où tu em dit showrom c où sa?
-
http://forum.sa-mp.com/index.php?board=30.0
-
ok je trouve pas je suis pas trés fort en anglais mais tu penses que mon script marcherai?
OnPlayerEnterCheckpoint(playerid)
{
if(!nom_du_tab[playerid])
SetPlayerCheckpoint(playerid, position2 X, Y, Z, taille);
elseif(nom_du_tab[playerid]==1)
SetPlayerCheckpoint(playerid, position2 X, Y, Z, taille);
elseif(nom_du_tab[playerid]==2)
SetPlayerCheckpoint(playerid, position2 X, Y, Z, taille);
elseif(nom_du_tab[playerid]==3)
DisablePlayerCheckpoint(playerid);
nom_du_tab[playerid]++;
}
par contre c'est quoi des switch?
-
Il n'y a aucune chance pour que ton script marche si tu fermes pas les }..
Un switch est ce qui permet de faire ce que tu veux, ça analyse les cas dans lequel tu es et s'adapte selon le cas...
Y a un exemple dans le script area51.
-
OnPlayerEnterCheckpoint(playerid)
{
switch (nom_du_tab[playerid]) {
case 0:
{
SetPlayerCheckpoint(playerid, position2 X, Y, Z, taille);
}
case 1:
{
SetPlayerCheckpoint(playerid, position2 X, Y, Z, taille);
}
case2:
{
SetPlayerCheckpoint(playerid, position2 X, Y, Z, taille);
}
case3:
{
DisablePlayerCheckpoint(playerid);
nom_du_tab[playerid]++;
}
}
return 1;
}
Comme sa?
-
Moi je fais comme sa pour les cheks :
Dans les defines
#define SPEEDER_CHECKPOINTS XX // XX = nombre de checkpoint
new Float:gSpeederCheckpoints[SPEEDER_CHECKPOINTS][4] = {
{2151.3589,851.8388,6.3631,10.0}, //LV RACE Ligne de depart
{1753.6545,850.6560,9.5190,10.0}, //premier checkpoint
{1568.6921,833.5577,6.3990,10.0},
{1287.6051,905.6605,6.4374,10.0},
{1226.4041,1334.8127,6.3621,10.0},
{1209.0433,1502.7931,6.3621,10.0},
{1263.7335,1732.5851,8.0399,10.0},
{1401.9918,1872.6542,10.3007,10.0}, <==== Positions des chekpoints ( à modifier)
{1707.2323,1886.4031,10.2967,10.0},
{1728.4037,2053.3477,10.2970,10.0},
{1956.9373,2022.1593,10.2968,10.0},
{2176.9705,2137.1475,10.2968,10.0},
{2349.7729,2179.5166,10.3058,15.0},
{2287.6816,2291.3613,10.3413,10.0},
{2271.7271,2413.7090,10.3006,10.0},
{2189.2878,2325.5537,10.2968,10.0},
{2074.8704,1758.3037,10.2968,10.0},
{2047.5907,1587.5190,10.2968,10.0},
{2061.5239,1531.0094,10.2968,10.0},
{2047.8118,1361.2373,10.2968,10.0},
{2046.0575,861.8326,6.3588,15.0} //FIN!
};
Dans les cases
SetPlayerCheckpoint(playerid,gSpeederCheckpoints[i][0],gSpeederCheckpoints[i][1],gSpeederCheckpoints[i][2],gSpeederCheckpoints[i][3]);
The