-
Команды/me , /getip
Вообщем команды работают неправильно.
1. Команда /me, просто пишет мне Используйте:/me [текст]
PHP код:
dcmd_me(playerid, params[])
{
#pragma unused params
new string[88], name[MAX_PLAYER_NAME], text[64];
GetPlayerName(playerid, name, sizeof(name));
if(sscanf(text,"u",text)) return SendClientMessage(playerid, COLOR_WHITE,"Èñïîëüçóéòå: /me [òåêñò]");
format(string, 178, "%s %s", name, text);
SendClientMessage(playerid, white, text);
ProxDetector(30.0, playerid, text, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, text, COLOR_PURPLE, 30.0, 10000);
return true;
}
2. Команда /getip должна действовать по id (/getip [id]), но она показывает твое айпи. :c
PHP код:
dcmd_getip(playerid, params[])
#pragma unused params
{
if(PlayerInfo[playerid][pAdminLevel] >= 2)
{
new name[MAX_PLAYER_NAME], ipStr[16], messageStr[48];
GetPlayerName(playerid, name, sizeof(name));
GetPlayerIp( playerid, ipStr, 16 );
format(messageStr, 48, "[IP|%s] -- %s", name, ipStr );
SendClientMessage(playerid, white, messageStr);
}
return true;
}
-
PHP код:
#pragma unused params
уберите и замените
PHP код:
if(sscanf(text,"u",text))
на
PHP код:
if(isnull(params))
а далее вместо text в команде используйте слово params.
-
Команда /me.
1. Изменил, по твоему cовету, код получился таков:
PHP код:
dcmd_me(playerid, params[])
{
new string[88], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(isnull(params)) return SendClientMessage(playerid, COLOR_WHITE,"Используйте: /me [текст]");
format(string, 178, "%s %s", name, params);
SendClientMessage(playerid, white, params);
ProxDetector(30.0, playerid, params, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, params, COLOR_PURPLE, 30.0, 10000);
return true;
}
А получилось вот что: http://imgur.com/mPE9VG0
PHP код:
public OnPlayerText(playerid, text[])
{
SetPlayerChatBubble(playerid, text, white, 100.0, 10000);
if(GetPVarInt(playerid,"Logged") == 0)
{
SendClientMessage(playerid, red, "Îøèáêà: àâòîðèçóéñÿ, ÷òî áû ïèñàòü â ÷àò.");
return 0;
}
if(GetPVarInt(playerid, "maska_odeta"))
{
new nickvmaske[78];
if(GetPVarInt(playerid, "maska_odeta") == 1) format(nickvmaske, sizeof(nickvmaske),"Íåèçâåñòíûé: %s", text);
SendClientMessage(playerid, 0x000000AA, nickvmaske);
return 0;
}
return 1;
}
-
Создаёте массив на 88 ячеек, используете 178. Логика где? 178 пробуйте на 88 заменить.
-
Так. Проблема с двойными строками исключена.
Теперь нужно исправить проблему с ником. Он не отображается.
PHP код:
dcmd_me(playerid, params[])
{
new string[88], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(isnull(params)) return SendClientMessage(playerid, COLOR_WHITE,"Èñïîëüçóéòå: /me [òåêñò]");
format(string, 88, "%s %s", name, params);
ProxDetector(30.0, playerid, params, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, params, COLOR_PURPLE, 30.0, 10000);
return true;
}
http://i.imgur.com/7pREAed.png
- - - Добавлено - - -
Ошибка ссылочкой, http://imgur.com/sHGDJ4A
-
PHP код:
ProxDetector(30.0, playerid, params, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetPlayerChatBubble(playerid, params, COLOR_PURPLE, 30.0, 10000);
на
PHP код:
ProxDetector(30.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
SetPlayerChatBubble(playerid, string, COLOR_PURPLE, 30.0, 10000);
-
Проблема с /me решена. С /getip остается.
-
PHP код:
2. Команда /getip должна действовать по id (/getip [id]), но она показывает твое айпи. :c
Я тебя не понял, команда /getip должна показывать IP-игрока или твой ип. в чем косяк то?
- - - Добавлено - - -
Я в этом командном процессе не селен но должно работать держи:
PHP код:
dcmd_getip(playerid,params[])
{
if(PlayerInfo[playerid][pAdminLevel] < 2) return SendClientMessage(playerid, COLOR_RED,"Ты не администратор");
new name[MAX_PLAYER_NAME],
new ipStr[16], messageStr[48];
if(sscanf(params,"i", id)) return SendClientMessage(playerid, COLOR_RED,"/getip [id]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid,COLOR_RED,"Игрок с данным ID отсутствует на сервере.");
GetPlayerName(id, name, sizeof(name));
GetPlayerIp( id, ipStr, 16 );
format( messageStr, 48, " * Nick:[%s] - ip adress: (%s)", name ,ipStr);
SendClientMessage( playerid, 0xFFFFFFFF, messageStr );
return 1;
}
-
PHP код:
dcmd_getip(playerid, params[])
{
if(PlayerInfo[playerid][pAdminLevel] < 2)
return 1;
extract params -> new player: targetid; else
return SendClientMessage(playerid, -1, "Используйте: /getip [targetid]");
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, -1, "Указанного игрока нет на сервере.");
new
name[MAX_PLAYER_NAME + 1],
ipStr[16],
messageStr[48];
GetPlayerName(targetid, name, sizeof(name));
GetPlayerIp(targetid, ipStr, 16);
format(messageStr, 48, "[IP|%s] -- %s", name, ipStr);
return SendClientMessage(playerid, white, messageStr);
}
-
Цитата:
Сообщение от
Londlem
PHP код:
dcmd_getip(playerid, params[])
{
if(PlayerInfo[playerid][pAdminLevel] < 2)
return 1;
extract params -> new player: targetid; else
return SendClientMessage(playerid, -1, "Используйте: /getip [targetid]");
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, -1, "Указанного игрока нет на сервере.");
new
name[MAX_PLAYER_NAME + 1],
ipStr[16],
messageStr[48];
GetPlayerName(targetid, name, sizeof(name));
GetPlayerIp(targetid, ipStr, 16);
format(messageStr, 48, "[IP|%s] -- %s", name, ipStr);
return SendClientMessage(playerid, white, messageStr);
}
PHP код:
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v4.pwn(1925) : error 017: undefined symbol "extract"
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v4.pwn(1925) : error 029: invalid expression, assumed zero
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v4.pwn(1925) : error 033: array must be indexed (variable "params")
C:\Users\Áàòÿ âñåÿ Ðóñè\Desktop\Ïðîåêò\gamemodes\Heinz-v4.pwn(1925) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.