• 0
MrNARTI

ошибка при компеляци

Вопросы

Всем привет делал команду /astats, с шаблона.

  открыть спойлер

 

сделал как в шаблоне, но появились ошибки.

  открыть спойлер

 

Помогите решить пожалуйста.

 

Заранее спасибо кто помог.

Отредактировано пользователем Cawfee

Заметка от Cawfee , создано

3.2. Код необходимо брать в тег "Код", а код более 10 строк – еще и в "Спойлер". Как это сделать рассказано в разделе "FAQ".

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 ответов на этот вопрос

  • 0

@MrNARTI Это у вас так в коде написано или это шаблон?

Отредактировано пользователем Доналдо Фарекелка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@Доналдо Фарекелка Так и в коде и шаблон.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@MrNARTI Сначала почитайте: как строиться код(Структура), как делать диалог и так далее

Ну приведу пожалуй пример. Вот так к примеру должна выглядеть статистика: 

 

CMD:astats(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 1return 1// Проверка на админ.права
    if(sscanf(params,"d",params[0])) return SendClientMessage(playerid, COLOR_WHITE, ""#information"Введите: /astats [id]");
    if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, -1""#net"Игрок не найден!"); 
    AShowStats(playerid,params[0]); // Переход к админ.статистике
    // Также можно сделать через pVar
    return 1;
}
AShowStats(playerid,targetid)
{
    if(!IsPlayerConnected(targetid)) return 1// Проверка онлайн ли игрок. Можно убрать, так как мы уже проверяем это в кмд
    //
    new check_kick,check_warn,check_ban,check_mute,check_jail,check_pm; // Новые переменные
    // 
    // ..... // Берем данные для переменных из бд ( НЕ ЗАБУДЬ ) // ЭТО ЕСЛИ НОВЫЕ ПЕРЕМЕННЫЕ
    //
    string = ""
    format(stringer,MAX_STR,""SERVER"________________________________________________________________________{E1DEDE}\n\n");
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\tНик:\t\t\t\t\t"SERVER"%s\n",PlayerInfo[targetid][pNames]);
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\t{FF0000}Администратор:\t\t\t"SERVER"{FF0000}%d уровня\n",PlayerInfo[targetid][pAdmin]);
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\tАдмин-репутация:\t\t\t"SERVER"%i\n",PlayerInfo[targetid][pAdmReputation]);
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\tКикнул:\t\t\t\t"SERVER"%i\n",check_kick); // Лучше заменить на PI(PlayerInfo)
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\tЗаварнил:\t\t\t\t"SERVER"%i\n",check_warn);
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\tЗабанил:\t\t\t\t"SERVER"%i\n",check_ban);
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\tВыдал Бан Чата:\t\t\t"SERVER"%i\n",check_mute);
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\tПосадил:\t\t\t\t"SERVER"%i\n",check_jail);
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\tОтветил на репорт:\t\t\t"SERVER"0\n"// Сюда свою переменную);
    strcat(string,stringer);
    format(stringer,MAX_STR,""WHITE"\tПохвал от игроков:\t\t\t"SERVER"0\n"// Сюда свою переменную);
    strcat(string,stringer);
    format(stringer,MAX_STR,""SERVER"________________________________________________________________________{E1DEDE}\n\n");
    strcat(string,stringer);
    ShowPlayerDialog(playerid,0000,DIALOG_STYLE_MSGBOX,""SERVER"\tСтатистика Администратора",string,"Закрыть",""); 
    return 1;
}

Это лишь пример.

Отредактировано пользователем Доналдо Фарекелка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
  В 12/14/2024 в 12:57, MrNARTI сказал:

делал как в шаблоне, но появились ошибки.

Читать далее...  

Ужас, руки бы варвать :ireful2:

Заметка от keyl , создано

2.17. Запрещено флудить, оффтопить, заниматься флеймом. 

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@Доналдо Фарекелка пишет ошибку.

  Цитата

C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79364) : error 017: undefined symbol "PlayerInfo"
C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79364) : warning 215: expression has no effect
C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79364) : error 001: expected token: ";", but found "]"
C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79364) : error 029: invalid expression, assumed zero
C:\Users\user\Desktop\ìîäèê\gamemodes\merixton.pwn(79364) : fatal error 107: too many error messages on one line

