Little help -
Anzhelov - 01.02.2011
I get the next errors:
Код:
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(110) : error 017: undefined symbol "cmd"
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(112) : error 017: undefined symbol "sendername"
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(112) : error 017: undefined symbol "sendername"
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(112) : error 029: invalid expression, assumed zero
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(112) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
5 Errors.
This is the command that I want to make, it's /me command for RP server.
Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmd, "/me", true) == 0)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GiveNameSpace(sendername);
if(PlayerInfo[playerid][pMaskUse] == 1) { format(sendername, sizeof(sendername), "Stranger_%d", RandMask[playerid]); }
new length = strlen(cmdtext);
if(Mute[playerid] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, "You cannot speak, you have been silenced");
return 1;
}
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /me [action]");
return 1;
}
format(string, sizeof(string), "* %s %s", sendername, result);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
//printf("%s", string);
return 1;
}
}
Line 110 is:
Код:
if(strcmp(cmd, "/me", true) == 0)
Re: Little help -
Marricio - 01.02.2011
i still dont understand why ppl always copy&paste for a single thing.
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], sendername[MAX_PLAYER_NAME];
if(strcmp(cmd, "/me", true) == 0)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GiveNameSpace(sendername);
if(PlayerInfo[playerid][pMaskUse] == 1) { format(sendername, sizeof(sendername), "Stranger_%d", RandMask[playerid]); }
new length = strlen(cmdtext);
if(Mute[playerid] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, "You cannot speak, you have been silenced");
return 1;
}
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[128];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /me [action]");
return 1;
}
GetPlayerName(playerid,sendername,128);
format(string, sizeof(string), "* %s %s", sendername, result);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
//printf("%s", string);
return 1;
Enjoy.
}
}
Re: Little help -
Anzhelov - 01.02.2011
Код:
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(117) : error 017: undefined symbol "GiveNameSpace"
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(118) : error 017: undefined symbol "PlayerInfo"
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(118) : warning 215: expression has no effect
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(118) : error 001: expected token: ";", but found "]"
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(118) : error 029: invalid expression, assumed zero
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(118) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
5 Errors.
Re: Little help -
Marricio - 01.02.2011
That happens when you copy & paste, sorry.
Re: Little help -
Anzhelov - 01.02.2011
How to fix it ?
Re: Little help -
Marricio - 01.02.2011
Remove the lines where are the errors.
Re: Little help -
Anzhelov - 01.02.2011
I think this will doesn't help ... how to make the /me command ? I want it for players near by you ...
Re: Little help -
Marricio - 01.02.2011
pawn Код:
public ProxDetector(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) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
{
GetPlayerPos(i, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
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;
}
pawn Код:
if(!strcmp(cmdtext, "/me", true, 3)) // 3 is the length of /me
{
if(!cmdtext[3])return SendClientMessage(playerid, 0xFF0000FF, "USAGE: /me [action]");
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
ProxDetector(30.0, playerid, str, 0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA,0xC2A2DAAA);
return 1;
}
Credits to WIKI.
EDIT: I just noticed a little error. /me code updated.
This code would send a message to near players
Re: Little help -
xRyder - 01.02.2011
Hmmm...Why using ProxDetector for /me command?? When you can use NearByMessage function
And I suggest you to use ZCMD.
pawn Код:
COMMAND:me(playerid, params[])
{
new string[128], MText[128],name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(!sscanf(params, "s[128]",MText))
{
format(string, sizeof(string), "** %s %s", name, params[0]);
NearByMessage(playerid, 0xBC43B9FF, string);
}
else return SendClientMessage(playerid, COLOR_WHITE, "[INFO]: /me [Action]");
return 1;
}
Function:
pawn Код:
forward NearByMessage(playerid, colour, string[]);
public NearByMessage( playerid, colour, string[])
{
new Float: PlayerX, Float: PlayerY, Float: PlayerZ;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnectedEx( i ) && IsPlayerSpawned( playerid ) )
{
GetPlayerPos( playerid, PlayerX, PlayerY, PlayerZ);
if(IsPlayerInRangeOfPoint(i, 12, PlayerX, PlayerY, PlayerZ) )
{
if(GetPlayerVirtualWorld( playerid ) == GetPlayerVirtualWorld( i ) && GetPlayerInterior( playerid ) == GetPlayerInterior( i ) )
{
SendClientMessage(i, colour, string);
}
}
}
}
return true;
}
Re: Little help -
Anzhelov - 01.02.2011
When I try with ProxDetector I got this error:
Код:
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(205) : error 017: undefined symbol "ProxDetector"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
1 Error.
How to fix it ?
Re: Little help -
Marricio - 01.02.2011
put return 0; at onplayertext not return 1;
Re: Little help -
Anzhelov - 01.02.2011
Ok, thanks for everything
What about the /do command, well /me is added, but I need and /do but I don't know how to write it
Re: Little help -
Marricio - 01.02.2011
base on /me
Re: Little help -
Anzhelov - 01.02.2011
I have no idea ... lol
Код:
if(!strcmp(cmdtext, "/do", true, 3)) // 3 is the length of /do
{
if(!cmdtext[3])return SendClientMessage(playerid, COLOR_GREY, "USAGE: /do [text]");
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "* %s %s", str, cmdtext[4]);
ProxDetector(30.0, playerid, str, COLOR_PINK,COLOR_PINK,COLOR_PINK,COLOR_PINK,COLOR_PINK);
return 1;
}
I have to change something in format(str, sizeof(str), "* %s %s", str, cmdtext[4]); ,but what ?
It should be: text ((Player_Name))
Re: Little help -
Marricio - 01.02.2011
format(str, sizeof(str), "* %s (( %s ))", cmdtext[4], str);
Re: Little help -
Anzhelov - 01.02.2011
IT WORKS ... THANK YOU!!
And again I have to ask about the OOC chat
Format should be
[OOC] Your_Name: Your Message
Re: Little help -
Marricio - 01.02.2011
if(!strcmp(cmdtext, "/ooc", true, 3))
{
if(!cmdtext[3])return SendClientMessage(playerid, COLOR_GREY, "USAGE: /ooc [text]");
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "*[OOC] %s %s", str, cmdtext[4]);
SendClientMessageToAll(str, COLOR_PINK);
return 1;
}
Re: Little help -
Anzhelov - 01.02.2011
Код:
D:\Games\Grand Theft Auto (GTA) San Andreas-HOODLUM\Testovo\gamemodes\testov.pwn(253) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
1 Error.
Re: Little help -
Anzhelov - 02.02.2011
Код:
if(!strcmp(cmdtext, "/b", true, 3))
{
if(!cmdtext[3])return SendClientMessage(playerid, COLOR_GREY, "USAGE: /b [text]");
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "*[OOC] %s %s", str, cmdtext[4]);
SendClientMessageToAll(str, COLOR_GOOCCHAT);
return 1;
}
What is wrong ?
Re: Little help -
Steven Paul - 02.02.2011
use this. BTW you didn't show us your error line
pawn Код:
if(!strcmp(cmdtext, "/b", true, 3))
{
new result[128];
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GREY, "USAGE: /b [TEXT]");
return 1;
}
new str[128];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), "*[OOC] %s %s", str, cmdtext[4]);
SendClientMessageToAll(str, COLOR_GOOCCHAT);
return 1;
}