Armas x Reset
#1
Existe algún sistema de reset que se como el sistema de niveles del gungame? que por ejemplo, al llegar al reset 1 te desbloquee un arma y así sucesivamente... Excitedeyes
Hazlo, y si te da miedo, hazlo con miedo.
Responder
#2
Esto es lo que se me ocurrio por lo que entendi
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fun>

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "HK-416"

#define MAX_LEVEL 100
#define DIFICULTAD_LEVEL(%1)    ((%1 * 10) * 2) 

new g_level[33]
new 
g_frags[33]
new 
g_reset[33]

enum _:arm
{
    
ARMA_NOMBRE[32],
    
ARMA_WEAPON_ID[31],
    
ARMA_CSW,
    
ARMA_LVL,
    
ARMA_RR
}

new const 
ARMAS[][arm] = {
    { 
"MAC-10""weapon_mac10",    CSW_MAC1010},
    { 
"UMP-45""weapon_ump45"CSW_UMP45100},
    { 
"AK-47""weapon_ak47"CSW_AK47,    201}
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /guns""show_guns")
    
register_clcmd("say /rr""show_reset")

    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
}

public 
client_putinserver(id)
    
set_task(0.1"show_hud"id+1234,_,_,"b")

public 
client_disconnect(id)
    
remove_task(id+1234)

public 
show_guns(id)
{
    new 
menutex[350], rr[100]
    
menu menu_create("Armas Primarias""hand_guns")
    for (new 
0sizeof ARMASi++)
    {
        if (
ARMAS[i][ARMA_RR] > 0)
            
formatex(rrcharsmax(rr), "Rr: %d"ARMAS[i][ARMA_RR])
        else
            
formatex(rrcharsmax(rr), "")

        if (
g_level[id] >= ARMAS[i][ARMA_LVL] && g_reset[id] >= ARMAS[i][ARMA_RR])
            
formatex(texcharsmax(tex), "%s"ARMAS[i][ARMA_NOMBRE])
        else
            
formatex(texcharsmax(tex), "%s \rLvl: %d %s"ARMAS[i][ARMA_NOMBRE], ARMAS[i][ARMA_LVL], rr)

        
menu_additem(menutex)
    }
    
menu_display(idmenu0)
}

public 
hand_guns(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    if (
g_level[id] < ARMAS[item][ARMA_LVL] && g_reset[id] < ARMAS[item][ARMA_RR])
    {
        
client_print(idprint_chat"No cumples con los requisitos")
        
show_guns(id)
        return 
PLUGIN_HANDLED;
    }
    
strip_user_weapons(id)
    
give_item(id"weapon_knife")
    
give_item(idARMAS[item][ARMA_WEAPON_ID])
    return 
PLUGIN_HANDLED;
}

public 
check_level(id)
{
    new 
bool:subio false;
    while (
g_frags[id] >= DIFICULTAD_LEVEL(g_level[id]) && g_level[id] < MAX_LEVEL)
    {
        
g_level[id] ++
        
subio true;
    }
    if (
subio)
        
client_print(idprint_center"Subiste de nivel")
}

public 
show_hud(id)
{
    
id -= 1234
    set_hudmessage
(255000.00.006.02.0)
    
show_hudmessage(id"Frags: %d / %d^nNivel: %d / %d^nResets: %d"g_frags[id], DIFICULTAD_LEVEL(g_level[id]), g_level[id], MAX_LEVELg_reset[id])
}

public 
fw_PlayerKilled(victimattackershouldgib)
{
    if (
victim == attacker)
        return;

    
g_frags[attacker] ++
    
check_level(attacker)
}

public 
show_reset(id)
{
    new 
menu menu_create("Menu de \yReset^n^n\rRequisitos^n\y1. \wNivel Minimo \r100^n^n\yBeneficios^n1. \wNuevo Armamento""hand_rr")

    
menu_additem(menu"Hacer reset""1")

    
menu_display(idmenu0)
}

public 
hand_rr(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    if (
g_level[id] < 100)
    {
        
client_print(idprint_chat"No tienes el nivel minimo")
        
show_reset(id)
        return 
PLUGIN_HANDLED;
    }
    
g_level[id] = 1
    g_reset
[id] ++
    
g_frags[id] = 0
    
return PLUGIN_HANDLED;

“Quien te quiere en su vida, volverá a buscarte”
Qué frase más estúpida
Porque quien te quiere en su vida, jamás se iría.
Responder
#3
(21/08/2018, 08:23 PM)HK-416 escribió: Esto es lo que se me ocurrio por lo que entendi
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <fun>

#define PLUGIN  "New Plug-In"
#define VERSION "1.0"
#define AUTHOR  "HK-416"

#define MAX_LEVEL 100
#define DIFICULTAD_LEVEL(%1)    ((%1 * 10) * 2) 

new g_level[33]
new 
g_frags[33]
new 
g_reset[33]

enum _:arm
{
    
ARMA_NOMBRE[32],
    
ARMA_WEAPON_ID[31],
    
ARMA_CSW,
    
ARMA_LVL,
    
ARMA_RR
}

new const 
ARMAS[][arm] = {
    { 
"MAC-10""weapon_mac10",    CSW_MAC1010},
    { 
"UMP-45""weapon_ump45"CSW_UMP45100},
    { 
"AK-47""weapon_ak47"CSW_AK47,    201}
}

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /guns""show_guns")
    
register_clcmd("say /rr""show_reset")

    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
}

public 
client_putinserver(id)
    
set_task(0.1"show_hud"id+1234,_,_,"b")

public 
client_disconnect(id)
    
remove_task(id+1234)

