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

CS:GO Graffiti


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hi can anyone help me with this plugin? it is for an old version of amxx 1.10 and I have 1.9, does anyone know how to edit it? Thank you very much
Code:

// https://www.tarihiolaylar.com/img/galeri/galeri_ottoman-jpg_665391412_1447579812.jpg

#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <engine>
#include <fakemeta>

#define PLUGIN "CS:GO Graffiti"
#define VERSION "1.0"
#define AUTHOR "Fatih ~ EjderYa"

#define ent_ClassName "CSGOGraffiti"
#define Graf_Image_Size_px 512.0
#define Graf_Scale 0.1
#define LOGFILE "addons/amxmodx/logs/Graf_Admin_Give_Key_Logs.log"

new const Graf_Model[] = "sprites/CSGO_Graffiti_new.spr"
new const Graf_Sound[] = "Grafiti_Print.wav"
new Graf_Model_index
new Save_File[100]

new Cvar_reload_time , Cvar_visibility_time , Cvar_fade_away_time , Cvar_distance , Cvar_drop_key_possibility, Cvar_graffiti_unit
new Graf_Time[33] , PlayerName[33][36] , Active_Spray[33] , Graf_Key[33]


public plugin_init() {
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_dictionary("CSGO_New_Grafiti.txt")
       
        register_clcmd("amx_give_graffiti_key", "cmd_give_key", ADMIN_BAN, "<PLAYER NAME>")
        register_clcmd("say /graffiti","GraffitiMenu_Open")
       
        bind_pcvar_num(create_cvar ("graffiti_reload_time","45"),Cvar_reload_time)
        bind_pcvar_num(create_cvar ("graffiti_visibility_time","25"),Cvar_visibility_time)
        bind_pcvar_num(create_cvar ("graffiti_fade_away_time","30"),Cvar_fade_away_time)
        bind_pcvar_num(create_cvar ("graffiti_distance","120"),Cvar_distance)
        bind_pcvar_num(create_cvar ("graffiti_drop_key_possibility","5"),Cvar_drop_key_possibility)
        bind_pcvar_num(create_cvar ("graffiti_unit","50"),Cvar_graffiti_unit)
       
        RegisterHookChain(RG_CBasePlayer_Killed, "Player_Killed", 1);
       
        File_Control()
       
}


reset_graf_time(id){
        remove_task(id)
        Graf_Time[id] = 0
       
}
public client_putinserver(id){
        reset_graf_time(id)
}
public client_disconnected(id){
        reset_graf_time(id)
}
public overflow_graffiti_detect(Float:i_Origin[3], Float:i_Angles[3], Float:vNormal[3]){
       
       
        new Float:Origin[3] , Float:Angles[3]
        Angles[0] = i_Angles[0]
       
       
        Origin[0] = i_Origin[0] + (vNormal[0] * 0.5);
        Origin[1] = i_Origin[1] + (vNormal[1] * 0.5);
        Origin[2] = i_Origin[2] + (vNormal[2] * 0.5);               
       
       
        Origin[0] = i_Origin[0] + floatcos(i_Angles[1] , degrees ) * 5.0
        Origin[1] = i_Origin[1] + floatsin(i_Angles[1] , degrees ) * 5.0
        Origin[2] = i_Origin[2] + floatsin(i_Angles[2] , degrees ) * 5.0 * floatpower(2.0,0.5)
       
        new Status
       
        Angles[1] = i_Angles[1] + 270.0
        Angles[2] = i_Angles[2] + 45.0
        Status += Spawn_in_wall_detect(Origin,Angles)
        Angles[2] -= 90.0
        Status += Spawn_in_wall_detect(Origin,Angles)
        Angles[1] += 180.0
        Status += Spawn_in_wall_detect(Origin,Angles)
        Angles[2] += 90.0
        Status += Spawn_in_wall_detect(Origin,Angles)
       
       
        if ( Status != 4 )
                return false
       
        return true       
}

