RSSy MYGO.pl Opublikowano Lipiec 29, 2020 o 20:02 RSSy Udostępnij Opublikowano Lipiec 29, 2020 o 20:02 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi