Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6

Тема: Оружие

  1. #1
    Аватар для GoJIoBoJIoMkA
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.08.2017
    Сообщений
    87
    Репутация:
    -1 ±

    Оружие

    Здравствуй легендарный портал pro-pawn и его обитатели!
    Я обнаружил некий баг в своём моде, я покупаю оружие ( или создаю в банде, мафий и т.д ) и стоит выйти с сервера и снова зайти, оружия на руках как не бывало!
    Помогите мне разобраться с данной проблемой пожалуйста, за реальную помощь, реальное вознаграждение в виде плюса!

    Вот есть такие стоки, собрал их в кучку!
     тык
    PHP код:
    stock GivePlayerWeaponAC(player,weapid,ammo

        if(
    GetWeaponSlotEx(weapid) == -1) return 0
        if(!
    weapid || !ammo) return 0
        new 
    slot GetWeaponSlotEx(weapid), KAnti_str[12]; 
        
    PlayerInfo[player][pAmmo][slot] += ammo
        
    PlayerInfo[player][pGun][slot] = weapid
        
    format(KAnti_str,sizeof(KAnti_str),"pGun%i",GetWeaponSlotEx(weapid)); SetPVarInt(player,KAnti_str,weapid); 
        
    format(KAnti_str,sizeof(KAnti_str),"pAmmo%i",GetWeaponSlotEx(weapid)); SetPVarInt(player,KAnti_str,GetPVarInt(player,KAnti_str)+ammo); 
        
    GivePlayerWeapon(player,weapid,ammo); 
        return 
    1

    #define GivePlayerWeapon GivePlayerWeaponAC 
    stock ResetPlayerWeaponsEx(playerid

        
    SetPVarInt(playerid,"NOP_ResetPlayerWeapons",gettime()+3); 
        if(
    GetPVarInt(playerid,"NOP_ResetPlayerWeapons") > gettime()+6) return OnPlayerCheat(playeridAC_NOP_ResetPlayerWeapons_codeAC_KICK); 
        new 
    KAnti_str[12]; 
        for(new 
    i13++) 
        { 
            if(
    i<12
            { 
                
    format(KAnti_str,sizeof(KAnti_str),"pGun%i",i); DeletePVar(playerid,KAnti_str); 
                
    format(KAnti_str,sizeof(KAnti_str),"pAmmo%i",i); DeletePVar(playerid,KAnti_str); 
            } 
            
    PlayerInfo[playerid][pAmmo][i] = 0PlayerInfo[playerid][pGun][i] = 0
        } 
        
    ResetPlayerWeapons(playerid); 
        return 
    1
    }  
    stock Set_Weapon(playerid

        
    ResetPlayerWeapons(playerid); 
        new 
    Gun[13],Ammo[13]; 
        for(new 
    i;13i++) 
        { 
            if(
    PlayerInfo[playerid][pAmmo][i] > 0
            { 
                
    Gun[i] = PlayerInfo[playerid][pGun][i]; 
                
    Ammo[i] =  PlayerInfo[playerid][pAmmo][i]; 
                
    PlayerInfo[playerid][pGun][i] = 0
                
    PlayerInfo[playerid][pAmmo][i] = 0
                
    GivePlayerWeaponAC(playerid,Gun[i],Ammo[i]); 
            } 
        } 
        return 
    1



    Я попробовал добавить SaveGun(playerid); в паблик OnPlayerDisconnect , ни чего не помогает, ероры и варнинги берут верх!

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

    Статус
    Оффлайн
    Регистрация
    23.12.2016
    Адрес
    Казахстан
    Сообщений
    148
    Репутация:
    26 ±
    Нужно сохранять и загружать оружие, а SaveGun(playerid) это самописная функция, возможно работает, но нужно смотреть её код.

  3. Пользователь сказал cпасибо:
    GoJIoBoJIoMkA (28.11.2018)
  4. #3
    Аватар для GoJIoBoJIoMkA
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.08.2017
    Сообщений
    87
    Репутация:
    -1 ±
    Я попытался добавить SaveGun(playerid); в паблик OnPlayerDisconnect, ни чего не помогает, ероры появляются!

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

    Статус
    Оффлайн
    Регистрация
    23.12.2016
    Адрес
    Казахстан
    Сообщений
    148
    Репутация:
    26 ±
    Цитата Сообщение от GoJIoBoJIoMkA Посмотреть сообщение
    Я попытался добавить SaveGun(playerid); в паблик OnPlayerDisconnect, ни чего не помогает, ероры появляются!
    Ну покажи код SaveGun(playerid); и какие ошибки появляются.

  6. Пользователь сказал cпасибо:
    GoJIoBoJIoMkA (28.11.2018)
  7. #5
    Аватар для GoJIoBoJIoMkA
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.08.2017
    Сообщений
    87
    Репутация:
    -1 ±
    Я обнаружил вот такую вещь,если удалить вот этот сток и всё что с ним связано
    PHP код:
    stock Set_Weapon(playerid)  
    {  
        
    ResetPlayerWeapons(playerid);  
        new 
    Gun[13],Ammo[13];  
        for(new 
    i;13i++)  
        {  
            if(
    PlayerInfo[playerid][pAmmo][i] > 0)  
            {  
                
    Gun[i] = PlayerInfo[playerid][pGun][i];  
                
    Ammo[i] =  PlayerInfo[playerid][pAmmo][i];  
                
    PlayerInfo[playerid][pGun][i] = 0;  
                
    PlayerInfo[playerid][pAmmo][i] = 0;  
                
    GivePlayerWeaponAC(playerid,Gun[i],Ammo[i]);  
            }  
        }  
        return 
    1;  

    то оружие после перезахода не исчезать а удваивается!
    Вот если у меня на руках дигл с 50-ти патронами, я перезайду на сервер, то у меня уже будет не 50 патронов а 100, может разобраться с этой проблемой почему патроны удваиваются?

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

    Статус
    Оффлайн
    Регистрация
    27.08.2017
    Сообщений
    87
    Репутация:
    -1 ±
    Проблема решина, тема закрыта!
    Я забыл добавить список оружий в public OnPlayerConnect(playerid), по этому они и не сохранялись!

    Seviel я тебя отблагодарил за то что не прошел мимо как некоторые!

 

 

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

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

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

Ваши права

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