Bug Coins - Mecha - 01/09/2021
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(id) load_coins(id); public client_disconnected(id) save_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(id, iNum) g_iCoin[id] = iNum;
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); RegisterHam(Ham_Killed, "player", "fw_KilledPlayerPost", true); #if defined COIN_DROP_COINS RegisterHam(Ham_Touch, CLASSNAME_DEFAULT, "fw_TouchCoinPost", true); register_event("HLTV", "Event_RoundStart", "a", "1=0", "2=0"); #if defined COIN_TIME_REMOVE RegisterHam(Ham_Think, CLASSNAME_DEFAULT, "fw_ThinkCoinPost", true); #endif #endif
g_iMaxPlayers = get_maxplayers(); set_task(2.0, "Task_HudMsg", .flags = "b"); }
public fw_KilledPlayerPost(iVictim, iAttacker, iCorpse) { if(!is_user_connected(iVictim)) return; #if defined COIN_DROP_COINS if(g_iCoin[iVictim] > 0) { new Float: fOrigin[3], Float: fVelocity[3]; pev(iVictim, pev_origin, fOrigin); new iRandom = random_num(COIN_NUM_DROPKILL_MIN, COIN_NUM_DROPKILL_MAX); for(new i; i <= iRandom; i++) { if(!g_iCoin[iVictim]) break; new iEnt = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, CLASSNAME_DEFAULT)); set_pev(iEnt, pev_classname, CLASSNAME_SET); set_pev(iEnt, pev_origin, fOrigin); set_pev(iEnt, pev_solid, SOLID_TRIGGER); set_pev(iEnt, pev_movetype, MOVETYPE_BOUNCE); engfunc(EngFunc_SetSize, iEnt, Float: {-10.0, -10.0, -10.0}, Float: {10.0, 10.0, 10.0}); engfunc(EngFunc_SetModel, iEnt, COIN_MODEL); set_pev(iEnt, pev_velocity, fVelocity); #if defined COIN_TIME_REMOVE set_pev(iEnt, pev_nextthink, get_gametime() + COIN_TIME_REMOVE); #endif } } #endif if(!is_user_connected(iAttacker)) return; if(iVictim == iAttacker) return; new iGiveCoin = g_iCoin[iAttacker]; if(iAttacker == pev(iVictim, pev_dmg_inflictor) && get_user_weapon(iAttacker) == CSW_KNIFE) iGiveCoin = COIN_GIVE_KILL_KNIFE; else if(get_pdata_int(iVictim, PDATA_KILLHEAD_OFFSET, PDATA_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(0, 255, 0, -1.0, 0.26, 0, 0.1, 2.0, 0.1, 0.1, -1); show_hudmessage(iAttacker, "", iGiveCoin); }
#if defined COIN_DROP_COINS public fw_TouchCoinPost(iEnt, id) { if(!pev_valid(iEnt) || !is_user_alive(id)) return; static sClassName[32]; pev(iEnt, pev_classname, sClassName, charsmax(sClassName)); if(!equal(sClassName, CLASSNAME_SET)) return; g_iCoin[id]++; emit_sound(id, CHAN_WEAPON, COIN_SOUND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM); set_pev(iEnt, pev_flags, pev(iEnt, pev_flags) | FL_KILLME); }
public Event_RoundStart() { new iEnt = FM_NULLENT; while((iEnt = engfunc(EngFunc_FindEntityByString, iEnt, "classname", CLASSNAME_SET))) if(pev_valid(iEnt)) set_pev(iEnt, pev_flags, pev(iEnt, pev_flags) | FL_KILLME); } #endif
#if defined COIN_TIME_REMOVE public fw_ThinkCoinPost(iEnt) { if(!pev_valid(iEnt)) return; static sClassName[32]; pev(iEnt, pev_classname, sClassName, charsmax(sClassName)); if(!equal(sClassName, CLASSNAME_SET)) return; set_pev(iEnt, pev_flags, pev(iEnt, pev_flags) | FL_KILLME); } #endif
public Task_HudMsg() { set_hudmessage(200, 200, 200, 0.01, 0.90, 0, 0.1, 2.0, 0.1, 0.1, 4); for(new id = 1; id < g_iMaxPlayers; id++) { if(!is_user_alive(id)) continue; } }
public load_coins(id) { new iLine = 1, iLen, sData[64], sKey[38], sAuthID[38]; get_user_authid(id, sAuthID, charsmax(sAuthID)); while((iLine = read_file(PATH_DATABASE, iLine, sData, charsmax(sData), iLen))) { parse(sData, sKey, 37); if(equal(sKey, sAuthID)) { parse(sData, sKey, 37, sKey, 37); g_iCoin[id] = str_to_num(sKey); return; } } g_iCoin[id] = 0; }
public save_coins(id) { new iLine = 1, iLen, sData[64], sKey[38], sAuthID[38]; get_user_authid(id, sAuthID, charsmax(sAuthID)); while((iLine = read_file(PATH_DATABASE, iLine, sData, charsmax(sData), iLen))) { parse(sData, sKey, 37); if(equal(sKey, sAuthID)) { format(sData, charsmax(sData), "%s %i", sAuthID, g_iCoin[id]); write_file(PATH_DATABASE, sData, iLine-1); return; } } format(sData, charsmax(sData), "%s %i", sAuthID, g_iCoin[id]); write_file(PATH_DATABASE, sData, -1); }
RE: Bug Coins - Ssanty2 - 01/09/2021
Prueba editando esta linea no recuerdo bien como era para que quede en el lugar
Código PHP: engfunc(EngFunc_SetSize, iEnt, Float: {-10.0, -10.0, -10.0}, Float: {10.0, 10.0, 10.0});
RE: Bug Coins - GabsHp - 01/09/2021
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(iEnt, pev_movetype, MOVETYPE_BOUNCE);
------->
Código PHP: set_pev(iEnt, pev_movetype, MOVETYPE_NONE);
RE: Bug Coins - Mecha - 02/09/2021
(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(iEnt, pev_movetype, MOVETYPE_BOUNCE);
------->
Código PHP: set_pev(iEnt, pev_movetype, MOVETYPE_NONE);
Muchas gracias
|