Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 13
  1. #1
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    304
    Репутация:
    2 ±

    Не прибавляет EXP

    Всем здравствуйте, неизвестно из-за чего появилась такая проблема. Некоторым игрокам когда дается Exp, он не прибавляется. Причина неизвестна. Помогите если знаете, очень нужно.

    PHP код:
    public PayDay()
    {
        new 
    string[128];
        new 
    account,interest;
        new 
    workpay;
        new 
    rent 0;
        for(new 
    0MAX_PLAYERSi++)
        {
            if(
    IsPlayerConnected(i))
            {
                if(
    PlayerInfo[i][pLevel] >= 0)
                {
                    if(
    MoneyMessage[i]==1)
                    {
                        
    SendClientMessage(iCOLOR_GREY"Вы были не в состоянии оплатить свой долг, отправляйтесь в тюрьму.");
                        
    GameTextForPlayer(i"~r~Busted!"20001);
                        
    SetPlayerInterior(i6);
                        
    SetPlayerPos(i264.6288,77.5742,1001.0391);
                        
    PlayerInfo[i][pJailed] = 1;
                        
    ResetPlayerWeapons(i);
                        
    PlayerInfo[i][pWanted] = 0;
                        
    PlayerInfo[i][pJailTime] = 240;
                        
    format(stringsizeof(string), "Ты был(а) посажен(а) в тюрьму на %d секунд. Выплата: Невозможна."PlayerInfo[i][pJailTime]);
                        
    SendClientMessage(iCOLOR_LIGHTBLUEstring);
                    }
                    new 
    playername2[MAX_PLAYER_NAME];
                    
    GetPlayerName(iplayername2sizeof(playername2));
                    
    account PlayerInfo[i][pAccount];
                    new 
    key PlayerInfo[i][pPhousekey];
                    if(
    key != 255)
                    {
                        
    rent HouseInfo[key][hRent];
                        if(
    strcmp(playername2HouseInfo[key][hOwner], true) == 0)
                        {
                            
    rent 0;
                        }
                        else if(
    rent GetPlayerMoney(i))
                        {
                            
    PlayerInfo[i][pPhousekey] = 255;
                            
    SendClientMessage(iCOLOR_WHITE"Вы не можете оплатить арендную плату, потому Вы выселены.");
                            
    rent 0;
                        }
                        
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
                    }
                    if(
    IsAMember(i))
                    {
                        if(
    PlayerInfo[i][pLeader] == 0) continue;
                        for(new 
    0sizeof(BizzInfo); b++)
                        {
                            if(
    BizzInfo[b][bMafia] == PlayerInfo[i][pLeader]) PlayerInfo[i][pMoney] += 5000;
                        }
                    }
                    new 
    tmpintrate;
                    if (
    key != 255 && strcmp(playername2HouseInfo[key][hOwner], true) == 0)
                    {
                        if(
    PlayerInfo[i][pDonateRank] > 0) { tmpintrate intrate+4; }
                        else { 
    tmpintrate intrate+2; }
                    }
                    else
                    {
                        if(
    PlayerInfo[i][pDonateRank] > 0) { tmpintrate 3; }
                        else { 
    tmpintrate 1; }
                    }
                    if(
    PlayerInfo[i][pPayDay] >= 4)
                    {
                        new 
    checks PlayerInfo[i][pPayCheck];
                        new 
    ebill = (PlayerInfo[i][pAccount]/1000000)*(PlayerInfo[i][pLevel]);
                        
    ConsumingMoney[i] = 1;
                        
    GivePlayerMoney(ichecks);
                        if(
    PlayerInfo[i][pAccount] > 0)
                        {
                            
    PlayerInfo[i][pAccount] -= ebill;
                            
    SBizzInfo[4][sbTill] += 10000;
                        }
                        else
                        {
                            
    ebill 0;
                        }
                        
    PlayerInfo[i][pAccount] += workpay;
                        
    PlayerInfo[i][pAccount] -= Tax;
                        
    interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
                        
    PlayerInfo[i][pConnectTime] += 1;
                        
    PlayerPlayMusic(i);
                        
    PlayerInfo[i][pAccount] = account+interest;
                        
    SendClientMessage(iCOLOR_GREEN"|__ З А Р П Л А Т А__|");
                        
    format(stringsizeof(string), "{FFDEAD}•-Зарплата: $%d",checks);
                        
    SendClientMessage(iCOLOR_GRAD0string);
                        if(
    PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)                    {
                        
    format(stringsizeof(string), "{FFDEAD}•-Электричество: $%d"ebill);
                        
    SendClientMessage(iCOLOR_GRAD0string);                    }
                        
    format(stringsizeof(string), "{FFDEAD}•-Баланс: $%d, Полученный интерес: $%d, Новый баланс: $%d, Банковский процент: 0.%d"accountinterestPlayerInfo[i][pAccount], tmpintrate);
                        
    SendClientMessage(iCOLOR_GRAD0string);
                        
    SendClientMessage(iCOLOR_GREEN"|_____________________|");
                        
    format(stringsizeof(string), "{FFDEAD}•-Налог: $%d",Tax);
                        
    SendClientMessage(iCOLOR_GRAD0string);
                        
    PlayerInfo[i][pPayCheck] = 0;
                        
    PlayerInfo[i][pHourgame] += 1;
                        
    PlayerInfo[i][pDonateMoney] += 1;
                        
    PlayerInfo[i][pExp] += 1;
                        if(
    PlayerInfo[i][pDonateRank] > 0)
                        {
                            
    PlayerInfo[i][pPayDayHad] += 1;
                            if(
    PlayerInfo[i][pPayDayHad] >= 5)
                            {
                                
    PlayerInfo[i][pExp]++;
                                
    PlayerInfo[i][pPayDayHad] = 0;
                            }
                        }
                    }
                    else
                    {
                        
    SendClientMessage(iCOLOR_WHITE"AscarY: Ты не получил(а) зарплату т.к. мало играл.");
                    }
                }
            }
        }
        
    SaveAccounts();
        
    Checkprop();
        
    SaveObshak();
        return 
    true;


  2. #2
    Аватар для Bady
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±
    Убери данный код:
    PHP код:
    if(PlayerInfo[i][pDonateRank] > 0
                        { 
                            
    PlayerInfo[i][pPayDayHad] += 1
                            if(
    PlayerInfo[i][pPayDayHad] >= 5
                            { 
                                
    PlayerInfo[i][pExp]++; 
                                
    PlayerInfo[i][pPayDayHad] = 0
                            } 
                        } 

  3. #3
    Аватар для iDiego
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.10.2014
    Сообщений
    49
    Репутация:
    0 ±
    PHP код:
    if(PlayerInfo[i][pDonateRank] > 0
                        { 
                            
    PlayerInfo[i][pPayDayHad] += 1
                            if(
    PlayerInfo[i][pPayDayHad] >= 5
                            { 
                                
    PlayerInfo[i][pExp]++; 
                                
    PlayerInfo[i][pPayDayHad] = 0
                            } 
                        } 
    Замени на:
    PHP код:
    if(PlayerInfo[i][pDonateRank] > 0
                        { 
                            
    PlayerInfo[i][pPayDayHad] += 1
                            if(
    PlayerInfo[i][pPayDayHad] >= 5
                            { 
                                
    PlayerInfo[i][pExp] += 1
                                
    PlayerInfo[i][pPayDayHad] = 0
                            } 
                        } 
    Отпишешься, как попробуешь.

  4. #4
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    А если так?
    PHP код:
    if(PlayerInfo[i][pDonateRank] < || PlayerInfo[i][pPayDayHad] < 5) continue;
    PlayerInfo[i][pExp] += 1;
    PlayerInfo[i][pPayDayHad] = 0

  5. #5
    Аватар для iDiego
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.10.2014
    Сообщений
    49
    Репутация:
    0 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    А если так?
    PHP код:
    if(PlayerInfo[i][pDonateRank] < || PlayerInfo[i][pPayDayHad] < 5) continue;
    PlayerInfo[i][pExp] += 1;
    PlayerInfo[i][pPayDayHad] = 0
    смысл тот-же, но у тебя с оптимизацией ;d

  6. #6
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    304
    Репутация:
    2 ±
    Цитата Сообщение от Bady Посмотреть сообщение
    Убери данный код:
    PHP код:
    if(PlayerInfo[i][pDonateRank] > 0
                        { 
                            
    PlayerInfo[i][pPayDayHad] += 1
                            if(
    PlayerInfo[i][pPayDayHad] >= 5
                            { 
                                
    PlayerInfo[i][pExp]++; 
                                
    PlayerInfo[i][pPayDayHad] = 0
                            } 
                        } 
    Не работает.

  7. #7
    Аватар для iDiego
    Пользователь

    Статус
    Оффлайн
    Регистрация
    18.10.2014
    Сообщений
    49
    Репутация:
    0 ±
    Цитата Сообщение от Skyline Посмотреть сообщение
    Не работает.
    ты мой вариант пробывал?

  8. #8
    Аватар для Bady
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2013
    Сообщений
    170
    Репутация:
    3 ±
    Цитата Сообщение от Skyline Посмотреть сообщение
    Не работает.
    Будет работать, дело в том что игрокам у которых есть вип статус им будет например доваться +2 exp за 1 час.
    То есть вот у тебя уже к примеру 39/40 А тебе даётся 41/40 поэтому лвл не плюсуется так как нужно точное значение, убери данный код то что я написал и будет всё норм, только у играков у которых уже привышены exp надо через /setstat менять, автоматически они не поменяются

  9. #9
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    304
    Репутация:
    2 ±
    Никакой из вариантов не работает. Мне не нужно чтобы давало 2 Exp и не плюсовался LvL автоматически.
    Exp не дается во время PayDay вообще. В коде прописан, пробовал по разному и всеми методами что вы все писали - результат отрицателен.
    Переписывать систему нет смысла, так как задействован весь тот же функционал.
    Не знаю из-за чего такой анал карнавал. Устанавливал crashdetect - он тоже ничего не показал.
    Последний раз редактировалось Skyline; 23.12.2014 в 22:10.

  10. #10
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    И смотри где останавливаться код:
    PHP код:
    public PayDay()
    {
        new 
    string[128];
        new 
    account,interest;
        new 
    workpay;
        new 
    rent 0;
        print(
    "1");
        for(new 
    GetMaxPlayers()-1!= -1i--)
        {
            if(!
    IsPlayerConnected(i) || PlayerInfo[i][pLevel] < || MoneyMessage[i] != 1) continue;
            print(
    "2");
            
    SendClientMessage(iCOLOR_GREY"Вы были не в состоянии оплатить свой долг, отправляйтесь в тюрьму.");
            
    GameTextForPlayer(i"~r~Busted!"20001);
            
    SetPlayerInterior(i6);
            
    SetPlayerPos(i264.6288,77.5742,1001.0391);
            
    PlayerInfo[i][pJailed] = 1;
            
    ResetPlayerWeapons(i);
            
    PlayerInfo[i][pWanted] = 0;
            
    PlayerInfo[i][pJailTime] = 240;
            
    format(stringsizeof(string), "Ты был(а) посажен(а) в тюрьму на %d секунд. Выплата: Невозможна."PlayerInfo[i][pJailTime]);
            
    SendClientMessage(iCOLOR_LIGHTBLUEstring);
            new 
    name_player[MAX_PLAYER_NAME];
            
    GetPlayerName(iname_playersizeof(name_player));
            
    account PlayerInfo[i][pAccount];
            new 
    key PlayerInfo[i][pPhousekey];
            print(
    "2");
            if(
    key != 255)
            {
                
    rent HouseInfo[key][hRent];
                if(
    strcmp(name_playerHouseInfo[key][hOwner], true) == 0)
                {
                    
    rent 0;
                }
                else if(
    rent GetPlayerMoney(i))
                {
                    
    PlayerInfo[i][pPhousekey] = 255;
                    
    SendClientMessage(iCOLOR_WHITE"Вы не можете оплатить арендную плату, потому Вы выселены.");
                    
    rent 0;
                }
                
    HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;
            }
            print(
    "3");
            if(
    IsAMember(i))
            {
                if(
    PlayerInfo[i][pLeader] == 0) continue;
                for(new 
    0sizeof(BizzInfo); b++)
                {
                    if(
    BizzInfo[b][bMafia] == PlayerInfo[i][pLeader]) PlayerInfo[i][pMoney] += 5000;
                }
            }
            new 
    tmpintrate;
            print(
    "4");
            if (
    key != 255 && strcmp(name_playerHouseInfo[key][hOwner], true) == 0)
            {
                if(
    PlayerInfo[i][pDonateRank] > 0tmpintrate intrate+4;
                else 
    tmpintrate intrate+2;
            }
            else
            {
                if(
    PlayerInfo[i][pDonateRank] > 0tmpintrate 3;
                else 
    tmpintrate 1;
            }
            print(
    "5");
            if(
    PlayerInfo[i][pPayDay] >= 4)
            {
                new 
    checks PlayerInfo[i][pPayCheck];
                new 
    ebill = (PlayerInfo[i][pAccount]/1000000) * (PlayerInfo[i][pLevel]);
                
    ConsumingMoney[i] = 1;
                
    GivePlayerMoney(ichecks);
                if(
    PlayerInfo[i][pAccount] > 0)
                {
                    
    PlayerInfo[i][pAccount] -= ebill;
                    
    SBizzInfo[4][sbTill] += 10000;
                }
                else 
    ebill 0;
                
    PlayerInfo[i][pAccount] += workpay;
                
    PlayerInfo[i][pAccount] -= Tax;
                
    interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);
                
    PlayerInfo[i][pConnectTime] += 1;
                
    PlayerPlayMusic(i);
                
    PlayerInfo[i][pAccount] = account+interest;
                
    SendClientMessage(iCOLOR_GREEN"|__ З А Р П Л А Т А__|");
                
    format(stringsizeof(string), "{FFDEAD}•-Зарплата: $%d",checks);
                
    SendClientMessage(iCOLOR_GRAD0string);
                if(
    PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255)
                {
                    
    format(stringsizeof(string), "{FFDEAD}•-Электричество: $%d"ebill);
                    
    SendClientMessage(iCOLOR_GRAD0string);
                }
                
    format(stringsizeof(string), "{FFDEAD}•-Баланс: $%d, Полученный интерес: $%d, Новый баланс: $%d, Банковский процент: 0.%d"accountinterestPlayerInfo[i][pAccount], tmpintrate);
                
    SendClientMessage(iCOLOR_GRAD0string);
                
    SendClientMessage(iCOLOR_GREEN"|_____________________|");
                
    format(stringsizeof(string), "{FFDEAD}•-Налог: $%d",Tax);
                
    SendClientMessage(iCOLOR_GRAD0string);
                
    PlayerInfo[i][pPayCheck] = 0;
                
    PlayerInfo[i][pHourgame] += 1;
                
    PlayerInfo[i][pDonateMoney] += 1;
                
    PlayerInfo[i][pExp] += 1;
                if(
    PlayerInfo[i][pDonateRank] < || PlayerInfo[i][pPayDayHad] < 5) continue;
                
    PlayerInfo[i][pExp] += 1;
                
    PlayerInfo[i][pPayDayHad] = 0;
            }
            else 
    SendClientMessage(iCOLOR_WHITE"AscarY: Ты не получил(а) зарплату т.к. мало играл.");
        }
        
    SaveAccounts();
        
    Checkprop();
        
    SaveObshak();
        return 
    true;


 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •