GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: @l3sc48 le 24 Juillet 2011, 20:56:31
-
Bonjour depuis peu j'ai décider de créer un serveur de driftrace
j'ai donc créer un gm de 0 en prenant un peu des truc sur d'autre GM comme barto stunt
j'ai donc prit tous les système de téléportations et skin mais quand je compile j'ai sa
C:\Program Files\Rockstar Games\GTA San Andreas\samp03csvr_R2-2_win32\gamemodes\gmprjd.pwn(637) : error 017: undefined symbol "dcmd_ncol"
C:\Program Files\Rockstar Games\GTA San Andreas\samp03csvr_R2-2_win32\gamemodes\gmprjd.pwn(638) : error 017: undefined symbol "dcmd_skin"
svp comment je peut faire
-
voila
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(ncol,4, cmdtext);
dcmd(skin,4, cmdtext);
if(strcmp(cmdtext, "/drift", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),2320.1829,1403.9122,42.8203);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Drift.");
return 1;
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,2320.1829,1403.9122,42.8203);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Drift.");
return 1;
}
if(strcmp(cmdtext, "/drift2", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),-294.0154,1537.5785,75.5625);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Drift2.");
return 1;
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,-294.0154,1537.5785,75.5625);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Drift2.");
return 1;
}
if(strcmp(cmdtext, "/cross", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),-138.4679,45.4896,3.1172);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Cross.");
return 1;
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,-138.4679,45.4896,3.1172);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Cross.");
return 1;
}
if(strcmp(cmdtext, "/dune", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),-518.0116,2593.4656,53);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Dune.");
return 1;
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,-518.0116,2593.4656,53);
SendClientMessage(playerid,0x33AA33AA, "Vous vous êtes téléporté(e) à : Dune.");
return 1;
}
if(strcmp(cmdtext, "/moto", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),-2466.2983,2246.4153,4);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Moto.");
return 1;
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,-2466.2983,2246.4153,4);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Moto.");
return 1;
}
if(strcmp(cmdtext, "/taxi", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),-1014.2969,-641.8807,32.0078);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) : Taxi.");
return 1;
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,-1014.2969,-641.8807,32.0078);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) : Taxi.");
return 1;
}
if(strcmp(cmdtext, "/scoot", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),-2061.2947,-95.0295,35.1641);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Scoot.");
return 1;
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,-2061.2947,-95.0295,35.1641);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Scoot.");
return 1;
}
if(strcmp(cmdtext, "/lv", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),1591.9164,1623.5652,10.8203);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : LV.");
return 1;
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,1591.9164,1623.5652,10.8203);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : LV.");
return 1;
}
if(strcmp(cmdtext, "/stuntmap", true) == 0)
if(strcmp(cmdtext, "/vsf", true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
SetVehiclePos(GetPlayerVehicleID(playerid),-2694.3477, 276.7536, 4.3359);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Vsf.");
return 1;
}
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,-2694.3477, 276.7536, 4.3359);
SendClientMessage(playerid, 0x33AA33AA, "Vous vous êtes téléporté(e) à : Vsf.");
return 1;
}
-
tu as penser a la define DCMD ?
-
Ton code est faux, je t'explique :
Tu définis bien tes commandes dans OnPlayerCommandText, c'est bien.
Par contre, tu ne dois plus utiliser strcmp pour tes commandes, mais une "callback" PAR commande.
public OnPlayerCommandText(playerid,cmdtext[]) // OnPlayerCommandText ne sera utilisée que pour créer tes commandes
{
dcmd(ncol,4,cmdtext);
dcmd(skin,4,cmdtext);
return 1;
}
dcmd_ncol(playerid,params[]) // Je ne sais plus si ce sont les bons paramètres par contre...
{
// Code de la commande ncol
return 1;
}
dcmd_skin(playerid,params[])
{
// code de la cmd skin
return 1;
}
:hs : Tu devrais lire le tuto de Syg sur la création de fonctions avec ton code de téléports. Plutôt que de copier ton code de téléport x fois, tu met tout dans une fonction Teleport(playerid,X,Y,Z,rotation,message[]);
++
-
merci
mais j'ai oublier de dire que j'ai mit sa aussi
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1764.9407,-2392.4565,22.7496);
SetPlayerCameraPos(playerid, 1768.4640,-2391.8730,22.7496);
SetPlayerCameraLookAt(playerid, 1764.9407,-2392.4565,22.7496);
PlayerPlaySound(playerid, 1130, 0.0, 0.0, 0.0);
if(classid == 0 || classid == 1)
{
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~b~Drift", 1000, 6);
}
if(classid == 2 || classid == 3)
{
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~r~Drift 2", 1000, 6);
}
if(classid == 4 || classid == 5)
{
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~g~Cross", 1000, 6);
}
if(classid == 6 || classid == 7)
{
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~y~Dune", 1000, 6);
}
if(classid == 8 || classid == 9)
{
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~b~Moto", 1000, 6);
}
if(classid == 10 || classid == 11)
{
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~r~Taxi", 1000, 6);
}
if(classid == 12 || classid == 13)
{
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~g~Scoot", 1000, 6);
}
if(classid == 14 || classid == 15)
{
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~y~Stunt Map", 1000, 6);
}
if(classid == 16 || classid == 17)
{
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~b~Aeroport", 1000, 6);
}
return 1;
}
est-ce que sa change des chose par rapport a se que tu ma dit de faire ?
-
Donc si j'ai bien compris je change le if par
dcmd_ncol(playerid,params[])
??
Double post
j'ai tester sa marche pas vous pouvez juste me faire un exemple du premier goto pour que je voi comment il faut faire svp merci
-
tu n'as pas repondut a ma question ce serais deja un debut d'y repondre
-
a oui je me suis tros concentre sur gilux donc
tu parle de sa ?
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
-
oui ^^
est apres ou est ta commande?
-
dans
public OnPlayerRequestClass(playerid, classid)
et le message dans public OnPlayerCommandText(playerid, cmdtext[])
-
je croit tu n'as pas compris comment sa marche ^^
-
dsl je débute
http://www.megaupload.com/?d=U095DAEZ (http://www.megaupload.com/?d=U095DAEZ)
peut être que tu t'en sortiras mieux comme sa
et encore merci de votre aide
-
svp pouvez vous m'aider a régler mon problème