Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7
  1. #1
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,432
    Репутация:
    1093 ±

    Динамическая система инвентаря

    Доброго времени суток.

    И так, начнём:

    [ Описание сприпта ]

    1. Система полностью динамическая
    2. Сохранение инвентаря проходит по систему SQLite, так что проблем не будет.
    3. Возможна передача предмета, использование, выкидывание и потом можно подобрать, Информации.
    4. Хорошо оптимизированная, как в плане строк, так и в плане нагрузки.
    5. Собственные ТекстДравы, рисованные около 1 часа.
    6. Если у вас 2 одинаковых предмета, они суммируются!
    7. Стоят различные проверки от багоюза, тоесть заменить один предмет, другим не реально!

     Видео




     Выдача оружия

    stock GetPlayerWeapontInt(weaponid)
    {
    switch(weaponid)
    {
    case 333: return 2;
    case 334: return 3;
    case 335: return 4;
    case 336: return 5;
    case 337: return 6;
    case 339: return 8;
    case 325: return 14;
    case 346: return 22;
    case 347: return 23;
    case 348: return 24;
    case 349: return 25;
    case 351: return 27;
    case 352: return 28;
    case 353: return 29;
    case 355: return 30;
    case 356: return 31;
    case 357: return 33;
    case 358: return 34;
    case 371: return 36;
    case 365: return 41;
    case 366: return 42;
    case 367: return 43;
    case 372: return 32;
    }
    return -1;
    }

    Это в OnPlayerSpawn

    for(new i = 37; i < 46; i++) GivePlayerWeapon(playerid, GetPlayerWeapontInt(Items_All[InventoryPlayer[playerid][invSlot][i]][invObject]),InventoryPlayer[playerid][invKol][i]);

    Это в else if(GetPVarInt(playerid,"ChangeSlot") != 0) перед SetPVarInt(playerid,"ChangeSlot",0);

    for(new g = 37; g < 46; g++) GivePlayerWeapon(playerid, GetPlayerWeapontInt(Items_All[InventoryPlayer[playerid][invSlot][g]][invObject]),InventoryPlayer[playerid][invKol][g]);


    Автор: Fun4ik
    Скачать: http://rghost.ru/49676478

  2. Пользователь сказал cпасибо:
    Salvacore (08.04.2014)
  3. #2
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Люблю системы RakNet'a :)

  4. #3
    Аватар для [PAWNO]
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.03.2014
    Сообщений
    20
    Репутация:
    11 ±
    Я понять не могу, идёт проверка на оружие в руке?

  5. #4
    Аватар для Копюшон
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2013
    Сообщений
    93
    Репутация:
    14 ±
    Она баганая с ног до головы.

  6. #5
    Аватар для A N D R E Y
    Пользователь

    Статус
    Оффлайн
    Регистрация
    07.12.2013
    Сообщений
    149
    Репутация:
    14 ±
    Цитата Сообщение от Копюшон Посмотреть сообщение
    Она баганая с ног до головы.
    Самый что нинаесть товарный вид для нубов :D

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

    Статус
    Оффлайн
    Регистрация
    10.01.2014
    Сообщений
    110
    Репутация:
    29 ±
    Ребят, может кто объяснить, зачем из PVar там вычитается 1 ?


    PHP код:
    public OnPlayerClickPlayerTextDraw(playeridPlayerText:playertextid)
    {
        for(new 
    i53i++)
        {
            if(
    playertextid == Inventory[i][playerid])
            {
                if(
    GetPVarInt(playerid,"ChangeSlot") == 0)
                {
                    
    SetPVarInt(playerid,"SelectSlot",i);
                    if(
    InventoryPlayer[playerid][invSlot][GetPVarInt(playerid,"SelectSlot") - 1] != 0)
                    {
                        
    SetPVarInt(playerid,"ChangeSlot",GetPVarInt(playerid,"SelectSlot"));
                        
    PlayerTextDrawBackgroundColor(playerid,Inventory[GetPVarInt(playerid,"ChangeSlot")][playerid], -65281);
                        
    PlayerTextDrawShow(playerid,Inventory[GetPVarInt(playerid,"ChangeSlot")][playerid]);
                    }
                }
                else
                {
                    
    SetPVarInt(playerid,"SelectSlot",i);
                    
    PlayerTextDrawBackgroundColor(playerid,Inventory[GetPVarInt(playerid,"ChangeSlot")][playerid], -86);
                    
    PlayerTextDrawShow(playerid,Inventory[GetPVarInt(playerid,"ChangeSlot")][playerid]);
                    
    UpdateInventory(playerid);
                    
    ObjInventory(playerid);
                    
    SetPVarInt(playerid,"ChangeSlot",0);
                    
    SetPVarInt(playerid,"SelectSlot",0);
                    return 
    1;
                }
            }
        }
        return 
    1;

    Из номера слота отнимается 1, зачем???
    Последний раз редактировалось MR_BEN; 15.06.2014 в 11:53.

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от MR_BEN Посмотреть сообщение
    Из номера слота отнимается 1, зачем???
    Для того чтобы получить нужный элемент массива.

    Допустим уровень игрока равен 1, нужно присвоить ему ранг, есть такой массив:
    PHP код:
    static const
        
    rank_names[][] = 
        {
            
    "Ранг №1""Ранг №2""Ранг №3"
        
    }

    Так как в массиве первый элемент равен нулевому индексу в массиве, то нужно вычитать -1. Уровень игрока = 1, если мы не вычтем, получим не тот ранг, который ожидали ("Ранг №2").
    Последний раз редактировалось L0ndl3m; 15.06.2014 в 12:52.

 

 

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

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

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

Ваши права

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