Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 9 из 9
  1. #1
    Аватар для Mich@elson
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.06.2015
    Сообщений
    19
    Репутация:
    0 ±

    Не выдается оружие с 0-1 слота

    Есть система поднятия оружия с земли. Все оружия которые под слотом 0-1 не выдается, а именно:



    Все остальное оружие которое по слотом 2 и т.д. - выдается нормально. В чем может быть проблема?

    Вот сам код когда берешь оружие с земли:
      Открыть/закрыть
    PHP код:
    if(newkeys == KEY_CROUCH)
        {
            for(new 
    050a++)
            {
                new 
    str23[30];
                if(
    GetPlayerVirtualWorld(playerid) == GunInfo[a][Virtual])
                {
                    if(
    IsPlayerInRangeOfPoint(playerid1.5GunInfo[a][ObjPos][0], GunInfo[a][ObjPos][1], GunInfo[a][ObjPos][2]))
                    {
                        
    DestroyDynamicObject(GunInfo[a][ObjID]);
                        
    GetPlayerWeaponData(playerid,GunInfo[a][ObjData][0],GunInfo[a][ObjData][0],GunInfo[a][ObjData][1]);
                        
    _GiveGun(playerid,GunInfo[a][ObjData][0], GunInfo[a][ObjData][1]);
                        
    GunInfo[a][ObjData][1] = 0;
                        
    GunInfo[a][ObjPos][0] = 0.0;
                        
    GunInfo[a][ObjPos][1] = 0.0;
                        
    GunInfo[a][ObjPos][2] = 0.0;
                        
    GunInfo[a][ObjID] = -1;
                        
    format(str2360"Вы нашли оружие {7CFC00}%s"GunNames[GunInfo[a][ObjData][0]]);
                        
    SendClientMessage(playeridCOLOR_REDDstr23);
                        
    GunInfo[a][ObjData][0] = 0;
                    }
                }
            }
        } 


    Вот тут код когда оружие ложишь на землю:
      Открыть/закрыть
    PHP код:
    new GunIDEx GetPlayerWeapon(playerid);
                          new 
    GunAmmoEx GetPlayerAmmo(playerid);
                           if(
    GunIDEx && GunAmmoEx != 0)
                        {
                            new 
    50+1;
                             for(new 
    050a++)
                              {
                                if(
    GunInfo[a][ObjPos][0] == 0.0)
                                {
                                     
    a;
                                       break;
                                 }
                               }
                               
    RemovePlayerWeapon(playeridGunIDEx);
                               
    GunInfo[f][ObjData][0] = GunIDEx;
                               
    GunInfo[f][ObjData][1] = GunAmmoEx;
                               
    GunInfo[f][Virtual] = GetPlayerVirtualWorld(playerid);
                               
    GetPlayerPos(playeridGunInfo[f][ObjPos][0], GunInfo[f][ObjPos][1], GunInfo[f][ObjPos][2]);
                               
    SetPlayerVirtualWorld(playeridGunInfo[f][Virtual]);
                               
    GunInfo[f][ObjID] = CreateDynamicObject(GunObjects[GunIDEx], GunInfo[f][ObjPos][0], GunInfo[f][ObjPos][1], GunInfo[f][ObjPos][2]-193.7120.0120.0 GunInfo[f][Virtual], -1, -1800);
                        } 

  2. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Покажи код _GiveGun и прологируй значение GunInfo[f][ObjData][0]/GunInfo[f][ObjData][1] при выкидывании/взятии оружия
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    30.06.2015
    Сообщений
    19
    Репутация:
    0 ±
    PHP код:
    publics_GiveGun(playeridweaponidammo)
    {
        new 
    slot GetWeaponSlot(weaponid);
        if(
    slot == 0xFFFF) return false;
        
    gunmute[playerid] = gettime()+3;

        
    WeaponInfo[playerid][weaponid] = true;
        
    AmmoSlot[playerid][slot] += ammo;
        
    AmmoInfo[playerid][weaponid] = AmmoSlot[playerid][slot];

        
    GivePlayerWeapon(playeridweaponidammo);
        if(
    PI[playerid][pAmmos][slot] == 0PI[playerid][pGuns][slot] = 0;
        return 
    true;


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

    Статус
    Оффлайн
    Регистрация
    30.06.2015
    Сообщений
    19
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    прологируй значение GunInfo[f][ObjData][0]/GunInfo[f][ObjData][1] при выкидывании/взятии оружия
    Прологировал и вот что получилось:
    Когда ложу Deagle на землю:
    PHP код:
    Игрок положил оружие ID24
    Игрок положил патронов
    10 
    Когда подбираю Deagle:
    PHP код:
    Игрок подобрал оружие ID24 в кол-во патронов10 
    Все нормально.

    А вот тут проблема со слотом 1
    Когда ложу полиц. дубинку на землю:
    PHP код:
    Игрок положил оружие ID3
    Игрок положил патронов

    Когда подбираю дубинку:
    PHP код:
    Игрок подобрал оружие ID0 в кол-во патронов

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    PHP код:
    new slot GetWeaponSlot(weaponid);
    if(
    slot == 0xFFFF) return false
    оружие не выдаётся потому что где то тут тупик, GetWeaponSlot(weaponid) твоя функция или сервера?
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  7. Пользователь сказал cпасибо:
    Mich@elson (27.06.2017)
  8. #6
    Аватар для Mich@elson
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.06.2015
    Сообщений
    19
    Репутация:
    0 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    PHP код:
    new slot GetWeaponSlot(weaponid);
    if(
    slot == 0xFFFF) return false
    оружие не выдаётся потому что где то тут тупик, GetWeaponSlot(weaponid) твоя функция или сервера?
    PHP код:
    stock GetWeaponSlot(weaponid)
    {
        switch(
    weaponid)
        {
            case 
    01: return 0;
             case 
    2..9: return 1;
            case 
    22..24: return 2;
            case 
    25..27: return 3;
            case 
    282932: return 4;
            case 
    3031: return 5;
            case 
    3334: return 6;
            case 
    35..38: return 7;
            case 
    16..1839: return 8;
            case 
    41..43: return 9;
            case 
    10..15: return 10;
            case 
    44..46: return 11;
            case 
    40: return 12;
            default: return 
    0;
        }
        return 
    0;


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

    Статус
    Оффлайн
    Регистрация
    22.04.2016
    Адрес
    Украина
    Сообщений
    157
    Репутация:
    35 ±
    Код HTML:
    stock GetWeaponSlot(weaponid) 
    { 
        switch(weaponid) 
        { 
            case 1: return 0; 
            case 2..9: return 1; 
            case 22..24: return 2; 
            case 25..27: return 3; 
            case 28, 29, 32: return 4; 
            case 30, 31: return 5; 
            case 33, 34: return 6; 
            case 35..38: return 7; 
            case 16..18, 39: return 8; 
            case 41..43: return 9; 
            case 10..15: return 10; 
            case 44..46: return 11; 
            case 40: return 12; 
        } 
        return 0xFFFF; 
    }

  10. Пользователь сказал cпасибо:
    Mich@elson (27.06.2017)
  11. #8
    Аватар для Mich@elson
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.06.2015
    Сообщений
    19
    Репутация:
    0 ±
    Цитата Сообщение от Pa4enka Посмотреть сообщение
    Код HTML:
    stock GetWeaponSlot(weaponid) 
    { 
        switch(weaponid) 
        { 
            case 1: return 0; 
            case 2..9: return 1; 
            case 22..24: return 2; 
            case 25..27: return 3; 
            case 28, 29, 32: return 4; 
            case 30, 31: return 5; 
            case 33, 34: return 6; 
            case 35..38: return 7; 
            case 16..18, 39: return 8; 
            case 41..43: return 9; 
            case 10..15: return 10; 
            case 44..46: return 11; 
            case 40: return 12; 
        } 
        return 0xFFFF; 
    }
    Пробывал уже. Тоже самое. Даже через стандартную GivePlayerWeapon пробывал - тоже самое. Именно проблема с оружием с 0-1 слота (лопата, дубинка, кастет, клюшка). Остальное оружие берется нормально.

  12. #9
    Аватар для Mich@elson
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.06.2015
    Сообщений
    19
    Репутация:
    0 ±
    Проблему решил. Проблема была в RemovePlayerWeapon.
    Спасибо всем кто пытался помочь.

 

 

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

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

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

Ваши права

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