public 
show_guns(id)
{
    new 
menutex[350], rr[100]
    
menu menu_create("Armas Primarias""hand_guns")
    for (new 
0sizeof ARMASi++)
    {
        if (
ARMAS[i][ARMA_RR] > 0)
            
formatex(rrcharsmax(rr), "Rr: %d"ARMAS[i][ARMA_RR])
        else
            
formatex(rrcharsmax(rr), "")

        if (
g_level[id] >= ARMAS[i][ARMA_LVL] && g_reset[id] >= ARMAS[i][ARMA_RR])
            
formatex(texcharsmax(tex), "%s"ARMAS[i][ARMA_NOMBRE])
        else
            
formatex(texcharsmax(tex), "%s \rLvl: %d %s"ARMAS[i][ARMA_NOMBRE], ARMAS[i][ARMA_LVL], rr)

        
menu_additem(menutex)
    }
    
menu_display(idmenu0)
}

public 
hand_guns(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    if (
g_level[id] < ARMAS[item][ARMA_LVL] && g_reset[id] < ARMAS[item][ARMA_RR])
    {
        
client_print(idprint_chat"No cumples con los requisitos")
        
show_guns(id)
        return 
PLUGIN_HANDLED;
    }
    
strip_user_weapons(id)
    
give_item(id"weapon_knife")
    
give_item(idARMAS[item][ARMA_WEAPON_ID])
    return 
PLUGIN_HANDLED;
}

public 
check_level(id)
{
    new 
bool:subio false;
    while (
g_frags[id] >= DIFICULTAD_LEVEL(g_level[id]) && g_level[id] < MAX_LEVEL)
    {
        
g_level[id] ++
        
subio true;
    }
    if (
subio)
        
client_print(idprint_center"Subiste de nivel")
}

public 
show_hud(id)
{
    
id -= 1234
    set_hudmessage
(255000.00.006.02.0)
    
show_hudmessage(id"Frags: %d / %d^nNivel: %d / %d^nResets: %d"g_frags[id], DIFICULTAD_LEVEL(g_level[id]), g_level[id], MAX_LEVELg_reset[id])
}

public 
fw_PlayerKilled(victimattackershouldgib)
{
    if (
victim == attacker)
        return;

    
g_frags[attacker] ++
    
check_level(attacker)
}

public 
show_reset(id)
{
    new 
menu menu_create("Menu de \yReset^n^n\rRequisitos^n\y1. \wNivel Minimo \r100^n^n\yBeneficios^n1. \wNuevo Armamento""hand_rr")

    
menu_additem(menu"Hacer reset""1")

    
menu_display(idmenu0)
}

public 
hand_rr(idmenuitem)
{
    if (
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED;
    }
    if (
g_level[id] < 100)
    {
        
client_print(idprint_chat"No tienes el nivel minimo")
        
show_reset(id)
        return 
PLUGIN_HANDLED;
    }
    
g_level[id] = 1
    g_reset
[id] ++
    
g_frags[id] = 0
    
return PLUGIN_HANDLED;


Pero los frags no los cuenta, siempre están en 0/0
Hazlo, y si te da miedo, hazlo con miedo.
Responder
#4
Los cuenta perfectamente. Fíjate si te da algún log en consola, puedes que lo hayas copiado mal.
   
Steam
Responder
#5
Código PHP:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Sky^^"

enum _:EWEAPONS E_CSWE_WEAPON30 ], E_BPAMMOE_FRAGS };

new const 
szWEAPONS[ ][ EWEAPONS ] = {
    
// CSW        // WEAPON      // BALAS(BPAMMO)    // FRAGS REQUERIDAS
    
CSW_M4A1"weapon_m4a1"999},
    { 
CSW_AK47"weapon_ak47"999}
};

public 
plugin_init( ) {
    
register_pluginPLUGINVERSIONAUTHOR );
    
RegisterHamHam_Spawn"player""ham_SpawnPlayer" );
}

public 
ham_SpawnPlayerid ) {
    if( !
is_user_aliveid ) ) return;
    
    
set_task0.5"fn_GiveWeapons"id );
}

public 
fn_GiveWeaponsid ) {
    if( !
is_user_aliveid ) ) return;
    
    
strip_user_weaponsid );
    
give_itemid"weapon_knife" );
    
    new 
iwpn;
    
wpn = -1;
    
    for( 
0sizeofszWEAPONS ); i++ ) {
        if( 
get_user_fragsid ) >= szWEAPONS][ E_FRAGS ] )
            
wpn i;
    }
    
    if( 
wpn >= )
        
give_itemidszWEAPONSwpn ][ E_WEAPON ] );
        
cs_set_user_bpammoidszWEAPONSwpn ][ E_CSW ], szWEAPONSwpn ][ E_BPAMMO ] );
    }


Agregale vos el sistema de reset

Responder
#6
(21/08/2018, 11:30 PM)Pablo_1998 escribió: Los cuenta perfectamente. Fíjate si te da algún log en consola, puedes que lo hayas copiado mal.

A ti te sale Frags 3/20 pero a mí me sale 0/0, en dónde configuro los frags que quiero para que suba de lvl?
Hazlo, y si te da miedo, hazlo con miedo.
Responder
#7
para definir las frags requeridas, usa un macro

Código PHP:
#define DIFICULTAD_LEVEL(%1)    ((%1 * 10) * 2) 

ejemplo para el nivel 1, te pide las siguientes frags como dice la operacion matematica

((Nivel *10)*2)

Si no te cuenta las frags, algo haces mal, pasa los logs
Si no te gusta algo, cámbialo. Si no lo puedes cambiar, cambia la forma en que piensas sobre ello <3
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)