public Spawn_in_wall_detect(Float:Origin[3],Float:Angles[3]){
       
        new Float:New_Origin[3]
        New_Origin[0] = Origin[0] + floatcos(Angles[1] , degrees ) * (Graf_Scale * Graf_Image_Size_px) / 2.0
        New_Origin[1] = Origin[1] + floatsin(Angles[1] , degrees ) * (Graf_Scale * Graf_Image_Size_px) / 2.0
        New_Origin[2] = Origin[2] + floatsin(Angles[2] , degrees ) * (Graf_Scale * Graf_Image_Size_px) * floatpower(2.0,0.5) / 2.0
       
       
        if(engfunc(EngFunc_PointContents, New_Origin) == CONTENTS_EMPTY) /// IN WALL : 1  -  OUT WALL 0
                return false
       
        return true
       
       
}

public reload_graf(id){
        if ( Graf_Time[id] > 0 ){
                Graf_Time[id]--
                set_task(1.0,"reload_graf",id)
        }
}


public plugin_precache()
{
        Graf_Model_index = precache_model(Graf_Model);
        precache_sound(Graf_Sound)
}

public cmd_give_key(id, level, cid)
{
        if(!cmd_access(id, level, cid, 2))
                return PLUGIN_HANDLED_MAIN
       
        static arg1[32]
        read_argv(1, arg1, 31)
       
        static target
        target = cmd_target(id, arg1, (CMDTARGET_ALLOW_SELF|CMDTARGET_NO_BOTS))
       
        if(!is_user_connected(target))
                return PLUGIN_HANDLED_MAIN
               
        Droped_Key(target,id)
       
        return PLUGIN_HANDLED
}
public Player_Killed(Victim, Killer) {
       
        if ( Victim == Killer || Killer == 0 )
                return
               
        if ( random_num(1,100) <= Cvar_drop_key_possibility && is_user_connected(Killer) && !is_user_bot(Killer) )
                Droped_Key(Killer)
       
}




File_Control(){

        formatex(Save_File,charsmax(Save_File),"%L",0,"LOG_FILE_NOTE")
        write_file(LOGFILE,Save_File,0)
        write_file(LOGFILE,"",1)
       
        new configdir[128]
        get_configsdir(configdir, charsmax(configdir) )
         
        format(Save_File,charsmax(Save_File),"%s/CSGO_Graffiti",configdir)
        mkdir(Save_File)
               
}


public client_connect(id){

        Graf_Key[id] = 0
        if ( !is_user_bot(id) ){
                get_user_name(id,PlayerName[id],35)
               
                new PlayerSave[64]
                       
                formatex(PlayerSave,charsmax(PlayerSave),"%s\%s.ini",Save_File,PlayerName[id])
                if ( file_size(PlayerSave) == -1 ){
                        write_file(PlayerSave,"0",0)
                        write_file(PlayerSave,"0",1)
                }
                       
                else
                {
                        new data_str[6]
                        read_file(PlayerSave,0,data_str,charsmax(data_str))
                        Active_Spray[id] = str_to_num(data_str)
                       
                        read_file(PlayerSave,1,data_str,charsmax(data_str))
                        Graf_Key[id] = str_to_num(data_str)
                }
        }
}




