[CS: Source] [THC RPG] Испытать удачю

Тема в разделе "Отклонённые плагины", создана пользователем Александр Руднев, 9 ноя 2014.

  1. Александр Руднев

    Александр Руднев

    Сообщения:
    16
    Симпатии:
    6
    [THC RPG] Испытать удачу

    Сливаю свой приватный модуль (писал в начале лета)
    Оффтоп

    Открываем: rpgmenu.inc

    Часть первая
    Находим:
    PHP:
    RPGMenu(client)
    {
        
    decl String:item[MM_DATA_DESCRIPTION];

        new 
    Handle:menu_main=CreateMenu(RPGMenuHandle);

        
    SetMenuTitle(menu_main"%T""main_title"client);

        
    Format(itemsizeof(item), "%T""upgrade_item"client);
        
    AddMenuItem(menu_main,item,item,(MODULE_COUNT>0)?ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);

        if(
    Auth_ClientHasFlags(clientg_CoreConfigCache[CoreConfig_vip_flags], ","Auth_Either))
        {
            
    Format(itemsizeof(item), "TEST VIP MENU");
            
    AddMenuItem(menu_main,item,item,(MODULE_COUNT>0)?ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);
        }
        
        
    Format(itemsizeof(item), "%T""sell_item"client);
        
    AddMenuItem(menu_main,item,item,(MODULE_COUNT>0)?ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);

        
    Format(itemsizeof(item), "%T""stats_item"client);
        
    AddMenuItem(menu_main,item,item);

        
    Format(itemsizeof(item), "%T""info_item"client);
        
    AddMenuItem(menu_main,item,item,(MODULE_COUNT>0)?ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);

        
    DisplayMenu(menu_main,client,MENU_TIME_FOREVER);
    }
    Добовляем:
    PHP:
    Format(itemsizeof(item), "Испытать удачю"client);
        
    AddMenuItem(menu_main,item,item,(MODULE_COUNT>0)?ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);

    Часть вторая
    Находим:
    PHP:
    public RPGMenuHandle(Handle:menu_main,MenuAction:action,client,slot)
    {
        if(
    action==MenuAction_Select)
        {
            switch(
    slot)
            {
                case 
    0:
                    
    UpgradeMenu(client,0);
                case 
    1:
                    
    SellMenu(client,0);
                case 
    2:
                    
    StatsMenu(client);
                case 
    3:
                    
    InfoMenu(client);
            }
        }
        if(
    action==MenuAction_End)
            
    CloseHandle(menu_main);
    }
    Изменяем:
    PHP:
    public RPGMenuHandle(Handle:menu_main,MenuAction:action,client,slot)
    {
        if(
    action==MenuAction_Select)
        {
            switch(
    slot)
            {
                case 
    0:
                    
    UpgradeMenu(client,0);
                case 
    1:
                    
    SellMenu(client,0);
                case 
    2:
                    
    StatsMenu(client);
                case 
    3:
                    
    InfoMenu(client);
                case 
    4:
                    
    RandomEs(client);
            }
        }
        if(
    action==MenuAction_End)
            
    CloseHandle(menu_main);
    }

    Часть третья
    В конце файла добовляем сам модуль
    PHP:
    RandomEs(client)
    {
        new 
    frags2 GetClientFrags(client);
        
        if (
    frags2 >= 10)
        {
        
    decl String:item[MM_DATA_DESCRIPTION];

        new 
    Handle:menu_es=CreateMenu(RandomEsHandle);

        
    SetMenuTitle(menu_es"Стоимость игры: 10 фрагов\nНачать игру?");

        
    Format(itemsizeof(item), "Начать"client);
        
    AddMenuItem(menu_es,item,item);

        
    Format(itemsizeof(item), "Назад"client);
        
    AddMenuItem(menu_es,item,item);

        
    DisplayMenu(menu_es,client,MENU_TIME_FOREVER);
        }
        else
        {
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x07FF4500Не хватает \x07FFFF00[ \x04Фрагов \x07FFFF00] \x07FF4500для покупки билета.");
            
    RPGMenu(client);
        }
    }

    public 
    RandomEsHandle(Handle:menu_es,MenuAction:action,client,slot)
    {
        if(
    action==MenuAction_Select)
        {
            if(
    slot==0)
            {
                
    ModuleTimer(client);
                
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x04Регистрируем билет в базе данных.");
            }
        }
        if(
    action==MenuAction_End)
            
    CloseHandle(menu_es);
    }

    ModuleTimer(client)
    {
        new 
    frags GetClientFrags(client);
        
        if (
    frags >= 10)
        {
            
    mt[client] = 4;
            
    CreateTimer(1.0RandomPlayGameclientTIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
        }
        else
        {
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x07FF4500Не хватает \x07FFFF00[ \x04Фрагов \x07FFFF00] \x07FF4500для покупки билета.");
            
    RPGMenu(client);
            return 
    Plugin_Stop;
        }
    }

    public 
    Action:RandomPlayGame(Handle:timer,any:client)
    {
        new 
    frags1 GetClientFrags(client);
        
        if (--
    mt[client] > 0
        { 
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x07E0FFFFПроверка выиграшного билета: \x04[\x01Ждите: \x07FF4500%d сек\x04]"mt[client]);
            return 
    Plugin_Continue
        }
        else if (
    client && IsClientInGame(client))
        {
        new 
    GetRandomInt(06); 
        switch(
    i
        { 
            case 
    0
            {  
            
    ServerCommand("thc_rpg_xp add \"%N\" 1000"client);
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x071E90FFвы выиграли игровой опыт [ +1000 xp ]");
            
    SetEntProp(clientProp_Data"m_iFrags"GetClientFrags(client) - 10); 
            
    RPGMenu(client);
            return 
    Plugin_Stop;
            }  
            case 
    1
            {  
            
    ServerCommand("thc_rpg_xp add \"%N\" 2000"client);
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x071E90FFвы выиграли игровой опыт [ +2000 xp ]"); 
            
    SetEntProp(clientProp_Data"m_iFrags"GetClientFrags(client) - 10); 
            
    RPGMenu(client);
            return 
    Plugin_Stop;
            } 
            case 
    2
            {  
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x01вы выиграли пустую коробку");
            
    SetEntProp(clientProp_Data"m_iFrags"GetClientFrags(client) - 10);
            
    RPGMenu(client);
            return 
    Plugin_Stop;
            } 
            case 
    3
            {  
            
    ServerCommand("thc_rpg_xp add \"%N\" 5000"client);
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x071E90FFвы выиграли игровой опыт [ +5000 xp ]");
            
    SetEntProp(clientProp_Data"m_iFrags"GetClientFrags(client) - 10); 
            
    RPGMenu(client);
            return 
    Plugin_Stop;
            } 
            case 
    4
            {  
            
    ServerCommand("thc_rpg_xp add \"%N\" 3000"client);
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x071E90FFвы выиграли игровой опыт [ +3000 xp ]");
            
    SetEntProp(clientProp_Data"m_iFrags"GetClientFrags(client) - 10); 
            
    RPGMenu(client);
            return 
    Plugin_Stop;
            }
            case 
    5
            {  
            
    ServerCommand("thc_rpg_xp add \"%N\" 10000"client);
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x05вы выиграли самый большой приз \x04[ \x07FF000Джекпот \x04]");
            
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x071E90FFвы выиграли игровой опыт [ +10000 xp ]");
            
    PrintCenterTextAll("%N сорвал джекпот в лотерею!"client);
                    
            
    SetEntProp(clientProp_Data"m_iFrags"GetClientFrags(client) - 10); 
            
    RPGMenu(client);
            return 
    Plugin_Stop;
            }
            case 
    6:
            {
                
    ServerCommand("thc_rpg_vipdamage add \"%N\" 50"client);
                
    PrintToChat(client"\x07090000[\x07FD0101RPG\x07090000] \x01вы выиграли игровой скил \x04[ \x01+ 50 EXP \x04]");
                return 
    Plugin_Stop;
            }
        }
    }
    }

    Внимание! Код не оптимизирован, делал достаточно давно, немного позже обновлю пост.

    Для всех кто спросит зачем несколько проверок на фраги клиента, в рпг у меня был навык который мог забирать фраги при ранение игрока, поэтому приходилось проверять несколько раз.
    Владельцы rpg от сенатора без исходников, установить в ручную не получиться. Ожидайте скоро выложу бесплатную версию с похожим функционалом (дописываю по мере возможностей)
     
    Последнее редактирование: 9 ноя 2014
  2. Sam_Fisher

    Sam_Fisher

    Сообщения:
    703
    Симпатии:
    202
  3. Никита Колосветов

    Никита Колосветов RADZ^

    Сообщения:
    8
    Симпатии:
    0
    Жду твой рпг мод)
     
  4. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.194
    Симпатии:
    427
    Плагин отклонён по причине:
     
  5. BosscoSport

    BosscoSport

    Сообщения:
    72
    Симпатии:
    1
    Установил THC_RPG последнец модели все работало! Установил Соурс банс версии 1.5.1 он не работает. В логах ничего не пишет и ерорах тоже. Переустановил и всеравно не работает! вчем может быть проблема? знаю не по теме но смотрю в рпг модах разбераешься! Если выпустишь свой обязательно скачаю!