Skocz do zawartości

[KOSZ] [CS 1.6] Asysta za pake


Rekomendowane odpowiedzi

  • Zasłużony Fragowicz
Opublikowano (edytowane)

leży już długi czas, ktoś na cscenter mi go napisał

plugin tworzy krąg-red/blue gdy ktoś podkłada/rozbraja pake , daje kasę(dla osób w tym kręgu)

nie musicie mi dziękować ;)

wszystko przerobiłem na colorchat, więc trzeba kompilować lokalnie z tą biblioteką

sprites/white.spr do pobrania na necie ^^

#include <amxmodx>
#include <fakemeta>
#include <cstrike>
#include <colorchat>


#define PLUGIN "Asysta za bombe"
#define VERSION "1.0"
#define AUTHOR "ktos"


#define DISTANCE 300 // odleglosc w UNITACH w ktorej gracze dostana bonus


new planter,defuser,sprite_white
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_event("SendAudio", "award_defuse", "a", "2&%!MRAD_BOMBDEF")      
    register_event("BarTime", "bomb_defusing", "be", "1=10", "1=5")
    register_logevent("award_plant", 3, "2=Planted_The_Bomb");    
    register_event("StatusIcon", "got_bomb", "be", "1=1", "1=2", "2=c4")
}
public plugin_precache()
{
    sprite_white = precache_model("sprites/white.spr") 
}
public got_bomb(id){ 
    planter = id; 
    return PLUGIN_CONTINUE 
} 
public award_plant()
{
    give_near_bonus(planter,1)
    give_money(planter,600)
    ColorChat(planter,GREEN,"^x01** Dostales^x03 600$^x01 za podlozenie paki!")
    creat_blast(planter,255,100,100)
}


public bomb_defusing(id){ 
    defuser = id; 
    return PLUGIN_CONTINUE 
} 


public award_defuse()
{
    give_near_bonus(defuser,2)
    give_money(defuser,600)
    ColorChat(defuser,GREEN,"^x01** Dostales^x03 600$^x01 za rozbrojenie paki")
    creat_blast(defuser,100,100,255)
}
stock give_near_bonus(id,type)
{
    new on[3]
    new oni[3]
    get_user_origin(id,on)
    for(new i=0;i<32;i++)
    {
        if(is_user_connected(i) && is_user_alive(i) && get_user_team(i) == type && i!=id) 
        {
            get_user_origin(i,oni)
            new g_Dist = get_distance(on,oni)
            if(g_Dist <= DISTANCE)
            {
                give_money(i,400)
                ColorChat(i,GREEN,"^x01** Dostales^x03 400$^x01 za asyste przy^x04 %s ^x01paki przez Twoja druzyne",(type == 1) ? "podkladaniu" : "rozbrajaniu")
            }
        }
    }
}
stock give_money(id,money)
{
    new kasa = cs_get_user_money(id)
    if(kasa + money > 16000) cs_set_user_money(id,16000)
    else cs_set_user_money(id,kasa+money)
} 
stock creat_blast(id,r,g,b)
{
    new Float:forigin[3], origin[3]
    pev(id,pev_origin,forigin)    
    FVecIVec(forigin,origin)
    message_begin(MSG_BROADCAST, SVC_TEMPENTITY, origin);
    write_byte(TE_BEAMCYLINDER);
    write_coord(origin[0]);
    write_coord(origin[1]);
    write_coord(origin[2]);
    write_coord(origin[0]);
    write_coord(origin[1] + DISTANCE);
    write_coord(origin[2] + DISTANCE);
    write_short(sprite_white);
    write_byte(0); // startframe
    write_byte(0); // framerate
    write_byte(10); // life
    write_byte(10); // width
    write_byte(255); // noise
    write_byte(r); // r, g, b // 200
    write_byte(g); // r, g, b // 100
    write_byte(b); // r, g, b // 100 
    write_byte(128); // brightness
    write_byte(5); // speed
    message_end();
}
Edytowane przez bolek_stw
  • Właściciel
Opublikowano
new kasa = cs_get_user_money(id)
if(kasa + money > 16000) cs_set_user_money(id,16000)
else cs_set_user_money(id,kasa+money)

najgorsza metoda, wystarczy: cs_set_user_money(id, min(kasa+money,16000))

  • Właściciel
Opublikowano

To jest uproszczenie, min jest szybsze, bo wtedy wykonujesz jedną funkcję. A jak masz ify, to sprawdzasz, znowu sprawdzasz, coś robisz, a jeśli nie, to znowu coś. Trzy razy dłużej to trwa, sprawdź profilerem. 

  • 2 lata później...
  • Właściciel
Opublikowano

Wiadomość została wygenerowana automatycznie.

 

Ten temat został oznaczony przez Moderatora jako spam i wyrzucony do -> archiwum.

Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Polityka prywatności