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 }
*/