• Like 4
  • UP 1
  • Mor de râs 1
  • Dislike 1
Sari la conținut

Plugin SlayLores


Postări Recomandate

Postat (editat)

Descriere

SlayLoser este un plugin AMX Mod X (cu ReAPI) pentru Counter-Strike 1.6 care adaugă un efect spectaculos atunci când o echipă își ratează obiectivul.

 

La sfârșitul rundei, dacă echipa nu reușește să îndeplinească misiunea, toți jucătorii acelei echipe sunt uciși instantaneu cu un fulger și sunet de tunet, iar pe ecran apare un mesaj colorat (chat)

 

Funcționalități

Omoară automat toți jucătorii echipei pierzătoare atunci când obiectivul nu este îndeplinit.

 

Efect vizual de fulger și scântei asupra fiecărui jucător.

 

Sunet de tunet global pentru toți jucătorii.

 

Mesaje în chat colorate pentru ambele echipe.

 

Cod curat, scris pe baza ReAPI pentru performanță mai bună.

Cerințe

AMX Mod X 1.9 +

 

ReAPI instalat pe server (modulele reapi_amxx.dll / reapi_amxx.so)

 

Sunetul ambience/thunder_clap.wav prezent în joc (default CS).

 

Modelul sprites/lgtning.spr (default CS).

 

Instalare

Copiază fișierul .amxx în addons/amxmodx/plugins/.

 

Adaugă numele pluginului în addons/amxmodx/configs/plugins.ini.

 

Redeschide serverul.

 

Cod Sursă

 

// Slay Loser 0.0.1
// by @amxpro
	new const VERSION[] = "0.0.1";
	#include <amxmodx>
#include <reapi>
	enum _:XYZ {
    Float:X,
    Float:Y,
    Float:Z
};
	new const g_szThunderSound[] = "ambience/thunder_clap.wav";
	new
    g_iThunderSprId;
	public plugin_precache() {
    g_iThunderSprId = precache_model("sprites/lgtning.spr");
    precache_sound(g_szThunderSound);
}
	public plugin_init() {
    register_plugin("Slay Loser",VERSION,"@amxpro");
	    RegisterHookChain(RG_RoundEnd,"RoundEnd_Post", .post = true);
}
	public RoundEnd_Post(const WinStatus:iWinStatus,const ScenarioEventEndRound:iScenarioEvent) {
    switch(iScenarioEvent) {
        case ROUND_TERRORISTS_WIN,ROUND_TARGET_BOMB,ROUND_HOSTAGE_NOT_RESCUED:                  Func__KillTeam(TEAM_CT);
        case ROUND_CTS_WIN,ROUND_BOMB_DEFUSED,ROUND_TARGET_SAVED,ROUND_ALL_HOSTAGES_RESCUED:    Func__KillTeam(TEAM_TERRORIST);
    }
}
	public Func__KillTeam(const TeamName:iTeam) {
    new iAliveTe,iAliveCt;
    rg_initialize_player_counts(iAliveTe,iAliveCt);
	    if(iTeam == TEAM_TERRORIST && !iAliveTe || iTeam == TEAM_CT && !iAliveCt)
        return;
	    for(new id=1;id<=MaxClients;++id) {
        if(!is_user_connected(id) || !is_user_alive(id) || is_user_hltv(id))
            continue;
        
        if(TeamName:get_member(id,m_iTeam) != iTeam)
            continue;
        
        UTIL__Thunder(id);
        user_kill(id);
    }
	    emit_sound(0,CHAN_AUTO,g_szThunderSound,VOL_NORM,ATTN_NORM,0,PITCH_NORM);
	    switch(iTeam) {
        case TEAM_TERRORIST:    client_print_color(0,print_team_default,"^4*^3Teroriștii ^1nu și-au îndeplinit sarcina^4!");
        case TEAM_CT:           client_print_color(0,print_team_default,"^4*^3Contra-Teroriștii ^1nu și-au îndeplinit sarcina^4!");
    }
}
	stock UTIL__Thunder(const id) {
    new Float:fOrigin[XYZ],Float:fPos[XYZ];
    get_entvar(id,var_origin,fOrigin);
	    fOrigin[Z] -= 26.0;
    fPos[X] = fOrigin[X] + 150.0;
    fPos[Y] = fOrigin[Y] + 150.0;
    fPos[Z] = fOrigin[Z] + 800.0;
	    message_begin_f(MSG_BROADCAST,SVC_TEMPENTITY); {
        write_byte(TE_BEAMPOINTS);
        write_coord_f(fPos[X]);
        write_coord_f(fPos[Y]);
        write_coord_f(fPos[Z]);
        write_coord_f(fOrigin[X]);
        write_coord_f(fOrigin[Y]);
        write_coord_f(fOrigin[Z]);
        write_short(g_iThunderSprId);
        write_byte(1);
        write_byte(5);
        write_byte(7);
        write_byte(20);
        write_byte(30);
        write_byte(200);
        write_byte(200);
        write_byte(200);
        write_byte(200);
        write_byte(200);
    }
    message_end();
	    message_begin_f(MSG_BROADCAST,SVC_TEMPENTITY,fOrigin); {
        write_byte(TE_SPARKS);
        write_coord_f(fOrigin[X]);
        write_coord_f(fOrigin[Y]);
        write_coord_f(fOrigin[Z]);
    }
    message_end();
	    message_begin_f(MSG_BROADCAST,SVC_TEMPENTITY); {
        write_byte(TE_LAVASPLASH);
        write_coord_f(fPos[X]);
        write_coord_f(fPos[Y]);
        write_coord_f(fPos[Z])
    }
    message_end();
}
Editat de @amxpro

Alătură-te conversației

Poți posta acum și să te înregistrezi mai târziu. Dacă ai un cont, autentifică-te acum pentru a posta cu contul tău.

Vizitator
Din păcate, conținutul tău conține termeni pe care nu îi permitem. Te rugăm să editezi conținutul pentru a elimina cuvintele evidențiate de mai jos.
Răspunde la acest topic...

×   Inserat ca text bogat.   Restabiliți configurația implicită

  Doar 75 emoji sunt permise.

×   Linkul tău a fost încorporat automat.   Afișează ca link în schimb

×   Conținutul tău precedent a fost restaurat.   Curăță editor

×   Nu poți lipi imagini direct. Încarcă sau inserează imagini din URL.

  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Termeni de Utilizare & Politică Intimitate