Merhaba arkadaşlar ben gerçekten bazı konularda istediğim yardımı alamadım. nickimden dolayı olduğunu düşünüyorum. ama neyse ben ini dosyasındaki isimlere mermi sektirmeme özelliği verebilen bir plugin yazlaya(editlemeye) çalıştım ancak birkaç hata var ki bullet.ini içine tırnak içindeşeklinde ismi yazmama rağmen bana mermi sekmeme özelliği vermedi.HTML-Kodu:"klan # oyuncuismi"
Pluginin Kodları:
PHP- Kodu:
#define PLUGIN_NAME "Isme Ozel Mermi Sekmeme" #define PLUGIN_VERSION "0.1" #define PLUGIN_AUTHOR "Mr.Faik"
#include <amxmodx> #include <amxmisc>#include <cstrike>#include <fakemeta> #include <xs>
#define MAX_CLIENTS 32 new g_normal_trace[MAX_CLIENTS + 1] new bool:g_fix_punchangle[MAX_CLIENTS + 1]
new g_fwid new g_max_clients
new const g_guns_events[][] = { "events/awp.sc", "events/g3sg1.sc", "events/ak47.sc", "events/scout.sc", "events/m249.sc", "events/m4a1.sc", "events/sg552.sc", "events/aug.sc", "events/sg550.sc", "events/m3.sc", "events/xm1014.sc", "events/usp.sc", "events/mac10.sc", "events/ump45.sc", "events/fiveseven.sc", "events/p90.sc", "events/deagle.sc", "events/p228.sc", "events/glock18.sc", "events/mp5n.sc", "events/tmp.sc", "events/elite_left.sc", "events/elite_right.sc", "events/galil.sc", "events/famas.sc" }
new g_guns_eventids_bitsum
public plugin_precache() { g_fwid = register_forward(FM_PrecacheEvent, "fwPrecacheEvent", 1) }
public fwPrecacheEvent(type, const name[]) { for (new i = 0; i < sizeof g_guns_events; ++i) { if (equal(g_guns_events[i], name)) { g_guns_eventids_bitsum |= (1<<get_orig_retval()) return FMRES_HANDLED } }
return FMRES_IGNORED }
public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
unregister_forward(FM_PrecacheEvent, g_fwid, 1)
register_forward(FM_PlaybackEvent, "fwPlaybackEvent") register_forward(FM_PlayerPostThink, "fwPlayerPostThink", 1) register_forward(FM_TraceLine, "fwTraceLine")
g_max_clients = global_get(glb_maxClients) }
public fwPlaybackEvent(flags, invoker, eventid) { if (!(g_guns_eventids_bitsum & (1<<eventid)) || !(1 <= invoker <= g_max_clients)) return FMRES_IGNORED
g_fix_punchangle[invoker] = true
return FMRES_HANDLED }
public fwPlayerPostThink(id) { new name[32]; get_user_name(id, name, 31);format(name, charsmax(name), "%s/bullet.ini", name); if (g_fix_punchangle[id] && equali(name, "%s/bullet.ini")) { g_fix_punchangle[id] = false set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0}) return FMRES_HANDLED }
return FMRES_IGNORED }
public fwTraceLine(const Float:start[3], const Float:dest[3], ignore_monsters, id, ptr) { if (!(1 <= id <= g_max_clients)) return FMRES_IGNORED
if (!g_normal_trace[id]) { g_normal_trace[id] = ptr return FMRES_HANDLED }
if (ptr == g_normal_trace[id] || ignore_monsters != DONT_IGNORE_MONSTERS || !is_user_alive(id)) return FMRES_IGNORED
fix_recoil_trace(id, start, ptr)
return FMRES_SUPERCEDE }
public client_connect(id) { g_normal_trace[id] = 0 }
fix_recoil_trace(id, const Float:start[], ptr) { static Float:dest[3] pev(id, pev_v_angle, dest) engfunc(EngFunc_MakeVectors, dest) global_get(glb_v_forward, dest) xs_vec_mul_scalar(dest, 9999.0, dest) xs_vec_add(start, dest, dest) engfunc(EngFunc_TraceLine, start, dest, DONT_IGNORE_MONSTERS, id, ptr) }