PDA

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



kaktyc
24.05.2014, 23:05
Подскажите, создал ahelp на YCMD - но она с ошибками, что тут не так ?

CMD:ahelp(playerid)
{
ShowPlayerDialog(playerid,555,DIALOG_STYLE_LIST,"Админ команды","Администратор 1-го уровня\nАдминистратор 2-го уровня\nАдминистратор 3-го уровня\nАдминистратор 4-го уровня\nАдминистратор 5-го уровня","Ок","Закрыть");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 555)
{
if(response)
{
#pragma unused params
if(pData[playerid][pAdmin] < 1) return true;
if(listitem == 0) return SendClientMessage(playerid,0x88AA88AA,"/alogin - войти в систему.\n/acode - сменить пароль администратора.\n/a - админ чат.\n/mute - выдать молчанку.\n/spec - следить за игроком.\n/ans - ответить на репорт/вопрос\n/kick - кикнуть.\n/warn - выдать варн.\n/ban - выдать бан.\n/jail - посадить игрока.\n/o - ООС чат.");
if(pData[playerid][pAdmin] < 2) return true;
if(listitem == 1) return SendClientMessage(playerid,0x88AA88AA,"/afill - заправить автомобиль.\n/showall - проверить состав игрока.\n/goto - ТП к игроку.");
if(pData[playerid][pAdmin] < 3) return true;
if(listitem == 2) return SendClientMessage(playerid,0x88AA88AA,"/sethp - выдать жизь игроку.\n/givegun - выдать оружие.\n/spawncars - заспавнить все машины.\n/setskin - сменить скин.\n/gethere - ТП игрока к себе.\n/skick - скрытый кик.");
if(pData[playerid][pAdmin] < 4) return true;
if(listitem == 3) return SendClientMessage(playerid,0x88AA88AA,"/msg - неизвестная команда.\n/banip - выдать бан по IP\n/getip - узнать IP игрока.\n/spawncar - заспавнить соз.авто.\n/slap - ударить игрока.\n/noooc - глобальный чат.");
if(pData[playerid][pAdmin] < 5) return true;
if(listitem == 4) return SendClientMessage(playerid,0x88AA88AA,"/givemoney - выдать деньги игроку.\n/givebank - выдать деньги в банк игрока.\n/add - добавить(Дом, бизнес.).\n/payday - сделать PayDay.\n/delacc - удалить аккаунт.\n/nasosal - secretno^^");

}
else
{
SendClientMessage(playerid,0x88AA88AA,"Вы нажали 'Закрыть' либо Esc");
return 1;
}
}
return 1;
}
Вот ошибка при комплектации...

C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12833) : error 020: invalid symbol name "_YCMD_1"
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12836) : error 010: invalid function or declaration
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12839) : error 021: symbol already defined: "S@@_OnDialogResponse"
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12844) : error 017: undefined symbol "params"
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12845) : error 017: undefined symbol "pData"
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12845) : warning 215: expression has no effect
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12845) : error 001: expected token: ";", but found "]"
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12845) : error 029: invalid expression, assumed zero
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12845) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


8 Errors.

L0ndl3m
24.05.2014, 23:10
В паблике OnDialogResponse:

#pragma unused params
совершенно не нужен.

Команда:


YCMD:ahelp(playerid, params[], help)
{
ShowPlayerDialog(playerid, 555, DIALOG_STYLE_LIST, "Админ команды", "Администратор 1-го уровня\nАдминистратор 2-го уровня\nАдминистратор 3-го уровня\nАдминистратор 4-го уровня\nАдминистратор 5-го уровня", "Ок", "Закрыть");
return 1;
}

kaktyc
25.05.2014, 00:40
Все равно...

C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12839) : error 021: symbol already defined: "S@@_OnDialogResponse"
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12844) : error 017: undefined symbol "pData"
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12844) : warning 215: expression has no effect
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12844) : error 001: expected token: ";", but found "]"
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12844) : error 029: invalid expression, assumed zero
C:\Users\Елена\Desktop\111\gamemodes\Nice.pwn(12844) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.

underwoker
25.05.2014, 02:31
Что за извращенство над кодом вы выше изложили? Это обращение к kaktyc

YCMD:ahelp(playerid, params[], help)
{
ShowPlayerDialog(playerid, 555, DIALOG_STYLE_LIST, "Админ команды", "Администратор 1-го уровня\nАдминистратор 2-го уровня\nАдминистратор 3-го уровня\nАдминистратор 4-го уровня\nАдминистратор 5-го уровня", "Ок", "Закрыть");
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 555)
{
if(!response) return SendClientMessage(playerid,0x88AA88AA,"Вы нажали 'Закрыть' либо Esc");
switch(listitem)
{
case 0:
{
if(pData[playerid][pAdmin] < 1) return true;
SendClientMessage(playerid,0x88AA88AA,"/alogin - войти в систему.\n/acode - сменить пароль администратора.\n/a - админ чат.\n/mute - выдать молчанку.\n/spec - следить за игроком.\n/ans - ответить на репорт/вопрос\n/kick - кикнуть.\n/warn - выдать варн.\n/ban - выдать бан.\n/jail - посадить игрока.\n/o - ООС чат.");
return true;
}
case 1:
{
if(pData[playerid][pAdmin] < 2) return true;
SendClientMessage(playerid,0x88AA88AA,"/afill - заправить автомобиль.\n/showall - проверить состав игрока.\n/goto - ТП к игроку.");
return true;
}
case 2:
{
if(pData[playerid][pAdmin] < 3) return true;
SendClientMessage(playerid,0x88AA88AA,"/sethp - выдать жизь игроку.\n/givegun - выдать оружие.\n/spawncars - заспавнить все машины.\n/setskin - сменить скин.\n/gethere - ТП игрока к себе.\n/skick - скрытый кик.");
return true;
}
case 3:
{
if(pData[playerid][pAdmin] < 4) return true;
SendClientMessage(playerid,0x88AA88AA,"/msg - неизвестная команда.\n/banip - выдать бан по IP\n/getip - узнать IP игрока.\n/spawncar - заспавнить соз.авто.\n/slap - ударить игрока.\n/noooc - глобальный чат.");
return true;
}
case 4:
{
if(pData[playerid][pAdmin] < 5) return true;
SendClientMessage(playerid,0x88AA88AA,"/givemoney - выдать деньги игроку.\n/givebank - выдать деньги в банк игрока.\n/add - добавить(Дом, бизнес.).\n/payday - сделать PayDay.\n/delacc - удалить аккаунт.\n/nasosal - secretno^^");
return true;
}
}
}
return 1;
}

Не будет работать - сделаю вывод что команду создавали не вы, а вырезали откуда-то и вставили, т.к. не знать элементарной ошибки undefined symbol - это позор.

kaktyc
25.05.2014, 15:12
underwoker, я начинающий скриптер, я всего знать не могу.
И кстати не помогло :(

L0ndl3m
25.05.2014, 15:34
Скорее всего у вас два паблика OnDialogResponse, нужно один оставить.

underwoker
25.05.2014, 16:33
А еще скорее всего вам pData нужно заменить на свою переменную игрока. Поищите в моде "enum", если найдете связанное с Admin, скиньте сюда.