Bug Coins
#1
hola, estoy usando un plugin de shop con coins, anda bien el tema que el models empieza a saltar. como puedo hacer para que se quede quieto?

Asi queda: http://imgfz.com/i/0Rc2L5b.png

Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Coins System"
#define VERSION "1.1"
#define AUTHOR "6u3oH"

#define CLASSNAME_DEFAULT "info_null"
#define CLASSNAME_SET "info_coin"
#define PATH_DATABASE "addons/amxmodx/data/coins_system.dat"
#define COIN_MODEL "models/Dinero.mdl"
#define COIN_SOUND "coin/coin.wav"

#define PDATA_KILLHEAD_OFFSET 75
#define PDATA_PLAYER_OFFSET 5

/*----------------------------------------------------------
 ------------------------ ÐÐ°ÑÑ‚ройки ------------------------
 ---------------------------------------------------------*/

#define VIP_FLAG ADMIN_LEVEL_G

#define COIN_GIVE_KILL 1 // Cuántas monedas dar por una simple muerte
#define COIN_GIVE_KILL_HEAD 1 // Â¿Cuántas monedas dar por una muerte en la cabeza?
#define COIN_GIVE_KILL_KNIFE 3 // Cuantas monedas dar por matar con un cuchillo

#define COIN_DROP_COINS // Comenta la línea para que las monedas del jugador no se caigan.
#define COIN_NUM_DROPKILL_MIN 1 // La cantidad mínima de monedas lanzadas cuando un jugador muere.
#define COIN_NUM_DROPKILL_MAX 1 // La cantidad máxima de monedas lanzadas cuando un jugador muere.

#define COIN_TIME_REMOVE 30 // Después de cuántos segundos se retiran las monedas caídas (el comentario se eliminará solo al final de la ronda)

/*----------------------------------------------------------
 ------------------------ Ajustes ------------------------
 ---------------------------------------------------------*/

new g_iMaxPlayers;
new 
g_iCoin[33];

public 
plugin_precache()
{
    
precache_model(COIN_MODEL);
    
precache_sound(COIN_SOUND);
}

public 
plugin_cfg() write_file(PATH_DATABASE"[Base de datos] [Coins System]"0);
public 
client_connect(idload_coins(id);
public 
client_disconnected(idsave_coins(id);

public 
plugin_natives()
{
    
register_native("get_user_coins""get_user_coins"true)
    
register_native("set_user_coins""set_user_coins"true)
}

public 
get_user_coins(id) return g_iCoin[id];
public 
set_user_coins(idiNumg_iCoin[id] = iNum;

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR);
    
    
RegisterHam(Ham_Killed"player""fw_KilledPlayerPost"true);
    
    
#if defined COIN_DROP_COINS
        
RegisterHam(Ham_TouchCLASSNAME_DEFAULT"fw_TouchCoinPost"true);
        
register_event("HLTV""Event_RoundStart""a""1=0""2=0");
        
#if defined COIN_TIME_REMOVE
            
RegisterHam(Ham_ThinkCLASSNAME_DEFAULT"fw_ThinkCoinPost"true);
        
#endif
    #endif

    
g_iMaxPlayers get_maxplayers();
    
set_task(2.0"Task_HudMsg", .flags "b");
}

public 
fw_KilledPlayerPost(iVictimiAttackeriCorpse)
{
    if(!
is_user_connected(iVictim))
        return;
    
    
#if defined COIN_DROP_COINS
    
if(g_iCoin[iVictim] > 0)
    {
        new 
FloatfOrigin[3], FloatfVelocity[3];
        
pev(iVictimpev_originfOrigin);
        
        new 
iRandom random_num(COIN_NUM_DROPKILL_MINCOIN_NUM_DROPKILL_MAX);
        
        for(new 
i<= iRandomi++)
        {
            if(!
g_iCoin[iVictim])
                break;
            
            new 
iEnt engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocStringCLASSNAME_DEFAULT));
            
            
set_pev(iEntpev_classnameCLASSNAME_SET);
            
set_pev(iEntpev_originfOrigin);
            
set_pev(iEntpev_solidSOLID_TRIGGER);
            
set_pev(iEntpev_movetypeMOVETYPE_BOUNCE);
            
            
engfunc(EngFunc_SetSizeiEntFloat: {-10.0, -10.0, -10.0}, Float: {10.010.010.0});
            
engfunc(EngFunc_SetModeliEntCOIN_MODEL);
    
    
            set_pev
(iEntpev_velocityfVelocity);
            
            
#if defined COIN_TIME_REMOVE
            
set_pev(iEntpev_nextthinkget_gametime() + COIN_TIME_REMOVE);
            
#endif
        
}
    }
    
