• 0
Sign in to follow this  
Followers 0
Nestor_Matroskin

[закрыто] fatal error 107; error 029; error 017

Question

I:\Vladik\Namalsk\gamemodes\namalsk.pwn(5692) : warning 225: unreachable code
I:\Vladik\Namalsk\gamemodes\namalsk.pwn(6191) : error 017: undefined symbol "string"
I:\Vladik\Namalsk\gamemodes\namalsk.pwn(6191) : error 017: undefined symbol "string"
I:\Vladik\Namalsk\gamemodes\namalsk.pwn(6191) : error 029: invalid expression, assumed zero
I:\Vladik\Namalsk\gamemodes\namalsk.pwn(6191) : fatal error 107: too many error messages on one line
 

Решил добавить систему банкоматов

Строки ошибки:

if(dialogid == d_bankomat) {
        if(!response) return 1;
        switch(listitem) {
                case 0: {
                        format(string,sizeof(string),"| Информация о балансе на счету:\n\nСостояние банковского счета - $%d",PLAYER_DATA[playerid][data_MONEY]); // pInfo[playerid][data_MONEY] заменяете на кол-во денег игрока из своего мода
                        showPlayerDialog(playerid, 99990" ", string, "Закрыть""");
                }
                case 1: showPlayerDialog(playerid, d_bankomat + 11"Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть");
                case 2: showPlayerDialog(playerid, d_bankomat + 21"Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть");
        }
    }
    if(dialogid == d_bankomat + 1) {
            if(!response) return 1;
            if(100 > strval(inputtext) > 100000 && !strlen(inputtext)) return  showPlayerDialog(playerid, d_bankomat + 11"Снять деньги со счета","Укажите сумму которую хотите снять со счета:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть");//Если игрок ввел сумму больше 100000 или менее 100.
            new BankCash = (strval(inputtext)*BANKOMAT_CASH)/100;
            PLAYER_DATA[playerid][pBank] -= strval(inputtext)+BankCash;//Вычитаем процент и отнимаем деньги с банк.счета
            PLAYER_DATA[playerid][data_MONEY] += strval(inputtext)-BankCash;//Вычитаем процент и получаем деньги на руки
            ApplyAnimation(playerid, "PED""ATM",4.0011001);
    }
    if(dialogid == d_bankomat + 2) {
            if(!response) return 1;
            if(100 > strval(inputtext) > 100000 && !strlen(inputtext)) return  showPlayerDialog(playerid, d_bankomat + 21"Положить деньги на счет","Укажите сумму которую хотите положить на счет:\n\n| Минимальная сумма $100, максимальная $100000\n| При использовании банкомата действует комиссия","Дальше","Закрыть"); //Если игрок ввел сумму больше 100000 или менее 100.
            new BankCash = (strval(inputtext)*BANKOMAT_CASH)/100//Вычисляем % от пользования банкоматом
            PLAYER_DATA[playerid][pBank] += strval(inputtext)-BankCash; //Вычитаем процент и получаем деньги в банк
            PLAYER_DATA[playerid][data_MONEY] -= strval(inputtext)+BankCash; //Вычитаем процент и отнимаем деньги с рук
            ApplyAnimation(playerid, "PED""ATM",4.0011001); //Приминяем анимацию пользования банкоматом
    }

 

Edited by Nestor_Matroskin

Share this post


Link to post
Share on other sites

3 answers to this question

  • 0
