Question

У меня проблема! Я сделал систему админок но у меня проблема!

C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(60) : error 017: undefined symbol "Timers"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(94) : error 017: undefined symbol "SavePlayer"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(132) : error 017: undefined symbol "ProxDetector"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(143) : error 017: undefined symbol "strtok"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(143) : error 033array must be indexed (variable "cmd")
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(146) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(150) : error 017: undefined symbol "gString"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(150) : error 029: invalid expression, assumed zero
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(150) : warning 215: expression has no effect
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(158) : error 017: undefined symbol "PlayaName"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(159) : error 017: undefined symbol "gString"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(163) : error 017: undefined symbol "gString"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(163) : error 017: undefined symbol "gString"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(163) : error 029: invalid expression, assumed zero
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(163) : fatal error 107: too many error messages on one line

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


13 Errors.

Код с 60 строчки по 163 строчку:

public OnGameModeInit()
{
    SetGameModeText("Russian");
    AddPlayerClass(46,-2471.8606,2839.0720,37.7199,90.77373850000000);
    Timers();
    DisableInteriorEnterExits();
    EnableStuntBonusForAll(0);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    if(PlayerInfo[playerid][PAccount] == true){ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация","Здраствуйте,\nВы уже зарегестрированы на нашем сервере.\nВведите свой пароль:","Далее","");}
    else{ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация","Здраствуйте,\nВы еще не зарегестрированы на нашем сервере.\nЧтобы зарегестрироватся ввдеите свой новый пароль:","Далее","");}
    return 1;
}

public OnPlayerConnect(playerid)
{
    for(new pInfo:e; e < pInfo; ++e) PlayerInfo[playerid][e] 0;
    new string[MAX_PLAYER_NAME+14];
    GetPlayerName(playerid,PlayerInfo[playerid][pName],MAX_PLAYER_NAME);
    format(string,sizeof string,"Accounts/%s.ini", PlayerInfo[playerid][pName]);
    PlayerInfo[playerid][PAccount] = (fexist(string)) ? (true) : (false);
    Login[playerid] = false;
    
    pAdminDostup[playerid] = false// ????? ?? ????????? ? ????? ??????
    pAdminLevel[playerid] = 0// ????? ?? ?????
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    SavePlayer(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    new string[144];
    if(Login[playerid] == false)
    {
        SCM(playerid, COLOR_RED, "Вы не авторизованы!");
        return false;
    }
    if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
    {
        ApplyAnimation(playerid, "PED""IDLE_chat"8.101111);
        SetTimerEx("Anim"1000*30"i", playerid);
    }
    format(string,sizeof(string),"%s[%d]: %s", GN(playerid),playerid,text);
    ProxDetector(20.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_GREY, COLOR_GREY);
    return 0;
}

public OnPlayerCommandText(playerid, cmdtext[])
{

    new cmd[256];
    new tmp[256];
    new idx;
    
    cmd=strtok(cmdtext,idx);

//_____________________ | ??????? ???????
        if(!strcmp("/adnins",cmd,true))
        {
                new kolvoadm,strvivod[512];

                (gString = "Администрация онлайн\n");

                for(new adminid; adminid < SERVER_SLOTS; adminid++)
                {
                        if(!IsPlayerConnected(adminid)) continue;
                        if(pAdminDostup[playerid] == falsecontinue;
                        (kolvoadm++);

                        format(strvivod,sizeof(strvivod),"Администратор %s[%d] | Уровень: %d | Ранг: %s\n",PlayaName(adminid), adminid, pAdminLevel[playerid], AdminRang(pAdminLevel[playerid]));
                        strcat(gString, strvivod);
                }
                if(kolvoadm == 0)
                {
                        format(gString, sizeof(gString),"Администраторов нет в сети!");
                }
                (kolvoadm = 0);
        ShowPlayerDialog(playerid, D_ADMINSONLINESCHECK, DIALOG_STYLE_MSGBOX,"Администрация", gString, "Понял""");
                return true;
        }

 

Share this post


Link to post
Share on other sites

21 answers to this question

  • 0

timers(); - wtf?
gString - wtf? (new gString[4096]; dobav')

Share this post


Link to post
Share on other sites
  • 0

undefines значит у тебя эти функции не определены в коде, а ты их используешь, либо у тебя не подключены библиотеки с этими функциями например #inculde <timers>(это пример просто я не знаю что такое timers())

Share this post


Link to post
Share on other sites
  • 0

@Anton_Urchenko Тоесть мне попробовать подключить их к инклудам?

Share this post


Link to post
Share on other sites
  • 0
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(5) : fatal error 100: cannot read from file: "timers"

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


1 Error.

5 строка 

#include <timers>

 

Share this post


Link to post
Share on other sites
  • 0

проверь если у тебя файл timers.include в папке с иклудами

Share this post


Link to post
Share on other sites
  • 0

@Anton_UrchenkoСпасибо! Сейчас поставлю и проверю!

@Anton_Urchenko 

C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(64) : error 017: undefined symbol "Timers"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(98) : error 017: undefined symbol "SavePlayer"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(136) : error 017: undefined symbol "ProxDetector"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(147) : error 017: undefined symbol "strtok"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(147) : error 033array must be indexed (variable "cmd")
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(150) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(162) : error 017: undefined symbol "PlayaName"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(170) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(171) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(171) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(174) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(178) : error 027: invalid character constant
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(178) : error 027: invalid character constant
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(183) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(190) : error 027: invalid character constant
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(190) : error 027: invalid character constant
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(200) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(205) : error 017: undefined symbol "AdmAccess"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(205) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(209) : error 017: undefined symbol "strtok"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(209) : error 033array must be indexed (variable "tmp")
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(210) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(212) : error 017: undefined symbol "UserID"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(213) : error 017: undefined symbol "strtok"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(213) : error 033array must be indexed (variable "tmp")
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(214) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(220) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(224) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(232) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(233) : error 017: undefined symbol "NewAdminLevel"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(235) : error 079: inconsistent return types (array & non-array)
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(215) : warning 217: loose indentation
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(237) : error 079: inconsistent return types (array & non-array)

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


26 Errors.

 

Share this post


Link to post
Share on other sites
  • 0

Поднимаю тему.

научился избавляться от ошибок. 

Теперь их меньше.

C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(67) : error 012: invalid function call, not a valid address
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(67) : error 029: invalid expression, assumed zero
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(67) : warning 215: expression has no effect
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : error 012: invalid function call, not a valid address
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : warning 215: expression has no effect
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : error 001: expected token: ";", but found ")"
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : error 029: invalid expression, assumed zero
C:\Users\Настя\Desktop\Мой мод\gamemodes\stark.pwn(101) : fatal error 107: too many error messages on one line

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


6 Errors.

 

Share this post


Link to post
Share on other sites
  • 0

@Rayan Because нужен скрин со строчками ошибок

Share this post


Link to post
Share on other sites
  • 0

в 101 строчке нет точки с запятой в конце строки, а в 67 непонятно,  может функция Timers() требует аргументы какие-нибудь

Share this post


Link to post
Share on other sites
  • 0

@Anton_Urchenko Поставил точку с запятой. Но ероры не ушли...

 

Share this post


Link to post
Share on other sites
  • 0

скинь метод Timers() и метод SavePlayer()

Share this post


Link to post
Share on other sites
  • 0

new Timers и new SavePlayer это обьявление переменных,

а ты вызываешь Timers() как метод и SavePlayer(playerid) тоже , ты что-то перепутал походу

Share this post


Link to post
Share on other sites
  • 0

Удалил строчку Timers(); 

Ушло два ерора и один варн

C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : error 012: invalid function call, not a valid address
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : warning 215: expression has no effect
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : error 001: expected token: ";", but found ")"
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : error 029: invalid expression, assumed zero
C:\Users\Íàñòÿ\Desktop\Ìîé ìîä\gamemodes\stark.pwn(100) : fatal error 107: too many error messages on one line

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


4 Errors.

Но теперь строчка 100 которая была 101. Она не хочет работать.

public OnPlayerDisconnect(playerid, reason)
{
    SavePlayer(playerid);
    return 1;
}

в new добавил но нифига. Что делать?

Share this post


Link to post
Share on other sites
  • 0

У вас в моде нет этих функций, естественно они работать не будут

Это тоже самое, если я просто возьму добавлю GiveAcs(playerid); в мод, а саму функцию писать не буду

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • MetaLife Online
      By MetaLife Online
      Привествую! писал код. проверил работу, в БД отправилось информация криво 
      потом добавил к P_NICK[MAX_PLAYER_NAME] для того чтобы все было окей. Но после этого данные вообще не отпровляються и не показываеться %s. пару раз удалял и не помогло не чего 
      enum PLAYER_INFO {     P_ID,     P_NICK[MAX_PLAYER_NAME],     P_PASS,     P_GENDER,     P_SKIN,     P_LVL, };  

    • Danny_Marcelo
      By 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
      Размещая на другие порталы, обязательно указать автора