#endif
    
    
if(!is_user_connected(iAttacker))
        return;
    
    if(
iVictim == iAttacker)
        return;
    
    new 
iGiveCoin g_iCoin[iAttacker];
    
    if(
iAttacker == pev(iVictimpev_dmg_inflictor) && get_user_weapon(iAttacker) == CSW_KNIFE)
        
iGiveCoin COIN_GIVE_KILL_KNIFE;
    else if(
get_pdata_int(iVictimPDATA_KILLHEAD_OFFSETPDATA_PLAYER_OFFSET) == HIT_HEAD)
        
iGiveCoin COIN_GIVE_KILL_HEAD;
    else
        
iGiveCoin COIN_GIVE_KILL;
        
    if(
get_user_flags(iAttacker) & VIP_FLAG)
        
iGiveCoin *= 2;
        
    
g_iCoin[iAttacker] += iGiveCoin;
        
    
set_hudmessage(02550, -1.00.2600.12.00.10.1, -1);
    
show_hudmessage(iAttacker""iGiveCoin);
}

#if defined COIN_DROP_COINS
public fw_TouchCoinPost(iEntid)
{
    if(!
pev_valid(iEnt) || !is_user_alive(id))
        return;
            
    static 
sClassName[32];
    
pev(iEntpev_classnamesClassNamecharsmax(sClassName));
        
    if(!
equal(sClassNameCLASSNAME_SET))
        return;
        
    
g_iCoin[id]++;
    
emit_sound(idCHAN_WEAPONCOIN_SOUNDVOL_NORMATTN_NORM0PITCH_NORM);
    
    
set_pev(iEntpev_flagspev(iEntpev_flags) | FL_KILLME);
}

public 
Event_RoundStart()
{
    new 
iEnt FM_NULLENT;
    
    while((
iEnt engfunc(EngFunc_FindEntityByStringiEnt"classname"CLASSNAME_SET)))
        if(
pev_valid(iEnt))
            
set_pev(iEntpev_flagspev(iEntpev_flags) | FL_KILLME);
}
#endif

#if defined COIN_TIME_REMOVE
public fw_ThinkCoinPost(iEnt)
{
    if(!
pev_valid(iEnt))
        return;
        
    static 
sClassName[32];
    
pev(iEntpev_classnamesClassNamecharsmax(sClassName));
    
    if(!
equal(sClassNameCLASSNAME_SET))
        return;
        
    
set_pev(iEntpev_flagspev(iEntpev_flags) | FL_KILLME);
}
#endif

public Task_HudMsg()
{
    
set_hudmessage(2002002000.010.9000.12.00.10.14);
    
    for(new 
id 1id g_iMaxPlayersid++)
    {
        if(!
is_user_alive(id))
            continue;
        
    }
}

public 
load_coins(id)
{
    new 
iLine 1iLensData[64], sKey[38], sAuthID[38];
    
get_user_authid(idsAuthIDcharsmax(sAuthID));
    
    while((
iLine read_file(PATH_DATABASEiLinesDatacharsmax(sData), iLen)))
    {
        
parse(sDatasKey37);
        
        if(
equal(sKeysAuthID))
        {
            
parse(sDatasKey37sKey37);
            
g_iCoin[id] = str_to_num(sKey);
            
            return;
        }
    }
    
    
g_iCoin[id] = 0;
}