Читать далее...  

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
  В 12/21/2024 в 19:49, MrNARTI сказал:

@Доналдо Фарекелка пишет ошибку.

 

Читать далее...  

У тебя не определена переменная PlayerInfo, замени на ту которая используется в твоём моде, например pInfo, PI, проще говоря информация о игроке

Остальные ошибки идут из-за синтаксиса, на какую конкретно строку кода указывают ошибки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@MrNARTI просто PlayerInfo поменяй на то, что используешь в моде. Ну к примеру:
 

if (PlayerInfo[playerid][pAdmin])
if (PI[playerid][pAdmin])
if (pinfo[playerid][pAdmin])

И т.д. Нужно смотреть по твоему моду

По шаблону не смотри. Там вообще все на приколе.
@gais_st все ошибки из-за неизвестного символа "PlayerInfo"
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@Доналдо Фарекелка А где его можно найти?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Dev_Persona
      От Dev_Persona
      Приветствую всех, у меня возник такой вопрос:
       
      - хочу изменить базовую регистрацию в админке в крмп, на Болле сложную то-есть, сейчас изначально пароль от админки может быть только из цифр, хотелось бы узнать как можно было бы сделать что бы можно было использовать и цифры и буквы, вот код:
       
      case DIALOG_ADMIN_REG:
         {
          if(!response) return FixKick(playerid);
       
          if(strval(inputtext) < 100000 || strval(inputtext) > 999999) return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен быть из 6 цифр.\n", "Готово", "");
                   SetPlayerData(playerid, P_APASS, strval(inputtext));
       
                   UpdatePlayerDatabaseInt(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));
       
                   AdminAuthorization(playerid);
         }
    • Danny_Marcelo
      От Danny_Marcelo
      Всех приветствую. Сегодня я решил обновить систему мероприятий, т.к. на самом проекте Advance RP уже давно видоизменили систему, добавили нового функционала. Мы не должны стоять на месте и я решил тоже свою систему доработать. Вы можете использовать данную систему как аналог Advance RP или же доработать для своего проекта. Все в ваших руках как говорится.
       
      Что нового?
       
      Итак приступим:
      Находим свои переменные и вставляем:
       
      new settp = 0; // Флаг включения/выключения телепортации new Float:TeleportFloat[3]; // Координаты точки телепортации new TeleportInfo[2]; // Интерьер и виртуальный мир new Float:PlayerLastPos[MAX_PLAYERS][3]; // Последние координаты игрока new PlayerLastInt[MAX_PLAYERS]; // Последний интерьер игрока new PlayerLastVW[MAX_PLAYERS]; // Последний виртуальный мир игрока new PlayerWeapons[MAX_PLAYERS][13][2]; // Оружие игрока (слот и патроны) new PlayerUsedTP[MAX_PLAYERS]; // Флаг для отслеживания использования /tp  
      Далее идём в команды, мой случай на Pawn.CMD, но +/- везде одинаково, разве что меняется шапка
       
      CMD:settp(playerid, params[]) {     if (PlayerInfo[playerid][pAdmin] < 4) return 1;     new string[95];     if (settp == 0)     {         GetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]);         TeleportInfo[0] = GetPlayerInterior(playerid);         TeleportInfo[1] = GetPlayerVirtualWorld(playerid);         settp = 1;         format(string, sizeof(string), "[A] %s[%d] установил точку телепорта для игроков. {00CC00}ТП включен.", PlayerInfo[playerid][pName], playerid);         SendAdminMessage(0x52B2B5FF, string);     }     else     {         format(string, sizeof(string), "[A] %s[%d] удалил точку телепорта для игроков. {FF6600}ТП отключен.", PlayerInfo[playerid][pName], playerid);         SendAdminMessage(0x52B2B5FF, string);         settp = 0;     }     return 1; } CMD:tp(playerid, params[]) {     if (settp == 0) return SendClientMessage(playerid, 0xCECECEFF, !"Функция отключена администратором.");     if (PlayerInfo[playerid][pJailed] >= 1) return SendClientMessage(playerid, 0xCECECEFF, !"Арестованным не разрешено покидать камеру.");     if (PlayerInfo[playerid][pRabota] != 0) return SendClientMessage(playerid, 0xCECECEFF, !"Необходимо завершить все начатые работы и активные действия.");     if (bolkam[playerid] == true) return SendClientMessage(playerid, 0xCECECEFF, !"Необходимо завершить все начатые работы и активные действия.");     GetPlayerPos(playerid, PlayerLastPos[playerid][0], PlayerLastPos[playerid][1], PlayerLastPos[playerid][2]);     PlayerLastInt[playerid] = GetPlayerInterior(playerid);     PlayerLastVW[playerid] = GetPlayerVirtualWorld(playerid);     for (new i = 0; i < 13; i++)     {         GetPlayerWeaponData(playerid, i, PlayerWeapons[playerid][i][0], PlayerWeapons[playerid][i][1]);     }     PlayerUsedTP[playerid] = 1;     ShowPlayerDialog(playerid, 22, DIALOG_STYLE_MSGBOX, !"{6699FF}Телепортация",         !"{FFFFFF}Вы уверены, что хотите попасть на место проведения мероприятия?\n{FFCD00}Ваше оружие будет изъято для хранения и возвращено позже.", !"Да", !"Нет");     return 1; }  
       
      CMD:back(playerid, params[]) {     if (!PlayerUsedTP[playerid])     {         return SendClientMessage(playerid, 0xCECECEFF, !"Эту функцию можно использовать после {FF9933}/tp, /go {CECECE}или по окончании {FF9933}мероприятий");     }     SetPlayerPos(playerid, PlayerLastPos[playerid][0], PlayerLastPos[playerid][1], PlayerLastPos[playerid][2]);     SetPlayerInterior(playerid, PlayerLastInt[playerid]);     SetPlayerVirtualWorld(playerid, PlayerLastVW[playerid]);     ResetPlayerWeapons(playerid);     for (new i = 0; i < 13; i++)     {         if (PlayerWeapons[playerid][i][0] != 0)         {             GivePlayerWeapon(playerid, PlayerWeapons[playerid][i][0], PlayerWeapons[playerid][i][1]);         }     }     PlayerUsedTP[playerid] = 0;     SendClientMessage(playerid, 0x3399FFFF, !"Вы вернулись туда, где были до телепортации");     return 1; } Ну и в OnDialogResponse:
      case 22: // Не забудьте проверить и при надобности изменить id диалога на вашу цифру или ID_NAME         {             if (response)             {                 SetPlayerPos(playerid, TeleportFloat[0], TeleportFloat[1], TeleportFloat[2]);                 SetPlayerInterior(playerid, TeleportInfo[0]);                 SetPlayerVirtualWorld(playerid, TeleportInfo[1]);                 ResetPlayerWeapons(playerid);                 SendClientMessage(playerid, 0x66CCFFFF, "Вы были доставлены на место проведения мероприятия");                 SendClientMessage(playerid, 0x66CCFFFF, "Чтобы вернуться обратно, введите {FF9900}/back");             }         } Скриншоты:
       
      Если игрок сидит в КПЗ и вводит /tp:

       
      При включенном /tp:

       
      При выключенном /tp:

       
      Сообщение администраторам:

       
      Если работаешь или лечишься в больнице:

       
      Текст после телепортации:

       
      При вводе /back 1 и более раз:

       
      P.S. Команду /tp на Advance можно нажимать бесконечно, по этому я не стал сюда пихать аналогичную проверку как в /back.
      Если что, не сложно будет добавить 1 строчку проверки. Просто имейте ввиду, что это не баг. Просто нужно же соответствовать названию темы "На 100% КОПИЯ"))
       
      Автор: Danny_Marcelo
      Размещая на другие порталы, обязательно указать автора