Dexter 84 Опубликовано 30 августа, 2017 Создал команду /givelic [iD игрока] При вводе команды открывается диалог в котором 2 пункта [Выдача водительских прав, и выдача лиц. на оружие] Всё готово но посыпались ошибки, видимо что то не правильно сделал в диалоге case dialog_GIVELIC: { if(!response) return true; if(response) { switch(listitem) { case 0: PLAYER_DATA[params[0][data_LICB] = 1; new str[145]; format(str,sizeof(str),"[A] %s выдал водительские права %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[params[0]][data_NAME]); SendAdminMessage(0x666699FF,str); case 1: PLAYER_DATA[params[0][data_LICG] = 1; new str[145]; format(str,sizeof(str),"[A] %s выдал водительские права %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[params[0]][data_NAME]); SendAdminMessage(0x666699FF,str); } } } Вот сами ошибки: \new.pwn(10824) : error 017: undefined symbol "params" \new.pwn(10824) : error 029: invalid expression, assumed zero \new.pwn(10824) : error 029: invalid expression, assumed zero \new.pwn(10824) : fatal error 107: too many error messages on one line Помогите исправить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Alonso 82 Опубликовано 30 августа, 2017 Команду кинь 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dexter 84 Опубликовано 30 августа, 2017 CMD:givelic(playerid,params[]) { if(antiflood[playerid] > 0) return SendClientMessage(playerid, COLOR_WARNING,"Не флуди!"); antiflood[playerid]++; if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!"); if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_WARNING, "Используйте: /givelic [ид]"); if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid,COLOR_WARNING,"Данного ID нет на сервере!"); if(PLAYER_DATA[params[0]][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Данный игрок не прошел авторизацию!"); if(PLAYER_DATA[playerid][data_ADMLVL] ShowPlayerDialogFix(playerid, dialog_GIVELIC, DIALOG_STYLE_LIST, "{FFCC00}Выдача лицензий", "Водительское удостоверение\nЛицензия на оружие", "Выбрать", "Отмена"); return true; } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Alonso 82 Опубликовано 30 августа, 2017 Создай глобальную new alalalala[MAX_PLAYERS]; //к примеру Затем в команду после показа диалога или перед (решай сам) но что бы после data_ADMLVL] alalalala[playerid] = params[0]; Потом диалог замени на case dialog_GIVELIC: { if(!response) return true; if(response) { switch(listitem) { case 0: PLAYER_DATA[alalalala[playerid][data_LICB] = 1; new str[145]; format(str,sizeof(str),"[A] %s выдал водительские права %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[alalalala[playerid]][data_NAME]); SendAdminMessage(0x666699FF,str); case 1: PLAYER_DATA[alalalala[playerid][data_LICG] = 1; new str[145]; format(str,sizeof(str),"[A] %s выдал водительские права %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[alalalala[playerid]][data_NAME]); SendAdminMessage(0x666699FF,str); } } } Все. Ошибки? Кидай. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dexter 84 Опубликовано 30 августа, 2017 PLAYER_DATA[alalalala[playerid]][data_NAME]); new.pwn(10826) : error 001: expected token: "]", but found "[" new.pwn(10827) : error 002: only a single statement (or expression) can follow each "case" new.pwn(10827) : error 017: undefined symbol "str" new.pwn(10827) : warning 215: expression has no effect new.pwn(10827) : error 001: expected token: ";", but found "]" new.pwn(10827) : fatal error 107: too many error messages on one line Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Alonso 82 Опубликовано 30 августа, 2017 Обе PLAYER_DATA[alalalala[playerid][data_LIC... замени на PLAYER_DATA[alalalala[playerid]][data_LIC Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dexter 84 Опубликовано 30 августа, 2017 @Alonso, \new.pwn(10827) : error 002: only a single statement (or expression) can follow each "case" \new.pwn(10827) : error 017: undefined symbol "str" \new.pwn(10827) : warning 215: expression has no effect \new.pwn(10827) : error 001: expected token: ";", but found "]" \new.pwn(10827) : fatal error 107: too many error messages on one line Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Alonso 82 Опубликовано 30 августа, 2017 case dialog_GIVELIC: { if(!response) return true; new str[145]; switch(listitem) { case 0: { PLAYER_DATA[alalalala[playerid][data_LICB] = 1; format(str,sizeof(str),"[A] %s выдал водительские права %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[alalalala[playerid]][data_NAME]); SendAdminMessage(0x666699FF,str); } case 1: { PLAYER_DATA[alalalala[playerid][data_LICG] = 1; new str[145]; format(str,sizeof(str),"[A] %s выдал водительские права %s",PLAYER_DATA[playerid][data_NAME],PLAYER_DATA[alalalala[playerid]][data_NAME]); SendAdminMessage(0x666699FF,str); } } } попробуй на это сменить Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dexter 84 Опубликовано 30 августа, 2017 @Alonso, \new.pwn(10832) : warning 219: local variable "str" shadows a variable at a preceding level \new.pwn(23139) : warning 219: local variable "giveslic" shadows a variable at a preceding level \new.pwn(23139) : error 008: must be a constant expression; assumed zero \new.pwn(23139) : error 008: must be a constant expression; assumed zero \new.pwn(23139) : error 036: empty statement \new.pwn(23139) : fatal error 107: too many error messages on one line Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
#Rips 210 Опубликовано 30 августа, 2017 (изменено) Команда: CMD:givelic(playerid, params[]) { // Проверка на фракцию // Проверку на анти флуд if(PLAYER_DATA[playerid][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Вы не авторизованы на сервере!"); if(sscanf(params, "u", params[0])) return SendClientMessage(playerid, COLOR_WARNING, "Используйте: /givelic [ид]"); if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid,COLOR_WARNING,"Данного ID нет на сервере!"); if(PLAYER_DATA[params[0]][data_LOGGED] == false) return SendClientMessage(playerid,COLOR_WARNING,"Данный игрок не прошел авторизацию!"); if(PLAYER_DATA[playerid][data_ADMLVL] < 3) return true; ShowPlayerDialog(playerid,ID ДИАЛОГА, DIALOG_STYLE_LIST,"Продажа лицензий","{ffffff}Лицензия пилота\nЛицензия водного транспорта", "Выдать", "Закрыть"); SetPVarInt(playerid,"givelic", params[0]); } Диалоги: case ID ДИАЛОГА: // ВОТ ТУТ МЫ ПРЕДЛАГАЕМ ЧТО ЕМУ КУПИТЬ { if(!response) return DeletePVar(playerid,"givelic"); new acter = GetPVarInt(playerid,"givelic"); if(Lic[acter][listitem + 1] != 0) return SCM(playerid,-1,"У игрока уже есть эта лицензия"); switch(listitem) { case 0: { if(p_info[acter][pCash] < 20000) return SCM(playerid,-1,"У игрока нет столько денег."); format(stringer, 128, "Вы предложили {ffffff}%s купить лицензию пилота",NamePlayer[acter]); SendClientMessage(playerid,-1,stringer); format(stringer, 255, "{ffffff}%s предлагает вам купить лицению на пилота за {ffffff}20.000$\nДля покупки нажмите {ffffff}'Да' иначе {ffffff}'Нет'",NamePlayer[playerid]); ShowPlayerDialog(acter,ID ДИАЛОГА,DIALOG_STYLE_MSGBOX,"Покупка лицензии",stringer,"Да", "Нет"); } case 1: { if(p_info[acter][pCash] < 10000) return SCM(playerid,-1,"У игрока нет столько денег."); format(stringer, 128, "Вы предложили {ffffff}%s "cBLUE" купить лицензию водного транспорта",NamePlayer[acter]); SendClientMessage(playerid,-1,stringer); format(stringer, 255, "{ffffff}%s предлагает вам купить лицению на водный транспорт за {ffffff}10.000$\n\ Для покупки нажмите {ffffff}'Да'"cBLUE" иначе {ffffff}'Нет'",NamePlayer[playerid]); ShowPlayerDialog(acter,ID ДИАЛОГА,DIALOG_STYLE_MSGBOX,"ORGПокупка лицензии",stringer,"Да", "Нет"); } } SetPVarInt(acter,"givelic2",listitem); SetPVarInt(acter,"givelic2p",playerid); DeletePVar(playerid,"givelic"); return 1; } case ID ДИАЛОГА: // СОГЛАШАЕТСЯ КУПИТЬ ЛИ ЕЕ ИЛИ НЕТ { new idd = GetPVarInt(playerid,"givelic2p"); new switem = GetPVarInt(playerid,"givelic2"); if(!response) { SendClientMessage(playerid,-1,"Вы отказались от предложения"); SendClientMessage(idd,-1,"Игрок отказался от предложения"); } else { switch(switem) { case 0: { SendClientMessage(playerid,-1,"Вы купили {ffffff}лицензию пилотаза {ffffff}20.000$"); SendClientMessage(playerid,-1,"Для просмотра лицензий Используйте /licenses"); format(stringer, 128,"%s купил {ffffff}лицензию пилота за {ffffff}20.000$", NamePlayer[playerid]); SendClientMessage(idd,-1,stringer); p_info[playerid][pCash] -= 20000; p_info[idd][pCash] += 2000; // ЛИЦЕНЗИЮ КАКУЮ ВЫДАЛ ПРОВЕРКА } case 1: { SendClientMessage(playerid,-1,"Вы купили {ffffff}лицензию на водный транспорт за {ffffff}10.000$"); SendClientMessage(playerid,-1,"Для просмотра лицензий Используйте /licenses"); format(stringer, 128,"%s купил {ffffff}лицензию на водный транспорт за {ffffff}10.000$", NamePlayer[playerid]); SendClientMessage(idd,-1,stringer); p_info[playerid][pCash] -= 10000; p_info[idd][pCash] += 1000; // ЛИЦЕНЗИЮ КАКУЮ ВЫДАЛ ПРОВЕРКА } } // ТУТ ОБНОВЛЕНИЕ ДАННЫХ ЗАПРОС } DeletePVar(playerid,"givelic2p"); DeletePVar(playerid,"givelic2"); } Изменено 30 августа, 2017 пользователем #Salev 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Dexter 84 Опубликовано 30 августа, 2017 Спасибо, #Salev и Alonso Проблему исправил команда заработала из CMD убрал alalalala[playerid] = params[0]; а из case 1 убрал new str[145]; И всё заработало 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты