Woxer
Умник
Захожу на сервер, прописываю команду и не происходит абсолютно ничего. dc_cmd установлен правильно, sscanf тоже, функция OnPlayerCommandText возвращает 0.
Команда находится в самом конце мода.
С чем может быть связана проблема?
Код самой команды:
Функция MeAction:
ProxDetector:
Команда находится в самом конце мода.
С чем может быть связана проблема?
Код самой команды:
PHP:
cmd:me(playerid, params[])
{
if (sscanf(params, "s[128]", params[0]))
{
SendClientMessage(playerid, 0xE75480FF, "Введите: /me [действие]");
return 1;
}
MeAction(playerid, params[0], 0);
return 1;
}
PHP:
stock MeAction(playerid, text[], type)
{
new string[128];
new message[128];
switch(type)
{
case 0:
{
if(strlen(text) >= 80)
{
strmid(string, text, 64, 128, 128);
strdel(text,64,128);
format(message, 104+3, "%s(%d) %s...", Player[playerid][Name], playerid, text);
ProxDetector(15.0, playerid, message, CPINK, CPINK, CPINK, CPINK ,CPINK);
format(message, 88+3, "...%s", string);
ProxDetector(15.0, playerid, message, CPINK, CPINK, CPINK, CPINK ,CPINK);
return 0;
}
else
{
format(message, 104, "%s(%d) %s", Player[playerid][Name], playerid, text);
ProxDetector(15.0, playerid, message, CPINK, CPINK, CPINK, CPINK ,CPINK);
return 0;
}
}
case 1:
{
format(message,sizeof(message),"%s",text);
SetPlayerChatBubble(playerid, message, CPINK, 15.0, 5000);
}
case 2:
{
format(message,sizeof(message),"%s",text);
SetPlayerChatBubble(playerid, message, CPINK, 15.0, 5000);
}
}
return 1;
}
PHP:
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
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))) // If the player is within 16 meters
{
SendClientMessage(i, col1, string);
}
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) // within 8 meters
{
SendClientMessage(i, col2, string);
}
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) //4 meters
{
SendClientMessage(i, col3, string);
}
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) //2 meters
{
SendClientMessage(i, col4, string);
}
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) //1 meter
{
SendClientMessage(i, col5, string);
}
}
else
{
SendClientMessage(i, col1, string);
}
}
}
return 1;
}