public GraffitiMenu(const id,const page)
{
        new MenuItem[86]
        formatex(MenuItem,charsmax(MenuItem),"\y%L : \r%d^n*** \w%L \r***",id,"GRAF_KEY",Graf_Key[id],id,"MENU_TITLE")
        new menu = menu_create(MenuItem, "GraffitiMenu_continue")
       
        formatex(MenuItem,charsmax(MenuItem),"%s%L",Graf_Key[id] <= 0 ? "\d" : "\w",id,"USE_KEY")
        menu_additem(menu, MenuItem , Graf_Key[id] <= 0 ? "-1" : "0")
       
        //////////////////////////
        new PlayerSave[64] , GraffitiName[36] , Unit[4] , Text[64]
        formatex(PlayerSave,charsmax(PlayerSave),"%s\%s.ini",Save_File,PlayerName[id])
       
       
        new Satir_Sayisi = file_size(PlayerSave, FSOPT_LINES_COUNT)
        for(new i = 2;i<Satir_Sayisi;i++){
               
                Text = ""
                read_file(PlayerSave,i,Text,charsmax(Text))
               
                if ( !equali(Text,"")){
                       
                        parse(Text,GraffitiName,charsmax(GraffitiName),Unit,charsmax(Unit))
                        formatex(Text,charsmax(Text),"%s  \r[%s] \y%L",GraffitiName,Unit,id,Active_Spray[id]==i?"SELECTED":"SPACE")
                        num_to_str(i,Unit,charsmax(Unit))
                        replace_all(Text,charsmax(Text),"_"," ")
                        menu_additem(menu, Text, Unit);
                }
               
        }
        //////////////////////////
       
       
        formatex(MenuItem,charsmax(MenuItem),"%L",id,"EXIT")
        menu_setprop(menu,MPROP_EXITNAME,MenuItem)
        menu_setprop(menu,MPROP_EXIT, MEXIT_NORMAL)
        menu_display(id,menu,page)
       
       
}
public GraffitiMenu_continue(const id, const menu, const item)
{

        if(item == MENU_EXIT )
        {
                menu_destroy(menu);
                return PLUGIN_HANDLED;
        }
       
        new data_str[6], name[32], access, callback;
        menu_item_getinfo(menu, item, access, data_str, charsmax(data_str), name, charsmax(name), callback);
        new data = str_to_num(data_str)
       
        if ( data >= 0 ){
                if ( data == 0 ){
                       
                        Use_Graffiti_Key(id)
                }
                else
                {
                        new PlayerSave[64]
                        formatex(PlayerSave,charsmax(PlayerSave),"%s\%s.ini",Save_File,PlayerName[id])
                        Active_Spray[id] = data
                        write_file(PlayerSave,data_str,0)
                       
                }
        }

        GraffitiMenu(id,(data-1)/7)
       
        return PLUGIN_CONTINUE;
}


Float: get_graffiti_frame(id){
       
        new PlayerSave[64]
        formatex(PlayerSave,charsmax(PlayerSave),"%s\%s.ini",Save_File,PlayerName[id])
        read_file(PlayerSave,Active_Spray[id],PlayerSave,charsmax(PlayerSave))
               
        if ( !equali(PlayerSave,""))
                parse(PlayerSave,PlayerSave,1,PlayerSave,1,PlayerSave,charsmax(PlayerSave))
       
        return str_to_float(PlayerSave)

}

public Use_Graffiti_Key(id){

        new File_Graf_Names[64] , line = -1
        formatex(File_Graf_Names,charsmax(File_Graf_Names),"%s\csgo_graffiti_names.txt",Save_File)
        new Katman = random_num(0,file_size(File_Graf_Names, FSOPT_LINES_COUNT)-1)
        read_file(File_Graf_Names,Katman ,File_Graf_Names,charsmax(File_Graf_Names))
       
        new PlayerSave[64] , GraffitiName[36] , Unit[4] , Frame[4] , Text[64]
        formatex(PlayerSave,charsmax(PlayerSave),"%s\%s.ini",Save_File,PlayerName[id])
       
        read_file(PlayerSave,1,Frame,charsmax(Frame))
        Graf_Key[id] = str_to_num(Frame) - 1
        formatex(Frame,charsmax(Frame),"%d",Graf_Key[id])
        write_file(PlayerSave,Frame,1)
       
        new Satir_Sayisi = file_size(PlayerSave, FSOPT_LINES_COUNT)
        for(new i = 2;i<Satir_Sayisi;i++){
               
                Text = ""
                read_file(PlayerSave,i,Text,charsmax(Text))
               
                if ( !equali(Text,"")){                       
                       
                        parse(Text,GraffitiName,charsmax(GraffitiName),Unit,charsmax(Unit),Frame,charsmax(Frame))
                        if ( equali(File_Graf_Names,GraffitiName)){
                               
                                new New_Unit = str_to_num(Unit) + Cvar_graffiti_unit
                                formatex(Text,charsmax(Text),"%s %d %s",File_Graf_Names,New_Unit,Frame)
                                write_file(PlayerSave,Text,i)
                               
                                return
                        }
                       
                }
                else if ( line == -1 )
                        line = i
               
        }
       
       
        formatex(Text,charsmax(Text),"%s %d %.1f",File_Graf_Names,Cvar_graffiti_unit,float(Katman))
        write_file(PlayerSave,Text,line)
       
       
        replace_all(File_Graf_Names,charsmax(File_Graf_Names),"_"," ")
       
        //set_dhudmessage( 149,68,0, -1.0, 0.01 , 2, 4.0, 11.0, 0.01 , 1.5 )
        //show_dhudmessage(0, "%L",id,"USED_KEY_MESSAGE",PlayerName[id],File_Graf_Names)

        client_print_color(0,print_team_default,"%L",id,"USED_KEY_MESSAGE",PlayerName[id],File_Graf_Names)
       
}

