RSSy MYGO.pl Opublikowano Wrzesień 9, 2023 o 16:58 RSSy Udostępnij Opublikowano Wrzesień 9, 2023 o 16:58 Hello, can anyone help me ? I have this knife accessory for points. but when I buy 1 knife when changing maps it doesn't remember the knife and I have to choose it again. Can someone help me remember it? PHP Code: /* * * [ Knife Shop v 1.5 ] * * * v1.0 * - Iniciacion del plugin. * * v1.2 * - Optimizacion de if's * * v1.3 * - Agregada cvar para recibir puntos * * v1.4 * - Depuracion de codigo * * v1.5 * - Plugin Rehecho y optimizado * - EXTRA: Agregado Guardado Adv Vault * */ #include <amxmodx> #include <engine> #include <fakemeta> #include <hamsandwich> #include <adv_vault> new const KS_PLUGIN[] = "Knife Shop" new const KS_VERSION[] = "1.5" new const KS_AUTHOR[] = "zoolk" enum DATA_KNIFES { NAME[40], COST, V_MDL[50], P_MDL[50] } new const szKnifes[][DATA_KNIFES] = { { "Gut", 20, "models/ksKnifes/gut/v_gut.mdl", "models/ksKnifes/gut/p_gut.mdl" }, { "Flip", 50, "models/ksKnifes/flip/v_flip.mdl", "models/ksKnifes/flip/p_flip.mdl" }, { "Karambit", 100, "models/ksKnifes/karambit/v_karambit.mdl", "models/ksKnifes/karambit/p_karambit.mdl" }, { "M9 Bayonet", 200, "models/ksKnifes/m9_bayonet/v_m9_bayonet.mdl", "models/ksKnifes/m9_bayonet/p_m9_bayonet.mdl" } } enum { FIELD_POINTS = 0, FIELD_SPDKNIFE, MAX_FIELDS } new g_fields[MAX_FIELDS] new g_vault new g_playername[33][32] new g_spdknife[33][sizeof szKnifes] new g_hasknife[33] new g_points[33] new cvr_points_per_kill public plugin_init() { register_plugin(KS_PLUGIN, KS_VERSION, KS_AUTHOR) cvr_points_per_kill = register_cvar("amx_puntos_muerte", "1") register_clcmd("nightvision", "ShowKnifesMenu") RegisterHam(Ham_Item_Deploy, "weapon_knife", "fw_Ham_Item_Deploy_Post", true) RegisterHam(Ham_Killed, "player", "fw_Ham_Killed_Post", true) g_vault = adv_vault_open("DATOS_KNIFES", false) g_fields[FIELD_POINTS] = adv_vault_register_field(g_vault, "PUNTOS") g_fields[FIELD_SPDKNIFE] = adv_vault_register_field(g_vault, "KNIFES_COMPRADOS", DATATYPE_ARRAY, sizeof szKnifes) adv_vault_init(g_vault) } public client_putinserver(id) { get_user_name(id, g_playername[id], charsmax(g_playername[])) g_points[id] = 0 g_hasknife[id] = -1 for(new i = 0; i < sizeof szKnifes; i++) g_spdknife[id][i] = false load_data(id) } public client_disconnect(id) { save_data(id) } public plugin_precache() { for(new i = 0; i < sizeof szKnifes; i++) { precache_model(szKnifes[i][V_MDL]) precache_model(szKnifes[i][P_MDL]) } } public ShowKnifesMenu(id) { new menu, len[100] formatex(len, charsmax(len), "Tienda de Cuchillos^n\yPuntos: \r%d", g_points[id]) menu = menu_create(len, "CmdKnifesMenu") for(new i = 0; i < sizeof szKnifes; i++) { if(g_spdknife[id][i]) { formatex(len, charsmax(len), "%s", szKnifes[i][NAME]) if(g_hasknife[id] == i) add(len, charsmax(len), " \y[ACTIVO]") } else { if(g_points[id] >= szKnifes[i][COST]) formatex(len, charsmax(len), "%s \y[COMPRAR]", szKnifes[i][NAME]) else formatex(len, charsmax(len), "%s \r$%d", szKnifes[i][NAME], szKnifes[i][COST]) } menu_additem(menu, len) } menu_display(id, menu) } public CmdKnifesMenu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED; } if(g_spdknife[id][item]) { if(g_hasknife[id] == item) client_print(id, print_chat, "Ya tienes este knife Activo") else { g_hasknife[id] = item client_print(id, print_chat, "Has seleccionado el knife %s", szKnifes[item][NAME]) if(get_user_weapon(id) == CSW_KNIFE) { entity_set_string(id, EV_SZ_viewmodel, szKnifes[item][V_MDL]) entity_set_string(id, EV_SZ_weaponmodel, szKnifes[item][P_MDL]) } } } else { if(g_points[id] >= szKnifes[item][COST]) { g_spdknife[id][item] = true g_points[id] -= szKnifes[item][COST] client_print(id, print_chat, "Has comprado el knife %s", szKnifes[item][NAME]) ShowKnifesMenu(id) } else client_print(id, print_chat, "Te faltan %d puntos para poder compar el knife %s", szKnifes[item][COST] - g_points[id], szKnifes[item][NAME]) } return PLUGIN_HANDLED; } public fw_Ham_Item_Deploy_Post(weapon_ent) { new owner = get_pdata_cbase(weapon_ent, 41, 4) if(!pev_valid(owner) || g_hasknife[owner] == -1) return HAM_IGNORED; entity_set_string(owner, EV_SZ_viewmodel, szKnifes[g_hasknife[owner]][V_MDL]) entity_set_string(owner, EV_SZ_weaponmodel, szKnifes[g_hasknife[owner]][P_MDL]) return HAM_IGNORED; } public fw_Ham_Killed_Post(victim, attacker, shouldgib) { if(victim == attacker || !is_user_alive(attacker)) return HAM_IGNORED; g_points[attacker] += get_pcvar_num(cvr_points_per_kill) return HAM_IGNORED; } public save_data(id) { adv_vault_set_start(g_vault) adv_vault_set_field(g_vault, g_fields[FIELD_POINTS], g_points[id]) adv_vault_set_field(g_vault, g_fields[FIELD_SPDKNIFE], g_spdknife[id]) adv_vault_set_end(g_vault, 0, g_playername[id]) } public load_data(id) { if(!adv_vault_get_prepare(g_vault, _, g_playername[id])) return; g_points[id] = adv_vault_get_field(g_vault, g_fields[FIELD_POINTS]) adv_vault_get_field(g_vault, g_fields[FIELD_SPDKNIFE], g_spdknife[id], sizeof g_spdknife[]) } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang2058\\ f0\\ fs16 \n\\ par } */ Przeczytaj cały wpis Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi