Nemesis Chance [BB 6.5 Tirant]

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Nemesis Chance [BB 6.5 Tirant]

Мнение от JustInCase » 24 Дек 2016, 16:42

Здравейте, таа поиграх си малко днес и се опитах да направя Nemesi Chance Plugin. Идеята ми е на всеки рунд играч (разбира се, който е зомби) да има шанс да стане Nemesis. Въпросът ми е дали се е получило и ако имате някакви идеи да ми ги споделите( Оптимизиране на кода и др.).

Нова версия - 1.1

Change Log:

Код за потвърждение: Избери целия код

v 1.0 - Първа версия
v 1.1 - Оправени са всички бъгове и са добавени чат команди
CVARs :
► Покажи скъсения текст

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <colorchat>

#if AMXX_VERSION_NUM < 183
    #include <dhudmessage>
#endif

#define PLUGIN "Nemessis Chance"
#define VERSION "1.1"
#define AUTHOR "Just In Case"

#define IsPlayer1(%1) ( 1 <= %1 <= MAX_PLAYERS )
#define MAX_PLAYERS 32

native bb_is_user_zombie(id)
    
enum PluginSettings {
    CVAR_ENABLE,
    CVAR_PREFIX,
    CVAR_PERCENT,
    CVAR_MODEL,
    CVAR_HP,
    CVAR_TASKTIME,
    CVAR_GRAVITY,
    CVAR_SPEED,
    CVAR_DAMAGE
}
new iCvars[ PluginSettings ]
new iEnable, iPercent, iHP, iGravity
new gZombie[33], gPlayer_Model[33][32], g_ent_playermodel[33]
new bool:Nemesis[33], bool:szHave
new Float: fTaskTime

new const szChatCommands[][] = {
    "say /chance", "say_team /chance",
    "say chance", "say_team chance"
}
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_logevent("evStartRound", 2, "1=Round_Start")  
    
    for ( new i = 0; i < sizeof( szChatCommands ); i++ )
        register_concmd(szChatCommands[ i ], "chanceCMD")
        
    iCvars[ CVAR_ENABLE ] = register_cvar("bb_enable_nemesis", "1")
    iEnable = get_pcvar_num(iCvars[ CVAR_ENABLE ])
    
    iCvars[ CVAR_PREFIX ] = register_cvar("bb_nemesis_prefix", "EXAMLE")
    
    iCvars[ CVAR_PERCENT ] = register_cvar("bb_nemesis_precent", "10")
    iPercent = get_pcvar_num(iCvars[ CVAR_PERCENT ])
    
    iCvars[ CVAR_HP ] = register_cvar("bb_nemesis_hp", "25000")
    iHP = get_pcvar_num(iCvars[ CVAR_HP ])
    
    iCvars[ CVAR_GRAVITY ] = register_cvar("bb_nemesis_gravity", "200")
    iGravity = get_pcvar_num(iCvars[ CVAR_GRAVITY ])
    
    iCvars[ CVAR_TASKTIME ] = register_cvar("bb_nemesis_message", "60")
    fTaskTime = get_pcvar_float(iCvars[ CVAR_TASKTIME ])
    
    iCvars[ CVAR_SPEED ] = register_cvar("bb_nemesis_speed", "350")
    
    register_logevent("logevent_round_end", 2, "1=Round_End") 
    
    set_task(fTaskTime, "taskMessage", 0, _, _, "b")
    
    
    
}
public chanceCMD(id)
{
    gZombie[ id ] = bb_is_user_zombie(id)
    if(is_user_alive(id))
    {
        if(iEnable)
        {
            new Float:Gravity
            if( random(100) <= iPercent )
            {
                if(Nemesis[ id ] == true)
                {
                    ColorChat(id, RED, "^4[ %s ] ^1You already won the ^4Chance^1. You are now ^3NEMESIS ^4!^3!^4!", GetPrefix())
                    return
                }
                if(szHave == true)
                {
                    ColorChat(id, RED, "^4[ %s ] ^1Someone already won the ^4Chance ^1this round try the next one", GetPrefix())
                    return
                }
                new szPlayerWon[33]
                get_user_name(id, szPlayerWon, 32)
                copy( gPlayer_Model[ id ], charsmax( gPlayer_Model[] ), "nemesis")
            
                fm_set_playermodel_ent( id, gPlayer_Model[ id ] )
                set_user_health(id, iHP)
                set_user_maxspeed(id , get_pcvar_float(iCvars [ CVAR_SPEED ]))
                Gravity = iGravity / 800.0
                set_user_gravity(id, Gravity)
                    
                set_dhudmessage(230, 60, 0, 0.30, 0.35, 1, 6.0, 3.0, 0.3, 1.5)
                show_dhudmessage( id, "YOU WON NEMESIS CLASS FOR THIS ROUND^nYour HP is now : %i", iHP )
                ColorChat(0, RED, "^4[ %s ] ^3%s ^1won NEMESIS CLASS this round. Be carefull !!!", GetPrefix(), szPlayerWon)
                szHave = true
                Nemesis[ id ] = true
                
            }
        }
    }
}
public taskMessage()
{
    ColorChat(0, RED, "^4[ %s ] ^1Type ^4/chance^3, ^4chance ^1in the chat to have a chance to become ^3NEMESIS", GetPrefix())
}
public client_connect(id)
{
    szHave = false
    Nemesis[ id ] = false
}
public client_disconnect(id)
{
    szHave = false
    Nemesis[ id ] = false
}
public logevent_round_end(id)
{
    Nemesis[ id ] = false
    szHave = false
}
public plugin_precache()
{
    precache_player_model("nemesis")
}
public ham_TakeDamage_Pre(victim, inflictor, attacker, Float:damage, damage_bits)
{
    if( !IsPlayer1( attacker ) || !is_user_alive( attacker ) || inflictor != attacker )
    {
        return;
    }
    
    if ( Nemesis[ attacker ] && get_user_weapon(attacker) == CSW_KNIFE )
    {
        SetHamParamFloat( 4, damage * 9999 );
    }
}
/*================================================================================
[Stocks]
=================================================================================*/