Droped_Key(id,Admin = -1){
       
        new PlayerSave[64],Sec[5]
        formatex(PlayerSave,charsmax(PlayerSave),"%s\%s.ini",Save_File,PlayerName[id])
        read_file(PlayerSave,1,Sec,charsmax(Sec))
        Graf_Key[id] = str_to_num(Sec) + 1
        formatex(Sec,charsmax(Sec),"%d",Graf_Key[id])
        write_file(PlayerSave,Sec,1)

        new UserName[36] , Message[128]
        get_user_name(id,UserName,charsmax(UserName))
       
        if ( Admin == -1 )
                formatex(Message,charsmax(Message),"%L",0,"USER_WON_KEY",UserName)
        else
        {
                new AdminName[36]
                get_user_name(Admin,AdminName,charsmax(AdminName))
               
                if ( id == Admin )
                        formatex(Message,charsmax(Message),"%L",0,"ADMIN_TOOK_KEY",AdminName)
                else        formatex(Message,charsmax(Message),"%L",0,"ADMIN_GIVED_KEY",AdminName,UserName)
       
        }
        Print_Message_and_Log(Message,Admin != -1?1:0)
}
public client_impulse(id,impulse){
       
        if ( impulse == 201 ){
               
                Drawing_Graffiti(id)
                return PLUGIN_HANDLED
        }

        return PLUGIN_CONTINUE
       
}

public Drawing_Graffiti(id){
       
        if ( !is_user_alive(id) )
                return PLUGIN_HANDLED
       
        new Center_Origin[3];
        new Float:vCenter_Origin[3];
        new Float:Angles[3];
        new Float:vNormal[3];
        get_user_origin(id, Center_Origin, 3);
        IVecFVec(Center_Origin, vCenter_Origin);
        new Float:vPlayerCenter_Origin[3];
        new Float:vViewOfs[3];
        entity_get_vector(id, EV_VEC_origin, vPlayerCenter_Origin);
        entity_get_vector(id, EV_VEC_view_ofs, vViewOfs);
        vPlayerCenter_Origin[0] += vViewOfs[0];
        vPlayerCenter_Origin[1] += vViewOfs[1];
        vPlayerCenter_Origin[2] += vViewOfs[2];
        new Float:Player_Aim[3];
        entity_get_vector(id, EV_VEC_v_angle, Angles);
        Player_Aim[0] = vPlayerCenter_Origin[0] + floatcos(Angles[1], degrees ) * float(Cvar_distance)
        Player_Aim[1] = vPlayerCenter_Origin[1] + floatsin(Angles[1], degrees) * float(Cvar_distance)
        Player_Aim[2] = vPlayerCenter_Origin[2] + floatsin(-Angles[0], degrees) * float(Cvar_distance)
        new Intersection_Status = trace_normal(id, vPlayerCenter_Origin, Player_Aim, vNormal);
        vector_to_angle(vNormal, Angles)
        Angles[1] += 180.0
       
        vCenter_Origin[0] += (vNormal[0] * 0.5);
        vCenter_Origin[1] += (vNormal[1] * 0.5);
        vCenter_Origin[2] += (vNormal[2] * 0.5);
               
       
        if ( Active_Spray[id] <= 0 ){
                client_print(id,print_center,"%L",id,"NO_ACTIVE_SPRAY")
                return PLUGIN_HANDLED
        }
               
       
        if ( Graf_Time[id] != 0 ){
                client_print(id,print_center,"%L",id,"WAIT_SPRITE",Graf_Time[id])
                return PLUGIN_HANDLED
        }
       
       
        if ( !Intersection_Status ){
                client_print(id,print_center,"%L",id,"REMOTE_GROUND")
                return PLUGIN_HANDLED
        }
       
       
        if ( vNormal[2] != 0.0 ){
                client_print(id,print_center,"%L",id,"NOVERTICALWALL")
                return PLUGIN_HANDLED
        }
       
       
        if ( !overflow_graffiti_detect(vCenter_Origin, Angles, vNormal) ){
                client_print(id,print_center,"%L",id,"OVERFLOWING_GRAFFITI")
                return PLUGIN_HANDLED
        }
       
       
       
               
        new ent = rg_create_entity("info_target");
       
        if ( !is_nullent(ent) ){
               
                set_entvar(ent, var_origin,vCenter_Origin)
                set_entvar(ent, var_angles,Angles)
                set_entvar(ent, var_classname,ent_ClassName)
                set_entvar(ent, var_model,Graf_Model)
                set_entvar(ent, var_modelindex, Graf_Model_index)
                set_entvar(ent, var_renderamt, 255.0)
                set_entvar(ent, var_rendermode, kRenderTransTexture)
                set_entvar(ent, var_frame, get_graffiti_frame(id))
                set_entvar(ent, var_scale, get_graffiti_frame(id) >= 60 ? Graf_Scale*2.0:Graf_Scale)
               
                Graf_Time[id] = Cvar_reload_time + 1
                rh_emit_sound2(ent, 0, CHAN_STATIC, Graf_Sound, VOL_NORM, ATTN_IDLE);
                reload_graf(id)
                Drawing_End_Graffiti(id)

                SetThink(ent, "Remove_Graffiti")
                set_entvar(ent, var_nextthink, get_gametime( ) + float(Cvar_visibility_time) )
        }
       
        return PLUGIN_CONTINUE
       
}



