Speed no aumenta
#1
Hola, tal cual dice el titulo tengo un sistema de habilidades que edite creo que es de clans si no me equivoco, resulta que al aumentar los puntos de habilidad en el speed este no aumenta lo trato de medir con un hud de velocidad pero me marca la velocidad normal por eso vengo a pedir ayuda a ver si alguien me ayuda a solucionar este problema, dejo el código abajo.

Código PHP:
#include <amxmodx> 
#include <amxmisc> 
#include <fun> 
#include <hamsandwich> 

new Ham:Ham_Player_ResetMaxSpeed Ham_Item_PreFrame 
enum _
:DATA_MEJORA MEJORA_NAME[10], MEJORA_COSTOMEJORA_MAX }
new 
g_szMejoras[][DATA_MEJORA] = {
    { 
"Chaleco"1310 }, 
    { 
"Velocidad"11}, 
    { 
"Gravedad"16
}
new 
gHabilidades[33][3], gPuntos[33]; 

#define chaleco(%1) (%1 * 10)  
#define velocidad(%1) (%1 * 10.00) 
#define gravedad(%1) (%1 * 0.07)   

public plugin_init() { 
    
register_clcmd("say /puntos" "show_menu_puntos")
    
RegisterHam(Ham_Player_ResetMaxSpeed"player""fw_Player_ResetMaxSpeed"1
    
RegisterHam(Ham_Spawn"player""fw_PlayerSpawn_Post"1)

public 
fw_PlayerSpawn_Post(id) {
    
set_user_armor(idget_user_armor(id) + chaleco(gHabilidades[id][0]))
    
set_user_gravity(idget_user_gravity(id) - gravedad(gHabilidades[id][1]))
}
public 
fw_Player_ResetMaxSpeed(id) {
    if(!
is_user_alive(id)) return;

    
set_user_maxspeed(idget_user_maxspeed(id) + velocidad(gHabilidades[id][2]))
}
public 
show_menu_puntos(id) {    
    new 
szText[500], menu;
    
formatex(szTextcharsmax(szText), "\r[ESCONDIDAS LVL]^n\wSelecciona la Habilidad a Mejorar^nTienes \r%d Punto%s\w actualmente"gPuntos[id], (gPuntos[id] == 1) ? "" "s")
    
menu menu_create(szText"h_puntos");
    
    for(new 
0sizeof g_szMejorasi++) { 
        if(
gHabilidades[id][i] == g_szMejoras[i][MEJORA_MAX]) { 
            
formatex(szTextcharsmax(szText), "\d%s [ %d/%d ] \r( COMPLETADO )"g_szMejoras[i][MEJORA_NAME], gHabilidades[id][i], g_szMejoras[i][MEJORA_MAX])
        }
        else {
            if(
gPuntos[id] >= g_szMejoras[i][MEJORA_COSTO]) {
                
formatex(szTextcharsmax(szText), "\wAumentar %s \d[ \r%d\d/\r%d\d ] \d( \w%d Punto%s \d)"g_szMejoras[i][MEJORA_NAME], gHabilidades[id][i], g_szMejoras[i][MEJORA_MAX], g_szMejoras[i][MEJORA_COSTO], (g_szMejoras[i][MEJORA_COSTO] > 1) ? "s" "")  
            }
            else  {
                
formatex(szTextcharsmax(szText), "\dAumentar %s [ %d/%d ] ( %d Punto%s )"g_szMejoras[i][MEJORA_NAME], gHabilidades[id][i], g_szMejoras[i][MEJORA_MAX], g_szMejoras[i][MEJORA_COSTO], (g_szMejoras[i][MEJORA_COSTO] > 1) ? "s" "")            
            }
        }
        
menu_additem(menuszText); 
    } 
    
menu_setprop(menuMPROP_EXITNAME"Salir"); 
    
menu_display(idmenu0)

public 
h_puntos(idmenuitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(menu); 
        return 
PLUGIN_HANDLED;
    }
    if(
gPuntos[id] < g_szMejoras[item][MEJORA_COSTO]) {
        
Color(id"Necesitas !t%d!y punto%s para mejorar !g%s!y."g_szMejoras[item][MEJORA_COSTO], (g_szMejoras[item][MEJORA_COSTO] > 1) ? "s" ""g_szMejoras[item][MEJORA_NAME])
        
client_cmd(id"spk buttons/button10.wav")
        return 
PLUGIN_HANDLED;
    } 
    if(
gHabilidades[id][item] == g_szMejoras[item][MEJORA_MAX]) { 
        
Color(id"Subiste el maximo de puntos para la mejora !g%s!y."g_szMejoras[item][MEJORA_NAME])
        
client_cmd(id"spk buttons/button10.wav"); 
        return 
PLUGIN_HANDLED
    }
    
gPuntos[id] -= g_szMejoras[item][MEJORA_COSTO
    
gHabilidades[id][item]++; 
    
Color(id"Subiste la mejora !t%s!y ahora tienes !g%d / %d!y completada de ella."g_szMejoras[item][MEJORA_NAME], gHabilidades[id][item], g_szMejoras[item][MEJORA_MAX]) 
    
show_menu_puntos(id)
    
menu_destroy(menu);

    return 
PLUGIN_HANDLED;

stock Color(const id, const Text[], any:...) { 
    new 
count 1players[32];
    static 
msg[191], leni;
    
    
len formatex(msgcharsmax(msg), "!g[ESCONDIDAS LVL]!y ")
    
vformat(msg[len], 190 lenText3);
    
    
replace_all(msg190"!g""^4");
    
replace_all(msg190"!y""^1");
    
replace_all(msg190"!t""^3");
    
    if(
id
        
players[0] = id;
    else 
        
get_players(playerscount"ch");
             
    for( 
0count; ++i) {
        if(
is_user_connected(players[i])) 
            
writeMessage(players[i], msg);    
    }
}
stock writeMessage(playermessage[]) {
    
message_begin(MSG_ONEget_user_msgid("SayText"), { 00}, player);
    
write_byte(player);
    
write_string(message);
    
message_end();


pd: no esta el register_plugin(blabla) ya que este plugin lo tenia editado para adaptarlo.
Responder
#2
Intenta tratar de setear el speed en con client_PreThink(id) de engine, capas pueda servir.
Responder
#3
ya intente antes y no anda, aparte de eso encontré otro fallo ya que cuando incremento los puntos de velocidad se me disminuye la gravedad, ni idea de que sea ojala me echen una mano estoy buscando soluciones por internet y sin resultados positivos. Triste
Responder
#4
Código PHP:
new g_szMejoras[][DATA_MEJORA] = {
    "Chaleco"1310 }, 
    "Velocidad"11}, 
    "Gravedad"16

--------->

Código PHP:
new g_szMejoras[][DATA_MEJORA] = {
    "Chaleco"1310 }, 
    "Gravedad"16}, 
    "Velocidad"11

Responder
#5
Oh god why Oh god why

Nunca se me paso por la mente el orden, muchas gracias sos un crack. Sonrisa
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)