Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSSFireWork Plugin


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hi. I'm using this fireworks plugin for my DeathRun Server:

Code:

/*===============================================================================================================================================
                                                        [CS 1.6] Gameplay: Fireworks On End Round
                                                       
                * Description:
                When the round end the person will be able to celebrate with fireworks pressing the button or auto relasing
               
                * Required modules:
                - amxmodx
                - fakemeta
               
                * Cvars
                - amx_fireworks_enable "1"                // Enable/Disable Plugin
                - amx_fireworks_admin_only "0"                // Only Admins ?
                - amx_fireworks_admin_flag "b"                // Flag Acess
                - amx_fireworks_type "0"                // Type of Fireworks (0 - Automatic Relase  | 1 - IN_USE | 2 - IN_ATTACK)
                - amx_fireworks_message_enable "0"        // Enable/Disable Fireworks Messages
               
================================================================================================================================================*/
#include <amxmodx>
#include <fakemeta>
#include <xs>

#define PLUGIN "[CS 1.6] Gameplay: Fireworks on End Round"
#define VERSION "1.3"
#define AUTHOR "[P]erfec[T] [S]cr[@]s[H]"

#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))

#define TASK_AUTORELASE 3102130
#define AUTO_RELASE_INTERVAL 0.6

new g_fireworks_team, g_trailSpr, g_exploSpr, cvar_enable, cvar_admin_only, cvar_admin_flag, cvar_type, cvar_enable_message, flag_acess, g_maxplayers
new const fireworks_model[] = "sprites/3dmflared.spr"
new const fireworks_class[] = "amxx_fireworks"

#if AMXX_VERSION_NUM < 183
new g_msgsaytext
#endif

enum {
        TEAM_UNASSIGNED = 0,
        TEAM_T = 1,
        TEAM_CT = 2,
        TEAM_SPECTATOR = 3
};

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_cvar("amx_fireworks", VERSION, FCVAR_SERVER|FCVAR_UNLOGGED);
       
        register_dictionary("amx_fireworks.txt")
       
        cvar_enable = register_cvar("amx_fireworks_enable", "1")
        cvar_admin_only = register_cvar("amx_fireworks_admin_only", "0")
        cvar_admin_flag = register_cvar("amx_fireworks_admin_flag", "b")
        cvar_type = register_cvar("amx_fireworks_type", "0")
        cvar_enable_message = register_cvar("amx_fireworks_message_enable", "0")
       
        register_forward(FM_Touch, "fw_Touch")
        register_forward(FM_PlayerPreThink, "fw_PlayerPreThink")
        register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
        register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
        register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")

        g_maxplayers = get_maxplayers()
       
        #if AMXX_VERSION_NUM < 183
        g_msgsaytext = get_user_msgid("SayText")
        #endif
}

public plugin_cfg() {
        new szFlags[24]; get_pcvar_string(cvar_admin_flag, szFlags, charsmax(szFlags))
        flag_acess = read_flags(szFlags)
}

public plugin_precache() {
        precache_model(fireworks_model)
        g_trailSpr = precache_model("sprites/laserbeam.spr")
        g_exploSpr = precache_model("sprites/fireworks.spr")
}

public t_win()
{
        if(!get_pcvar_num(cvar_enable))
                return;
       
        g_fireworks_team = TEAM_T

        client_printcolor(0, "%L %L", LANG_PLAYER, "FIREWORKS_TAG", LANG_PLAYER, "FIREWORKS_ENABLE")                       
                       
        if(get_pcvar_num(cvar_type) <= 0)
                set_task(AUTO_RELASE_INTERVAL, "auto_relase", TASK_AUTORELASE, _, _, "b")
        else
                client_printcolor(0, "%L %L", LANG_PLAYER, "FIREWORKS_TAG", LANG_PLAYER, "FIREWORKS_BUTTON", get_pcvar_num(cvar_type) >= 2 ? "IN_ATTACK" : "E (IN_USE)")
       
}

public ct_win()
{
        if(!get_pcvar_num(cvar_enable))
                return;
       
        g_fireworks_team = TEAM_CT
       
        client_printcolor(0, "%L %L", LANG_PLAYER, "FIREWORKS_TAG", LANG_PLAYER, "FIREWORKS_ENABLE")                       
                       
        if(get_pcvar_num(cvar_type) <= 0)
                set_task(AUTO_RELASE_INTERVAL, "auto_relase", TASK_AUTORELASE, _, _, "b")
        else
                client_printcolor(0, "%L %L", LANG_PLAYER, "FIREWORKS_TAG", LANG_PLAYER, "FIREWORKS_BUTTON", get_pcvar_num(cvar_type) >= 2 ? "IN_ATTACK" : "E (IN_USE)")
       
}

public event_round_start() {
        g_fireworks_team = 0
        remove_task(TASK_AUTORELASE)
        client_printcolor(0, "%L %L", LANG_PLAYER, "FIREWORKS_TAG", LANG_PLAYER, "FIREWORKS_DISABLE")
}

public auto_relase()
{
        if(!g_fireworks_team || !get_pcvar_num(cvar_enable)) {
                remove_task(TASK_AUTORELASE)
                return;
        }
       
        for(new id = 1; id <= g_maxplayers; id++)
                make_fireworks(id)
}

public fw_PlayerPreThink(id)
{
        static iButton; iButton = pev(id, pev_button)
        static iOldButton; iOldButton = pev(id, pev_oldbuttons)
       
        if((iButton & IN_USE) && !(iOldButton & IN_USE) && get_pcvar_num(cvar_type) == 1 || (iButton & IN_ATTACK) && !(iOldButton & IN_ATTACK) && get_pcvar_num(cvar_type) >= 2)
                make_fireworks(id)
}