return true;
   }
            new Float:x,Float:y,Float:z;
            GetPlayerPos(id,x,y,z);
            if(!PlayerToPoint(10.0, playerid, x,y,z))
            {

Ну тут скорее всего из-за того, что вы задействовали код после return (по данному обрывку только это могу сказать)

В алгоритме yes/no, а точнее при нажатие "Y", у вас нет проверки вообще, по этому открывается код того, что другой игрок не в сети:

 

if(PRESSED(KEY_YES))
    {
        if(GetPVarInt(playerid, "yesno") == 0return SendClientMessage(playerid, COLOR_SUNGLOW, "У вас нет активных предложений!");
        if(GetPVarInt(playerid, "yesno") == 1)
        {
            new id = GetPVarInt(playerid,"yesno_playerid");
            if(!IsPlayerConnected(id)) // вот этой строчки не было
            {
                DeletePVar(playerid, "yesno_dice");

Share this post


Link to post
Share on other sites
  • 0
@Nestor_Matroskin 
format(string,sizeof(string),"| Информация о балансе на счету:\n\nСостояние банковского счета - $%d",PLAYER_DATA[playerid][data_MONEY]); // pInfo[playerid][data_MONEY] заменяете на кол-во денег игрока из своего мода
showPlayerDialog(playerid, 99990" "string"Закрыть""");

В этих строках юзается переменная string, которая не объявлена, строкой выше функции format добавтье её:

new string[144];

И так же попрошу вас скинуть 5690-5695 строчки

Share this post


Link to post
Share on other sites
  • 0
                return true;
   }
            new Float:x,Float:y,Float:z;
            GetPlayerPos(id,x,y,z);
            if(!PlayerToPoint(10.0, playerid, x,y,z))
            {

 

Так-же хотел спросить, в моде есть система на нажитая клавиши "Y" - принять "N" - отклонить, отклонить работает замечательно, а от когда пробуеш принят то пишет что Игрок не в сети
 вот код

if(PRESSED(KEY_NO))
    {
        if(GetPVarInt(playerid, "yesno") == 0return SendClientMessage(playerid, COLOR_SUNGLOW, "У вас нет активных предложений!");
        if(GetPVarInt(playerid, "yesno") == 1)
        {
            SendClientMessage(playerid, COLOR_SUNGLOW, "Предложение отклонено");
            DeletePVar(playerid, "yesno_dice");
            DeletePVar(playerid, "dice_sum");
            DeletePVar(playerid, "duel_sum");
            DeletePVar(playerid, "yesno_duel");
            DeletePVar(playerid, "yesno_sex");
            DeletePVar(playerid, "yesno_showlic");
            DeletePVar(playerid, "yesno_hi");
            DeletePVar(playerid, "yesno_heal");
            DeletePVar(playerid, "yesno_invite");
            DeletePVar(playerid, "yesno_showpass");
            DeletePVar(playerid, "yesno_showskills");
            DeletePVar(playerid, "yesno_free");
            DeletePVar(playerid, "yesno_playerid");
            DeletePVar(playerid, "yesno_licsell");
            DeletePVar(playerid, "yesno_finvite");
            DeletePVar(playerid, "yesno");
            return true;
        }
    }
    
    if(PRESSED(KEY_YES))
    {
        if(GetPVarInt(playerid, "yesno") == 0return SendClientMessage(playerid, COLOR_SUNGLOW, "У вас нет активных предложений!");
        if(GetPVarInt(playerid, "yesno") == 1)
        {
            new id = GetPVarInt(playerid,"yesno_playerid");
            {
                DeletePVar(playerid, "yesno_dice");
                DeletePVar(playerid, "dice_sum");
                DeletePVar(playerid, "duel_sum");
                DeletePVar(playerid, "yesno_duel");
                DeletePVar(playerid, "yesno_sex");
                DeletePVar(playerid, "yesno_showlic");
                DeletePVar(playerid, "yesno_showpass");
                DeletePVar(playerid, "yesno_hi");
                DeletePVar(playerid, "yesno_invite");
                DeletePVar(playerid, "yesno_heal");
                DeletePVar(playerid, "yesno_showskills");
                DeletePVar(playerid, "yesno_free");
                DeletePVar(playerid, "yesno_licsell");
                DeletePVar(playerid, "yesno_playerid");
                DeletePVar(playerid, "yesno_finvite");
                DeletePVar(playerid, "yesno");
                SendClientMessage(playerid, COLOR_SUNGLOW, "Игрок не в сети!");
                return true;
   }
            new Float:x,Float:y,Float:z;
            GetPlayerPos(id,x,y,z);
            if(!PlayerToPoint(10.0, playerid, x,y,z))
            {
                DeletePVar(playerid, "yesno_dice");
                DeletePVar(playerid, "dice_sum");
                DeletePVar(playerid, "duel_sum");
                DeletePVar(playerid, "yesno_duel");
                DeletePVar(playerid, "yesno_sex");
                DeletePVar(playerid, "yesno_showlic");
                DeletePVar(playerid, "yesno_invite");
                DeletePVar(playerid, "yesno_hi");
                DeletePVar(playerid, "yesno_showpass");
                DeletePVar(playerid, "yesno_heal");
                DeletePVar(playerid, "yesno_showskills");
                DeletePVar(playerid, "yesno_free");
                DeletePVar(playerid, "yesno_licsell");
                DeletePVar(playerid, "yesno_finvite");
                DeletePVar(playerid, "yesno_playerid");
                DeletePVar(playerid, "yesno");
                SendClientMessage(playerid, COLOR_SUNGLOW, "Игрок слишком далеко от Вас!");
                return true;

            }

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Dexter Nomad
      By Dexter Nomad
      При попытке компиляции кода возникает ошибка:
      error 076: syntax error in the expression, or invalid function call
      Не могу найти причину, буду благодарен, если не только укажете, где сама ошибка, но еще и исправите ее.
      Сам код:
          if(strcmp(cmd, "/carsharing", true) == 0)     {         if(IsPlayerConnected(playerid))         {             if(PlayerInfo[playerid][CarLic] == 0) return SCM(playerid, COLOR_RED, "У вас нет вод.прав! Вы можете получить их в автошколе!");         }     }  
    • Sanya_Greison
      By Sanya_Greison
      Куплю РП мод под сервер без бонуса. Бюджет до 150 $
      А также скриптера с Украины
      мой вк vk.com/i_am_sashko
    • Михаил Майоров
      By Михаил Майоров
      Т.к. я начинающий скриптер, хочу поделится для незнающих людей командами, которые написал сам. Да, они простые, но начинающие не всегда понимают.
      Понадобится плагин DC_cmd.
      CMD:sethp(playerid, params[]) {     //Далее тут проверка. Если нужна, могу залить.     static const MSG_USE_CMD[] = !"Введите /sethp [ID] [Кол-во HP]";     if(isnull(params))         return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;     new id, Float:health;     if(sscanf(params, "uf(0.0)", id, health))         return SendClientMessage(playerid, -1, MSG_USE_CMD) & 0;     else if(id == INVALID_PLAYER_ID)         return SendClientMessage(playerid, -1, !"Игрока с таким ID нет на сервере") & 0;     else if(!(0.0 <= health <= 150.0))         return SendClientMessage(playerid, -1, !"[Ошибка] Установите не менее 0 и не более 150!") & 0;     SetPlayerHealth(id, health);     return 1; } Это ещё не всё. Буду дополнять. Пока только 1 команда