buyur kardeşim denedim çalışıyor.
Kod:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#define ADMIN_FLAG ADMIN_LEVEL_H // Admin yetkisi için flag
new g_hasCustomSpread[33][CSW_P90 + 1] // Her silah için ayrı ayar
public plugin_init() {
register_plugin("Admin Custom Spread", "1.0", "Mehmetxkonya")
register_event("CurWeapon", "event_curweapon", "be", "1=1")
register_clcmd("say /sekme", "cmd_open_menu") // /sekme yazınca menü aç
register_menucmd(register_menuid("WeaponMenu"), 1023, "menu_handler") // Menü işleyici
}
public cmd_open_menu(id) {
if (!(get_user_flags(id) & ADMIN_FLAG)) {
client_print(id, print_chat, "Bu komutu kullanmak icin yetkiniz yok.")
return PLUGIN_HANDLED
}
show_weapon_menu(id)
return PLUGIN_HANDLED
}
public show_weapon_menu(id) {
new menu[512], len = 0
len += formatex(menu[len], charsmax(menu) - len, "\ySilah Sekme Ayarlari^n^n")
len += formatex(menu[len], charsmax(menu) - len, "\w1. AK47: %s^n", g_hasCustomSpread[id][CSW_AK47] ? "\yAçık" : "\rKapalı")
len += formatex(menu[len], charsmax(menu) - len, "\w2. M4A1: %s^n", g_hasCustomSpread[id][CSW_M4A1] ? "\yAçık" : "\rKapalı")
len += formatex(menu[len], charsmax(menu) - len, "\w3. AWP: %s^n", g_hasCustomSpread[id][CSW_AWP] ? "\yAçık" : "\rKapalı")
len += formatex(menu[len], charsmax(menu) - len, "\w4. DEAGLE: %s^n", g_hasCustomSpread[id][CSW_DEAGLE] ? "\yAçık" : "\rKapalı")
len += formatex(menu[len], charsmax(menu) - len, "\w5. Tümünü Kapat^n")
len += formatex(menu[len], charsmax(menu) - len, "^n\w0. Çıkış")
show_menu(id, MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_0, menu, -1, "WeaponMenu")
}
public menu_handler(id, key) {
switch (key) {
case 0: { // AK47
g_hasCustomSpread[id][CSW_AK47] = !g_hasCustomSpread[id][CSW_AK47]
client_print(id, print_chat, "AK47 Sekme: %s", g_hasCustomSpread[id][CSW_AK47] ? "Açık" : "Kapalı")
}
case 1: { // M4A1
g_hasCustomSpread[id][CSW_M4A1] = !g_hasCustomSpread[id][CSW_M4A1]
client_print(id, print_chat, "M4A1 Sekme: %s", g_hasCustomSpread[id][CSW_M4A1] ? "Açık" : "Kapalı")
}
case 2: { // AWP
g_hasCustomSpread[id][CSW_AWP] = !g_hasCustomSpread[id][CSW_AWP]
client_print(id, print_chat, "AWP Sekme: %s", g_hasCustomSpread[id][CSW_AWP] ? "Açık" : "Kapalı")
}
case 3: { // DEAGLE
g_hasCustomSpread[id][CSW_DEAGLE] = !g_hasCustomSpread[id][CSW_DEAGLE]
client_print(id, print_chat, "DEAGLE Sekme: %s", g_hasCustomSpread[id][CSW_DEAGLE] ? "Açık" : "Kapalı")
}
case 4: { // Tümünü Kapat
for (new i = 1; i <= CSW_P90; i++) {
g_hasCustomSpread[id][i] = 0
}
client_print(id, print_chat, "Tüm silahlar için sekme kapatıldı.")
}
case 9: { // Çıkış
return PLUGIN_HANDLED
}
}
show_weapon_menu(id) // Menüyü tekrar göster
return PLUGIN_HANDLED
}
public event_curweapon(id) {
if (!is_user_alive(id))
return
new weapon = read_data(2) // Oyuncunun elindeki silahın ID'si
if (g_hasCustomSpread[id][weapon]) {
// Oyuncunun silahının spread ve tepme değerlerini sıfırla
set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0})
set_pev(id, pev_v_angle, Float:{0.0, 0.0, 0.0})
}
}
public client_PreThink(id) {
if (!is_user_alive(id))
return
new weapon = get_user_weapon(id)
if (g_hasCustomSpread[id][weapon]) {
// Oyuncunun görüş açısını ve tepme değerini sabit tut
set_pev(id, pev_punchangle, Float:{0.0, 0.0, 0.0})
set_pev(id, pev_v_angle, Float:{0.0, 0.0, 0.0})
}
}