Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSShelp with knife menu


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
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_PLUGINKS_VERSIONKS_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_ARRAYsizeof szKnifes)
    
    
adv_vault_init(g_vault)
}

public 
client_putinserver(id)
{
    
get_user_name(idg_playername[id], charsmax(g_playername[]))
    
    
g_points[id] = 0
    g_hasknife
[id] = -1
    
    
for(new 0sizeof szKnifesi++)
        
g_spdknife[id][i] = false
    
    load_data
(id)
}

public 
client_disconnect(id)
{
    
save_data(id)
}

public 
plugin_precache()
{
    for(new 
0sizeof szKnifesi++)
    {
        
precache_model(szKnifes[i][V_MDL])
        
precache_model(szKnifes[i][P_MDL])
    }
}

public 
ShowKnifesMenu(id)
{
    new 
menulen[100]
    
    
formatex(lencharsmax(len), "Tienda de Cuchillos^n\yPuntos: \r%d"g_points[id])
    
menu menu_create(len"CmdKnifesMenu")
    
    for(new 
0sizeof szKnifesi++)
    {
        if(
g_spdknife[id][i])
        {
            
formatex(lencharsmax(len), "%s"szKnifes[i][NAME])
            
            if(
g_hasknife[id] == i)
                
add(lencharsmax(len), " \y[ACTIVO]")
                
        }
        else
        {
            if(
g_points[id] >= szKnifes[i][COST])
                
formatex(lencharsmax(len), "%s \y[COMPRAR]"szKnifes[i][NAME])
            else
                
formatex(lencharsmax(len), "%s \r$%d"szKnifes[i][NAME], szKnifes[i][COST])
        }
        
        
menu_additem(menulen)
    }
    
    
menu_display(idmenu)
}

public 
CmdKnifesMenu(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    
    if(
g_spdknife[id][item])
    {
        if(
g_hasknife[id] == item)
            
client_print(idprint_chat"Ya tienes este knife Activo")
        else
        {
            
g_hasknife[id] = item
            client_print
(idprint_chat"Has seleccionado el knife %s"szKnifes[item][NAME])
            
            if(
get_user_weapon(id) == CSW_KNIFE)
            {
                
entity_set_string(idEV_SZ_viewmodelszKnifes[item][V_MDL])
                
entity_set_string(idEV_SZ_weaponmodelszKnifes[item][P_MDL])
            }
        }
    }
    else
    {
        if(
g_points[id] >= szKnifes[item][COST])
        {
            
g_spdknife[id][item] = true
            g_points
[id] -= szKnifes[item][COST]
            
client_print(idprint_chat"Has comprado el knife %s"szKnifes[item][NAME])
            
ShowKnifesMenu(id)
        }
        else
            
client_print(idprint_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_ent414)
    
    if(!
pev_valid(owner) || g_hasknife[owner] == -1)
        return 
HAM_IGNORED;
    
    
entity_set_string(ownerEV_SZ_viewmodelszKnifes[g_hasknife[owner]][V_MDL])
    
entity_set_string(ownerEV_SZ_weaponmodelszKnifes[g_hasknife[owner]][P_MDL])
    
    return 
HAM_IGNORED;
}

public 
fw_Ham_Killed_Post(victimattackershouldgib)
{
    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_vaultg_fields[FIELD_POINTS], g_points[id])
    
adv_vault_set_field(g_vaultg_fields[FIELD_SPDKNIFE], g_spdknife[id])
    
    
adv_vault_set_end(g_vault0g_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_vaultg_fields[FIELD_POINTS])
    
adv_vault_get_field(g_vaultg_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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...