• 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

    • Kirill_Bess
      By Kirill_Bess
      Приветствую
      При запуске сервера на хостинге выдаёт ошибку [Unknown] 
      При запуске сервера через приложение samp-server.exe выдаёт ошибки плагинов,но я не знаю как из исправить подскажите пожалуйста
      Сразу спасибо за помощь
      Вот логи:

    • Decard
      By Decard
      D: honest-roleplay_main/.build/include/pregress2 (23) fatal error 111 user error: cloud not locate a_samp.inc file, please check your server includes
       
      Как это исправить у мене a_samp в самом вверху мода