public 
save_coins(id)
{
    new 
iLine 1iLensData[64], sKey[38], sAuthID[38];
    
get_user_authid(idsAuthIDcharsmax(sAuthID));
    
    while((
iLine read_file(PATH_DATABASEiLinesDatacharsmax(sData), iLen)))
    {
        
parse(sDatasKey37);
        
        if(
equal(sKeysAuthID))
        {
            
format(sDatacharsmax(sData), "%s %i"sAuthIDg_iCoin[id]);
            
write_file(PATH_DATABASEsDataiLine-1);
            
            return;
        }
    }
    
    
format(sDatacharsmax(sData), "%s %i"sAuthIDg_iCoin[id]);
    
write_file(PATH_DATABASEsData, -1);


Responder
#2
Prueba editando esta linea no recuerdo bien como era para que quede en el lugar
Código PHP:
engfunc(EngFunc_SetSizeiEntFloat: {-10.0, -10.0, -10.0}, Float: {10.010.010.0}); 
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
___________▀█▄▀▄▀██████__▀█▄▀▄▀██████
_____________▀█▄█▄███▀______▀█▄█▄███▀
Responder
#3
Código PHP:
/**
 * pev(entity, pev_movetype) values
 */
#define MOVETYPE_NONE                   0           // Never moves
#define MOVETYPE_WALK                   3           // Player only - moving on the ground
#define MOVETYPE_STEP                   4           // Gravity, special edge handling -- monsters use this
#define MOVETYPE_FLY                    5           // No gravity, but still collides with stuff
#define MOVETYPE_TOSS                   6           // Gravity/Collisions
#define MOVETYPE_PUSH                   7           // No clip to world, push and crush
#define MOVETYPE_NOCLIP                 8           // No gravity, no collisions, still do velocity/avelocity
#define MOVETYPE_FLYMISSILE             9           // Extra size to monsters
#define MOVETYPE_BOUNCE                 10          // Just like Toss, but reflect velocity when contacting surfaces
#define MOVETYPE_BOUNCEMISSILE          11          // Bounce w/o gravity
#define MOVETYPE_FOLLOW                 12          // Track movement of aiment
#define MOVETYPE_PUSHSTEP               13          // BSP model that needs physics/world collisions (uses nearest hull for world collision) 

Esas son los tipos de movimiento que soporta el engine

Código PHP:
set_pev(iEntpev_movetypeMOVETYPE_BOUNCE); 

------->

Código PHP:
set_pev(iEntpev_movetypeMOVETYPE_NONE); 
Responder
#4
(01/09/2021, 10:51 PM)GabsHp escribió:
Código PHP:
/**
 * pev(entity, pev_movetype) values
 */
#define MOVETYPE_NONE                   0           // Never moves
#define MOVETYPE_WALK                   3           // Player only - moving on the ground
#define MOVETYPE_STEP                   4           // Gravity, special edge handling -- monsters use this
#define MOVETYPE_FLY                    5           // No gravity, but still collides with stuff
#define MOVETYPE_TOSS                   6           // Gravity/Collisions
#define MOVETYPE_PUSH                   7           // No clip to world, push and crush
#define MOVETYPE_NOCLIP                 8           // No gravity, no collisions, still do velocity/avelocity
#define MOVETYPE_FLYMISSILE             9           // Extra size to monsters
#define MOVETYPE_BOUNCE                 10          // Just like Toss, but reflect velocity when contacting surfaces
#define MOVETYPE_BOUNCEMISSILE          11          // Bounce w/o gravity
#define MOVETYPE_FOLLOW                 12          // Track movement of aiment
#define MOVETYPE_PUSHSTEP               13          // BSP model that needs physics/world collisions (uses nearest hull for world collision) 

Esas son los tipos de movimiento que soporta el engine

Código PHP:
set_pev(iEntpev_movetypeMOVETYPE_BOUNCE); 

------->

Código PHP:
set_pev(iEntpev_movetypeMOVETYPE_NONE); 

Muchas gracias Gran sonrisa

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)