stock fm_set_playermodel_ent( id, const modelname[] )
{
    set_pev( id, pev_rendermode, kRenderTransTexture )
    set_pev( id, pev_renderamt, 1.0 )
    
    static modelpath[100]
    formatex( modelpath, charsmax( modelpath ), "models/player/%s/%s.mdl", modelname, modelname )
    
    if ( !pev_valid( g_ent_playermodel[id] ) )
    {
        
        g_ent_playermodel[id] = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) )
        
        
        if ( !pev_valid( g_ent_playermodel[id] ) ) return;
        
        
        set_pev( g_ent_playermodel[id], pev_movetype, MOVETYPE_FOLLOW )
        set_pev( g_ent_playermodel[id], pev_aiment, id )
        set_pev( g_ent_playermodel[id], pev_owner, id )
    }
    
    engfunc( EngFunc_SetModel, g_ent_playermodel[id], modelpath )
}
stock precache_player_model(szModel[])
{
    new szFile[128]
    formatex(szFile, charsmax(szFile), "models/player/%s/%s.mdl", szModel, szModel)
    precache_model(szFile)
    replace(szFile, charsmax(szFile), ".mdl", "T.mdl")
    
    if(file_exists(szFile))
        precache_model(szFile)
} 
stock GetPrefix()
{
    new Prefix[33]
    get_pcvar_string(iCvars[ CVAR_PREFIX ], Prefix, charsmax(Prefix))
    return Prefix
}
Плъгина е тестван по AMX MOD X 1.8.1 и РАБОТИ !
Последно промяна от JustInCase на 28 Дек 2016, 14:43, променено общо 6 пъти.
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: Nemesis Chance [BB 6.5 Tirant]

Мнение от OciXCrom » 24 Дек 2016, 17:29

Ние да ти кажем? Защо не тестваш първо?

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: Nemesis Chance [BB 6.5 Tirant]

Мнение от JustInCase » 24 Дек 2016, 20:21

Току що тествах плъгина и не тръгва изобщо проверих логове всичко .. в "Pause Plugins" излиза така

Код за потвърждение: Избери целия код

Unknown                       error
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
Petrowch0
Извън линия
Потребител
Потребител
Мнения: 220
Регистриран на: 14 Окт 2016, 19:23
Местоположение: de_dust2
Получена благодарност: 3 пъти
Обратна връзка:

Re: Nemesis Chance [BB 6.5 Tirant]

Мнение от Petrowch0 » 24 Дек 2016, 20:31

Версия на AMXMODX/HLDS/ReHLDS?
Изображение

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: Nemesis Chance [BB 6.5 Tirant]

Мнение от JustInCase » 24 Дек 2016, 20:40

AMX X 1.8.1
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
Petrowch0
Извън линия
Потребител
Потребител
Мнения: 220
Регистриран на: 14 Окт 2016, 19:23
Местоположение: de_dust2
Получена благодарност: 3 пъти
Обратна връзка:

Re: Nemesis Chance [BB 6.5 Tirant]

Мнение от Petrowch0 » 25 Дек 2016, 01:31

Под каква версия компилираш ?
Изображение

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: Nemesis Chance [BB 6.5 Tirant]

Мнение от JustInCase » 25 Дек 2016, 12:18

Същата.
MANSION - HNS : 45.144.155.99:27026
ONLINE

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Re: Nemesis Chance [BB 6.5 Tirant]

Мнение от OciXCrom » 25 Дек 2016, 16:21

Предостави цялата грешка, която се показва при стартиране на сървъра, а не само информацията от списъка с плъгини.

Аватар
JustInCase
Извън линия
Потребител
Потребител
Мнения: 582
Регистриран на: 14 Окт 2016, 23:31
Се отблагодари: 4 пъти
Получена благодарност: 15 пъти

Re: Nemesis Chance [BB 6.5 Tirant]

Мнение от JustInCase » 28 Дек 2016, 01:42

UPDATE! Всички бъгове са изчистени. Плъгинът работи под 1.8.1 по-нагоре не съм тествал, но не би трябвало да има проблеми.
MANSION - HNS : 45.144.155.99:27026
ONLINE

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта