PDA

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



Dimon_Fanat
26.01.2019, 18:51
Добрый вечер, столкнулся с такой проблемой.
Решил создать статистику игрока.


stock ShowStats(playerid,targetid)
{
dlg_str[0] = EOS;
new string[126];

format(string,sizeof(string),"{00FF00}~~~~~~~~~~~~~~~~~~~~~~~ Основная информация ~~~~~~~~~~~~~~~~~~~~~~~\n");
strcat(dlg_str,string);
format(string,sizeof(string),"{F5DEB3}VIP:\t\t\t\t\t%s\n");
strcat(dlg_str,string);
format(string,sizeof(string),"{F5DEB3}Предупреждения:\t\t\t%s\n");
strcat(dlg_str,string);
format(string,sizeof(string),"{F5DEB3}Бан чата:\t\t\t\t%s\n");
strcat(dlg_str,string);
format(string,sizeof(string),"{F5DEB3}Время заключения:\t\t\t%s\n\n");
strcat(dlg_str,string);

ShowPlayerDialog(playerid,D_STATSPLAYER,DIALOG_STYLE_MSGBOX,"Статистика",dlg_str,"OK","");
return 1;
}

Все работает, но когда добавляю код в диалог лист. Выдает ошибки

Все из-за вот этого когда.


case 0:ShowStats(playerid,playerid);


case DLG_KPK_ACCOUNT:
{
if(response)
{
switch(listitem)
{
case 0:ShowStats(playerid,playerid);
case 1:SettingsHUD(playerid);
case 2:{}
case 3:AccountSecurity(playerid);
}
}
else ShowKpK(playerid);
}


C:\Users\Dima\Desktop\MySql R41-4\gamemodes\newproject.pwn(2832) : error 017: undefined symbol "dlg_str"
C:\Users\Dima\Desktop\MySql R41-4\gamemodes\newproject.pwn(2832) : warning 215: expression has no effect
C:\Users\Dima\Desktop\MySql R41-4\gamemodes\newproject.pwn(2832) : error 001: expected token: ";", but found "]"
C:\Users\Dima\Desktop\MySql R41-4\gamemodes\newproject.pwn(2832) : error 029: invalid expression, assumed zero
C:\Users\Dima\Desktop\MySql R41-4\gamemodes\newproject.pwn(2832) : fatal error 107: too many error messages on one line

Compilation aborted.

Pawn compiler 3.10.8 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Сергей
26.01.2019, 19:22
Не объявленный
dlg_str
попробуй
new dlg_str[256];

Mopok
26.01.2019, 19:35
попробуй
new dlg_str[0] = EOS;
new dlg_str[126];
new string[126];

И еще не до конца разделяю такое кол-во вызовов format, когда можно уместить всё в 1-2. К тому же у тебя в данном примере отсутствует переменные спецификаторов %s :)

Сергей
29.01.2019, 19:24
new dlg_str[126];
new string[126];

И еще не до конца разделяю такое кол-во вызовов format, когда можно уместить всё в 1-2. К тому же у тебя в данном примере отсутствует переменные спецификаторов %s :)

Уместить всё в 1-2? Так-же ухудшится читабельность кода

Mopok
29.01.2019, 21:03
Я впринципе не знаю зачем 2 массива провозглашать, лишняя нагрузка ведь. Но в данном случае ошибку исправит что автор написал. Ч: error 017: undefined symbol "dlg_str" , впринципе не такие сложные слова чтобы не перевести, гугл транслейт тож есть)
достаточно просто new string[126] и всё в 1 формат поместить )