PDA

Просмотр полной версии : [Вопрос] Ошибка



Rick
11.01.2015, 02:55
C:\Users\Àäìèí\Desktop\Îñíîâà\gamemodes\Osnova.pwn(372) : error 017: undefined symbol "MSG_NOADMIN"
C:\Users\Àäìèí\Desktop\Îñíîâà\gamemodes\Osnova.pwn(373) : error 017: undefined symbol "SCM"
C:\Users\Àäìèí\Desktop\Îñíîâà\gamemodes\Osnova.pwn(374) : error 017: undefined symbol "MSG_NOLOGIN2"
C:\Users\Àäìèí\Desktop\Îñíîâà\gamemodes\Osnova.pwn(375) : error 017: undefined symbol "MSG_NOACT"
C:\Users\Àäìèí\Desktop\Îñíîâà\gamemodes\Osnova.pwn(376) : error 017: undefined symbol "MSG_LONG"
C:\Users\Àäìèí\Desktop\Îñíîâà\gamemodes\Osnova.pwn(377) : error 017: undefined symbol "f"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


6 Errors.


Помогите пожалуйста, ниже строчки команды - которую хочу поставить на сервер .


CMD:kick(playerid, params[])
{
new string[128];
if(PLAYER[playerid][pAdmin] < 1) return MSG_NOADMIN(playerid);
if(sscanf(params,"us[99]",params[0], params[1])) return SCM(playerid, COLOR_GREEN, "[USAGE]: /kick [playerid] [reason]");
if(!GetPVarInt(params[0], "Logged")) return MSG_NOLOGIN2(playerid);
if(IsPlayerNPC(params[0])) return MSG_NOACT(playerid);
if(strlen(params[1]) > 50) return MSG_LONG(playerid);
f(string, "[SERVER] %s был кикнут администратором %s по причине: %s", Name(params[0]), Name(playerid), params[1]);
SendClientMessageToAll(COLOR_LIGHTRED, string);
Adminlog(playerid, params[0], "kick", 0, params[1]);
Kick(params[0]);
return 1;
}

kaZax
11.01.2015, 03:08
Кинь строки от 360 до 369.

Rick
11.01.2015, 03:24
Кинь строки от 360 до 369.

Зачем?, ну раз надо так надо . Вот


stock GetIp(i){new s[54]; GetPlayerIp(i, s, 16);return s;}

stock Adminlog(admin, player, action[], amount, reason[])
{
new query[512];
format(query, sizeof(query), "INSERT INTO `logsadmin` (`admin`, `adminIP`, `player`, `action`, `amount`, `reason`, `date`) VALUES ( '%s', '%s', '%s', '%s', '%d', '%s', NOW() )",
Name(admin), GetIp(admin), Name(player), action, amount, reason);
mysql_function_query(1, query, true, "", "");
}

$continue$
11.01.2015, 04:30
И зачем люди делают без с мысленные макросы, если уже все сделано как показалось Кую надо...
И да кстати используй табуляцию 0.5 см (3 пробела)


CMD:kick(playerid, params[])
{
new string[128];
if (PLAYER[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, "текст"); // Если у меня нету админки
if (sscanf(params, "us[99]", params[0], params[1])) return SendClientMessage(playerid, COLOR_GREEN, "[USAGE]: /kick [playerid] [reason]");
if (!GetPVarInt(params[0], "Logged")) return SendClientMessage(playerid, -1, "текст"); // Если человек не залоген
if (IsPlayerNPC(params[0])) return SendClientMessage(playerid, -1, "текст"); // Если это бот, текст..
if (strlen(params[1]) > 50) return SendClientMessage(playerid, -1, "текст"); // Если причина больше 50 символов
format(string, sizeof string, "[SERVER] %s был кикнут администратором %s по причине: %s", Name(params[0]), Name(playerid), params[1]);
SendClientMessageToAll(COLOR_LIGHTRED, string);
Adminlog(playerid, params[0], "kick", 0, params[1]);
Kick(params[0]);
return 1;
}

Mazzilla
11.01.2015, 13:34
Поскольку ты решил тупо скатать мою команду, то держи мои же макросы:

#define SCM SendClientMessage
#define COLOR_GREY 0xAFAFAFAA
#define MSG_NOADMIN(%0) SCM(%0, COLOR_GREY, "[ERROR]: Вам недоступна эта команда!")
#define MSG_NOLOGIN2(%0) SCM(%0, COLOR_GREY, "[ERROR]: Данный игрок не найден!")
#define MSG_NOACT(%0) SCM(%0, COLOR_GREY, "[ERROR]: Невозможное действие!")
#define MSG_LONG(%0) SCM(%0, COLOR_GREY, "[ERROR]: Ваше сообщение слишком длинное!")
#define f(%1, format(%1,sizeof(%1),

Rick
11.01.2015, 13:38
И зачем люди делают без с мысленные макросы, если уже все сделано как показалось Кую надо...
И да кстати используй табуляцию 0.5 см (3 пробела)


CMD:kick(playerid, params[])
{
new string[128];
if (PLAYER[playerid][pAdmin] < 1) return SendClientMessage(playerid, -1, "текст"); // Если у меня нету админки
if (sscanf(params, "us[99]", params[0], params[1])) return SendClientMessage(playerid, COLOR_GREEN, "[USAGE]: /kick [playerid] [reason]");
if (!GetPVarInt(params[0], "Logged")) return SendClientMessage(playerid, -1, "текст"); // Если человек не залоген
if (IsPlayerNPC(params[0])) return SendClientMessage(playerid, -1, "текст"); // Если это бот, текст..
if (strlen(params[1]) > 50) return SendClientMessage(playerid, -1, "текст"); // Если причина больше 50 символов
format(string, sizeof string, "[SERVER] %s был кикнут администратором %s по причине: %s", Name(params[0]), Name(playerid), params[1]);
SendClientMessageToAll(COLOR_LIGHTRED, string);
Adminlog(playerid, params[0], "kick", 0, params[1]);
Kick(params[0]);
return 1;
}


Спасибо. Насчет макросов - а так разве не легче? делать?, или же что у меня сделано? скажите пожалуйста и на счет табуляции - как именно её использовать?, я ведь всё волишь 1 команду написал - и уже использовать требуется табуляцию? . Сможете рассказать зачем вообще табуляция нужна? я просто мало про неё знаю, знаю только то что она вредит как будто

- - - Добавлено - - -


Поскольку ты решил тупо скатать мою команду, то держи мои же макросы:

#define SCM SendClientMessage
#define COLOR_GREY 0xAFAFAFAA
#define MSG_NOADMIN(%0) SCM(%0, COLOR_GREY, "[ERROR]: Вам недоступна эта команда!")
#define MSG_NOLOGIN2(%0) SCM(%0, COLOR_GREY, "[ERROR]: Данный игрок не найден!")
#define MSG_NOACT(%0) SCM(%0, COLOR_GREY, "[ERROR]: Невозможное действие!")
#define MSG_LONG(%0) SCM(%0, COLOR_GREY, "[ERROR]: Ваше сообщение слишком длинное!")
#define f(%1, format(%1,sizeof(%1),

Спасибо что тоже откликнулись - я очень рад, а на счет макросов - как лучше и оптимизирование для мода будет, вариантом вашим - или же вариантом - Bublick_Public - я понимаю что макросом - команды будут короче в строках - но какой вариант лучше? или оба хороши?

Mazzilla
11.01.2015, 14:23
Спасибо что тоже откликнулись - я очень рад, а на счет макросов - как лучше и оптимизирование для мода будет, вариантом вашим - или же вариантом - Bublick_Public - я понимаю что макросом - команды будут короче в строках - но какой вариант лучше? или оба хороши?
Совершенно никакой разницы в данных макросах. Я их использую только для того, чтобы быстрее писать команды/функции.