Problem with dcmd
#1

Hi all!

My pawn compiler don't like my dcmd command. Heres the error:
Код:
C:\Users\greatman\Documents\Downloads\sampserver\gamemodes\rp.pwn(100) : error 017: undefined symbol "dcmd"
C:\Users\greatman\Documents\Downloads\sampserver\gamemodes\rp.pwn(101) : error 017: undefined symbol "dcmd"
C:\Users\greatman\Documents\Downloads\sampserver\gamemodes\rp.pwn(102) : error 017: undefined symbol "dcmd"
C:\Users\greatman\Documents\Downloads\sampserver\gamemodes\rp.pwn(294) : warning 203: symbol is never used: "dcmd_help"
C:\Users\greatman\Documents\Downloads\sampserver\gamemodes\rp.pwn(294) : warning 203: symbol is never used: "dcmd_login"
C:\Users\greatman\Documents\Downloads\sampserver\gamemodes\rp.pwn(294) : warning 203: symbol is never used: "dcmd_register"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


3 Errors.
And the code:
Код:
#include <a_samp>
#include <Dini>
#include <dudb>
#include <dutils>
#define JAUNE 0xF2F810FF
#define ROUGE 0xAA3333AA
main()
{
	print("\n----------------------------------");
	print(" RP Gamemode by William Lebel");
	print("----------------------------------\n");
}


enum PLAYER_MAIN {
	PLAYER_NAME[MAX_PLAYER_NAME],
	PLAYER_IP[16],
	PLAYER_REGISTERED,
	PLAYER_PASS,
	PLAYER_LOGGED,
	PLAYER_LEVEL,
	PLAYER_WIRED,
	PLAYER_JAILED
}
new gPlayerInfo[MAX_PLAYERS][PLAYER_MAIN];

public OnGameModeInit()
{
	// Don't use these lines if it's a filterscript
	SetGameModeText("RP 1.0");
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
	return 1;
}

public OnGameModeExit()
{
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
	return 1;
}

public OnPlayerConnect(playerid)
{
  new name[MAX_PLAYER_NAME], string[250];
  GetPlayerName(playerid, name, sizeof(name));
  format(string, sizeof(string), "%s has joined the server.", name );
  gPlayerInfo[playerid][PLAYER_NAME] = name;
  SendClientMessageToAll(0xFFFF00AA, string);
	if (udb_Exists(name))
	{
	  format(string, sizeof(string), "%s user exist. Please login with /login [password]", name);
	  SendClientMessage(playerid,JAUNE,string);
	}
	else
	{
	  format(string, sizeof(string), "%s is not registered. Please register with /register [password]", name);
		SendClientMessage(playerid,JAUNE,string);
	}
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	return 1;
}

public OnPlayerSpawn(playerid)
{
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
  dcmd(help, 4, cmdtext);
  dcmd(register, 8, cmdtext);
  dcmd(login, 5, cmdtext);
	return 0;
}
dcmd_help(playerid, params[])
{
  #pragma unused params
	new string[250];
	format(string, sizeof(string), "Commands: /help /login /register");
	SendClientMessage(playerid,JAUNE,string);
	return 1;
}
dcmd_register(playerid, params[])
{
	if (gPlayerInfo[playerid][PLAYER_REGISTERED] == 1)
	{
	  return SendClientMessage(playerid,ROUGE,"You are already registered!");
	}
	else if (!params[0])
	{
	  return SendClientMessage(playerid, ROUGE, "SYNTAX: /register [password]");
	}
	else
	{
	  if (udb_Create(gPlayerInfo[playerid][PLAYER_NAME],params))
		{
			gPlayerInfo[playerid][PLAYER_REGISTERED] = 1;
		  return SendClientMessage(playerid, JAUNE, "Account created! Please login with /login [password]");
		}
		else
		{
		  return SendClientMessage(playerid, ROUGE, "There is a problem creating your account. If it persist please contact a admin");
		}
	}
	
}
dcmd_login(playerid,params[])
{
	if (gPlayerInfo[playerid][PLAYER_LOGGED] == 1)
	{
	  return SendClientMessage(playerid, ROUGE, "You are already login!");
	}
	else if (!params[0])
	{
	  return SendClientMessage(playerid, ROUGE, "SYNTAX: /register [password]");
	}
	else
	{
	  if (udb_CheckLogin(gPlayerInfo[playerid][PLAYER_NAME],params))
	  {
	 		gPlayerInfo[playerid][PLAYER_LOGGED] = 1;
	 		return SendClientMessage(playerid, JAUNE, "Login succesful!");
		}
		else
		{
		  return SendClientMessage(playerid, ROUGE, "Wrong password!");
		}
	}
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
	return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
	return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
	return 1;
}

public OnRconCommand(cmd[])
{
	return 1;
}

public OnPlayerRequestSpawn(playerid)
{
	return 1;
}

public OnObjectMoved(objectid)
{
	return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
	return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
	return 1;
}

public OnPlayerExitedMenu(playerid)
{
	return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
	return 1;
}

public OnPlayerUpdate(playerid)
{
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}
EDIT: Never mind i forgot the #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
line

Reply
#2

pawn Код:
#define dcmd(%1,%2,%3) if(!(strcmp((%3)[1],#%1,true,(%2)))&&((((%3)[(%2)+1]==0)&&(dcmd_%1(playerid,"")))||(((%3)[(%2)+1]==32)&&(dcmd_%1(playerid,(%3)[(%2)+2]))))) return 1
Put it up

Edit:
Sorry, I did not see your edit .
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)