Something wrong with zcmd?
#1

Hey again.

I just tried to add a /b command to my script and this is what happened.

Quote:

error 029: invalid expression, assumed zero
error 017: undefined symbol "cmd_b"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line

And all these errors are on the same line, and this is the line:
Quote:

CMD:b(playerid, params[])

Placed underneath:
Quote:

public OnPlayerCommandText(playerid, cmdtext[])
{

I am newbie scripter, so do not expect I know everything and that is why I am asking. As this is a scripting help section, there are no need to tell me to use ******, because I have already used ****** and it says nothing about this problem. Thanks. Maybe it is obviously for you scripts, but not for me as a newbie.

The whole command:
Quote:

CMD:b(playerid, params[])
{
new text[128], string[128];
new name[MAX_PLAYER_NAME];
if(sscanf(params,"s[128]",text)) return SendClientMessage(playerid,-1,"{008000}Usage: /n [message]");
else
{
GetPlayerName(playerid,name,sizeof(name));
strreplace(name, '_', ' ');
format(string,sizeof(string),"(( %s says: %s ))",name,text);
SendNearbyMessage(30.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE);
}
return 1;
}

Reply
#2

Don't place (zcmd) commands in any callbacks. They should be like standalone functions.
Reply
#3

Quote:
Originally Posted by MellowHammer
Посмотреть сообщение
Don't place (zcmd) commands in any callbacks. They should be like standalone functions.
And what do you mean by that, and how to I make them standalone?
Reply
#4

Just remove that /b command from OnPlayerCommandText. Add it anywhere, like bottom of the script.
Reply
#5

Place it after some callback, not in one, just like this:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
   //Not needed for ZCMD
}

//Not inside a callback or any other function
CMD:b(playerid, params[])
{
   //Code goes here.
}
Reply
#6

Got this error:
Quote:

error 035: argument type mismatch (argument 4)

The line:
Quote:

SendNearbyMessage(30.0, playerid, string, COL_WHITE, COL_WHITE, COL_WHITE, COL_WHITE, COL_WHITE);

Reply
#7

Can I see your SendNearbyMessage function?
Reply
#8

try to replace COL_WHITE with this deffinition and then..

#define COLOR_WHITE 0xFFFFFFAA

replace all COL_WHITE with COLOR_WHITE
Reply
#9

Quote:

SendNearbyMessage(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
{
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
SendClientMessage(i, col5, string);
}
}
}
}
}
return 1;
}

I just placed it at the bottom of the script. Am I meant to place it somewhere else?
Reply
#10

Do replace COL_WHITE with COLOR_WHITE like Scrillex said, and add;

pawn Код:
#undef COLOR_WHITE
#define COLOR_WHITE 0xFFFFFFFF
EDIT: The stock is at the right place, no need to worry
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)