Mr.Commander
2 Beğeni
PHP Kod:
#include <amxmodx>
#include <reapi>
#include <nvault>
new const g_szBicaklar[][][] = {
{"Default", "models/v_knife.mdl"},
{"Butterfly", "models/knives/v_butterfly.mdl"},
{"Flip", "models/knives/v_flip.mdl"},
{"Karambit", "models/knives/v_karambit.mdl"},
{"M9Bayonet", "models/knives/v_m9bayonet.mdl"}
};
new g_iBicak[MAX_PLAYERS+1];
new bool:g_bBicakSecildi[MAX_PLAYERS+1];
new g_vault;
public plugin_init() {
register_plugin("Bicak Menu", "1.0", "bilalgecer47");
register_clcmd("say /knife","BicakMenusu");
register_clcmd("say .knife","BicakMenusu");
register_clcmd("say /bicak","BicakMenusu");
register_clcmd("say .bicak","BicakMenusu");
register_clcmd("say /bic","BicakMenusu");
register_clcmd("say .bic","BicakMenusu");
RegisterHookChain(RG_CBasePlayerWeapon_DefaultDeploy, "BicakDegistir", false);
}
public plugin_precache() {
for(new i = 0; i < sizeof(g_szBicaklar); i++) {
precache_model(g_szBicaklar[i][1]);
}
}
public plugin_cfg() {
g_vault = nvault_open("eosm_bicaklar");
}
public plugin_end() {
nvault_close(g_vault);
}
public client_putinserver(id) {
if(is_user_bot(id)) return;
new szKey[64];
OyuncuKeyAl(id, szKey, charsmax(szKey));
new szData[12];
if(nvault_get(g_vault, szKey, szData, charsmax(szData))) {
g_iBicak[id] = str_to_num(szData);
g_bBicakSecildi[id] = true;
}
}
public BicakMenusu(id) {
new iMenu = menu_create("\rEOSM \w| \yKnife Menu", "MenuHandler");
for(new i = 0; i < sizeof(g_szBicaklar); i++) {
new szItem[128], szInfo[4];
if(g_bBicakSecildi[id] && g_iBicak[id] == i) {
formatex(szItem, charsmax(szItem), "%s \w[\yON\w]", g_szBicaklar[i][0]);
}
else {
formatex(szItem, charsmax(szItem), "%s \w[\rOFF\w]", g_szBicaklar[i][0]);
}
num_to_str(i, szInfo, charsmax(szInfo));
menu_additem(iMenu, szItem, szInfo);
}
menu_display(id, iMenu);
}
public MenuHandler(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new szData[6], szName[64], iAccess, iCallback;
menu_item_getinfo(menu, item, iAccess, szData, charsmax(szData), szName, charsmax(szName), iCallback);
if(equal(szData, "exit")) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new iBicak = str_to_num(szData);
if(g_bBicakSecildi[id] && g_iBicak[id] == iBicak) {
client_print_color(id, print_team_default, "^1[^4EOSM^1] Zaten bu bicagi kullanıyorsunuz.");
menu_destroy(menu);
return PLUGIN_HANDLED;
}
g_iBicak[id] = iBicak;
g_bBicakSecildi[id] = true;
new szKey[64];
OyuncuKeyAl(id, szKey, charsmax(szKey));
nvault_set(g_vault, szKey, fmt("%d", g_iBicak[id]));
client_print_color(id, print_team_default, "^1[^4EOSM^1] Menuden ^3%s ^1isimli bicak ^4aktif edildi.", g_szBicaklar[iBicak][0]);
if(get_user_weapon(id) == CSW_KNIFE) {
rg_remove_item(id, "weapon_knife");
rg_give_item(id, "weapon_knife");
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public BicakDegistir(const iBicak, szViewModel[], szWeaponModel[], iAnim, szAnimExt[], skiplocal) {
if(get_member(iBicak, m_iId) != WEAPON_KNIFE) return;
new id = get_member(iBicak, m_pPlayer);
if(g_bBicakSecildi[id]) {
SetHookChainArg(2, ATYPE_STRING, g_szBicaklar[g_iBicak[id]][1]);
}
}
stock OyuncuKeyAl(const id, szKey[], iLen) {
new szAuthID[32];
get_user_authid(id, szAuthID, charsmax(szAuthID));
if(contain(szAuthID, "STEAM_") == 0) {
copy(szKey, iLen, szAuthID);
}
else {
new szIP[16], szName[32];
get_user_ip(id, szIP, charsmax(szIP), 1);
get_user_name(id, szName, charsmax(szName));
formatex(szKey, iLen, "NS_%s_%s", szIP, szName);
}
}
@YUNUSBEYHATUN selam eklenti istediğin şekilde @Merhabalarr isimli arkadaş tarafından yapılmıştır. Ben sadece bir kaç ufak dokunuş ile test ettim ve görsellerinde çok az güncelleme yaptım.
Çözüldü olarak @Merhabalarr yaparsan sevinirim.
)

