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

Titre: [erreur] dcmd
Posté 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

Citer
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
Titre: Re : [erreur] dcmd
Posté par: @l3sc48 le 24 Juillet 2011, 21:39:35
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;
     }
     
Titre: Re : [erreur] dcmd
Posté par: cristab le 24 Juillet 2011, 21:40:08
tu as penser a la define DCMD ?
Titre: Re : [erreur] dcmd
Posté par: Gilux le 24 Juillet 2011, 22:03:59
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[]);

++
Titre: Re : [erreur] dcmd
Posté par: @l3sc48 le 24 Juillet 2011, 22:14:28
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 ? 
Titre: Re : [erreur] dcmd
Posté par: @l3sc48 le 25 Juillet 2011, 11:53:19
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
Titre: Re : [erreur] dcmd
Posté par: cristab le 25 Juillet 2011, 19:50:33
tu n'as pas repondut a ma question ce serais deja un debut d'y repondre
Titre: Re : [erreur] dcmd
Posté par: @l3sc48 le 25 Juillet 2011, 22:13:12
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
Titre: Re : [erreur] dcmd
Posté par: cristab le 25 Juillet 2011, 22:37:38
oui ^^

est apres ou est ta commande?
Titre: Re : [erreur] dcmd
Posté par: @l3sc48 le 25 Juillet 2011, 22:41:32
dans

public OnPlayerRequestClass(playerid, classid)
et le message dans public OnPlayerCommandText(playerid, cmdtext[])
Titre: Re : [erreur] dcmd
Posté par: cristab le 25 Juillet 2011, 22:51:44
je croit tu n'as pas compris comment sa marche ^^
Titre: Re : [erreur] dcmd
Posté par: @l3sc48 le 25 Juillet 2011, 23:05:23
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
Titre: Re : [erreur] dcmd
Posté par: @l3sc48 le 27 Juillet 2011, 10:48:31
svp pouvez vous m'aider a régler mon problème