public make_fireworks(id)
{
        if(!is_user_alive(id) || get_user_team(id) != g_fireworks_team || !get_pcvar_num(cvar_enable) || !(get_user_flags(id) & flag_acess) && get_pcvar_num(cvar_admin_only))
                return;
       
        new Float:Origin[3], Float:vAngle[3], Float:flVelocity[3]
       
        // Get position from eyes
        get_user_eye_position(id, Origin)
        pev(id, pev_v_angle, vAngle)
       
        new NewEnt = fm_create_entity("info_target")
        set_pev(NewEnt, pev_classname, fireworks_class)
        engfunc(EngFunc_SetModel, NewEnt, fireworks_model)
        set_pev(NewEnt, pev_size, Float:{ -1.5, -1.5, -1.5 }, Float:{ 1.5, 1.5, 1.5 })
        set_pev(NewEnt, pev_origin, Origin)
       
        // Set Entity Angles (thanks to Arkshine)
        make_vector(vAngle)
        set_pev(NewEnt, pev_angles, vAngle)
        set_pev(NewEnt, pev_solid, SOLID_BBOX)
        set_pev(NewEnt, pev_scale, 0.1)
        set_pev(NewEnt, pev_spawnflags, SF_SPRITE_STARTON)
        set_pev(NewEnt, pev_framerate, 25.0)
        set_rendering(NewEnt, kRenderFxNone, 0, 0, 0, kRenderTransAdd, 255)
        set_pev(NewEnt, pev_movetype, MOVETYPE_FLY)
        set_pev(NewEnt, pev_owner, id)
       
        // Set Entity Velocity
        velocity_by_aim(id, 700, flVelocity)
        set_pev(NewEnt, pev_velocity, flVelocity)
       
        message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
        write_byte(TE_BEAMFOLLOW) // TE id
        write_short(NewEnt) // entity
        write_short(g_trailSpr) // sprite
        write_byte(9) // life
        write_byte(3) // width
        write_byte(random_num(0,255)) // r
        write_byte(random_num(0,255)) // g
        write_byte(random_num(0,255)) // b
        write_byte(255) // brightness
        message_end()
}

// Touch Forward
public fw_Touch(ent, id)
{
        if (!pev_valid(ent))
                return FMRES_IGNORED
       
        new class[32], Float:originF[3];
        pev(ent, pev_classname, class, charsmax(class))
       
        if(equal(class, fireworks_class)) {

                pev(ent, pev_origin, originF) // Get origin
               
                message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
                write_byte(TE_SPRITE);
                engfunc(EngFunc_WriteCoord, originF[0]+random_float(-5.0, 5.0));
                engfunc(EngFunc_WriteCoord, originF[1]+random_float(-5.0, 5.0));
                engfunc(EngFunc_WriteCoord, originF[2]+200.0);
                write_short(g_exploSpr);
                write_byte(15);
                write_byte(200);
                message_end();
               
                engfunc(EngFunc_RemoveEntity, ent)
        }
        return FMRES_IGNORED
}

stock get_user_eye_position(id, Float:flOrigin[3]) {
        static Float:flViewOffs[3]
        pev(id, pev_view_ofs, flViewOffs)
        pev(id, pev_origin, flOrigin)
        xs_vec_add(flOrigin, flViewOffs, flOrigin)
}

stock make_vector(Float:flVec[3]) {
        flVec[0] -= 30.0
        engfunc(EngFunc_MakeVectors, flVec)
        flVec[0] = -(flVec[0] + 30.0)
}

// Colored Chat (client_printcolor)
stock client_printcolor(const id, const input[], any:...)
{
        if(!get_pcvar_num(cvar_enable_message))
                return
       
        static msg[191]
        vformat(msg, charsmax(msg), input, 3)       
        replace_all(msg, charsmax(msg), "!g", "^4")  // Green Color Chat
        replace_all(msg, charsmax(msg), "!y", "^1")  // Default Color Char
        replace_all(msg, charsmax(msg), "!t", "^3")  // Team Color Char
       
        #if AMXX_VERSION_NUM < 183
        new count = 1, players[32]               
        if (id) players[0] = id; else get_players(players, count, "ch")
        {
                for (new i = 0; i < count; i++) {
                        message_begin(MSG_ONE_UNRELIABLE, g_msgsaytext, _, players[i])
                        write_byte(players[i]);
                        write_string(msg);
                        message_end();
                }
        }
        #else
        client_print_color(id, print_team_default, msg)
        #endif
}

// Set rendering from fakemeta_util
stock set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16) {
        new Float:RenderColor[3];
        RenderColor[0] = float(r);
        RenderColor[1] = float(g);
        RenderColor[2] = float(b);

        set_pev(entity, pev_renderfx, fx);
        set_pev(entity, pev_rendercolor, RenderColor);
        set_pev(entity, pev_rendermode, render);
        set_pev(entity, pev_renderamt, float(amount));

        return 1;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1046\\ f0\\ fs16 \n\\ par }
*/


Can anyone edit it, to works only if CT win? I mean now is when CT kill the terro, T relase this fireworks. And same thing for T (when T kill CT, CT release fireworks)

I have DR server, so i want to launch fireworks when X player kill T. (only from the player who kill the T).

For Ts , i want to don't have this fireworks.

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...