public Drawing_End_Graffiti(id){

        new PlayerSave[64] , GraffitiName[36] , Unit[4] , Frame[4] , Text[64]
        formatex(PlayerSave,charsmax(PlayerSave),"%s\%s.ini",Save_File,PlayerName[id])


        read_file(PlayerSave,Active_Spray[id],Text,charsmax(Text))
        parse(Text,GraffitiName,charsmax(GraffitiName),Unit,charsmax(Unit),Frame,charsmax(Frame))
        new New_Unit = str_to_num(Unit)
        client_print_color(id,print_team_default,"New_Unit = %d",New_Unit)
       
        if ( New_Unit > 1 ){
                New_Unit--
                formatex(Text,charsmax(Text),"%s %d %s",GraffitiName,New_Unit,Frame)
                write_file(PlayerSave,Text,Active_Spray[id])
        }
        else        write_file(PlayerSave,"",Active_Spray[id]) , Active_Spray[id] = 0


}

public GraffitiMenu_Open(id)
        GraffitiMenu(id,0)

Print_Message_and_Log(Message[128],LOG = 0){       
       
        //new Sec[5]
        //get_time("%S",Sec,charsmax(Sec))
        //set_dhudmessage( 149,68,0, -1.0, 2.5 * 0.01 * float(str_to_num(Sec)%10) , 2, 4.0, 11.0, 0.01 , 1.5 )
        //show_dhudmessage(0, Message)
       
        client_print_color(0,print_team_default,Message)
       
        replace_all(Message,charsmax(Message),"^1","")
        replace_all(Message,charsmax(Message),"^2","")
        replace_all(Message,charsmax(Message),"^3","")
        replace_all(Message,charsmax(Message),"^4","")
       
        if ( LOG == 1 ){
                new CurrentTime[20]
                get_time("%d/%m/%Y -- %H:%M",CurrentTime,charsmax(CurrentTime))
                format(Message,charsmax(Message),"[ %L ( %s ) ] -> %s ",0,"DATE",CurrentTime,Message)
               
                write_file(LOGFILE,Message,-1)
        }

}

public Remove_Graffiti(ent){
       
        if ( !is_nullent(ent) ) {
               
                new Float:Transparency
                get_entvar( ent, var_renderamt, Transparency)
                Transparency -= 2.55
               
                if ( Transparency <= 2.5 ){
                        set_entvar( ent , var_flags , FL_KILLME )
                }
                else
                {
                        set_entvar( ent, var_renderamt, Transparency)                       
                        set_entvar(ent, var_nextthink, get_gametime( ) + ( float(Cvar_fade_away_time) / 100.0 ) )
                }
               
        }
}

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

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

×
×
  • Dodaj nową pozycję...