Mensajes: 395
Temas: 48
Registro en: Oct 2018
Reputación:
6
21/05/2022, 07:47 AM
(Última modificación: 23/05/2022, 03:26 PM por [E]manuelitop15. Edited 1 time in total.)
(20/05/2022, 05:24 PM)roccoxx escribió: Es un plugin pensado para mix que en teoría no ocurren dichos eventos, sin embargo no son malas las features. Últimamente ando muy ocupado como para sentarme a programar en Pawn, aún asi, voy a tratar de hacerme un tiempo estos días y editar el código para evitar eso que mencionas.
Muchas gracias!
Re-hice el código y arreglé esos problemas y funciona bien. Por si alguien le sirve lo dejo...
Código PHP: // __________________ // // Equipment Sprites // __________________
#include <amxmodx> #include <engine> #include <cstrike> #include <fakemeta> #include <hamsandwich>
#pragma semicolon 1
// Info del Plugin (Autor original: Roccoxx) new const PLUGIN[] = "SPRITES EQUIP"; new const VERSION[] = "1.5"; new const AUTOR[] = "DaniwA & Roccoxx"; new const EDITOR[] = "Emanuelitop15";
// Sprites new const SpritesDinero[][] = {"sprites/10000.spr", "sprites/1000.spr", "sprites/100.spr", "sprites/10.spr", "sprites/1.spr"}; new const SpritesArmas[][] = {"sprites/weap.spr", "sprites/weap2.spr"}; new const SpriteS[] = {"sprites/cash.spr"}; new const SpriteFlecha[] = {"sprites/arrow.spr"};
// Variables new g_spr_de_dinero[MAX_PLAYERS+1][5], g_spr_de_armas[MAX_PLAYERS+1][7], g_spr_signo_de_dinero[MAX_PLAYERS+1], g_spr_flecha[MAX_PLAYERS+1]; new g_ent_sprites;
// Flotantes new const Float: fPistolas[6] = { 1.0, 10.0, 11.0, 16.0, 17.0, 26.0 }; new const Float: fRifles[18] = { 3.0, 5.0, 7.0, 8.0, 2.0, 13.0, 14.0, 15.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 27.0, 28.0, 30.0 };
// Defines #define TASK_REMOVER_SPRITES 60969 #define TASK_SET_SPRITES 70999 #define TASK_SET_SPRITES_ID 72688
// Colores new const COLOR_DINERO[3] = { 0, 255, 0 }; new const COLOR_ARMAS[3] = { 200, 200, 200 }; new const COLOR_FLECHA[3] = { 200, 200, 200 };
// Cvars new cvar_equip_on;
// Funciones Principales public plugin_init() { register_plugin(PLUGIN, VERSION, AUTOR);
register_event("HLTV", "ev_inicio_de_ronda", "a", "1=0", "2=0");
RegisterHam(Ham_Killed, "player", "ham_jugador_asesinado", .Post = 0);
cvar_equip_on = register_cvar("sprites_equipamiento", "1");
server_print("========================================"); server_print("- Plugin: %s (ACTIVADO)", PLUGIN); server_print("- Editado por: %s (AUTORES ORIGINALES: %s)", EDITOR, AUTOR); server_print("========================================"); }
public plugin_precache() { new i;
for (i = 0; i < sizeof (SpritesDinero); i++) precache_model(SpritesDinero[i]);
for (i = 0; i < sizeof (SpritesArmas); i++) precache_model(SpritesArmas[i]);
precache_model(SpriteS); precache_model(SpriteFlecha); }
public ev_inicio_de_ronda() { if (!get_pcvar_num(cvar_equip_on)) return;
//i_entidades_todos(false);
remove_task(TASK_REMOVER_SPRITES); set_task(0.2, "remover_sprites", TASK_REMOVER_SPRITES); // fix bug set_task(get_cvar_float("mp_freezetime"), "remover_sprites", TASK_REMOVER_SPRITES);
remove_task(TASK_SET_SPRITES); set_task(0.5, "mostrar_sprites_pre", TASK_SET_SPRITES); }
// Ham public ham_jugador_asesinado(victima, atacante) { if (!is_user_connected(atacante)) return HAM_IGNORED;
spr_remover_entidades(victima, 1); return HAM_HANDLED; }
public client_putinserver(id) { spr_setear_entidades(id); }
public client_disconnected(id) { spr_remover_entidades(id); }
// Funciones Secundarias spr_setear_entidades(id) { new i;
// Dinero [sprites] for (i = 0; i < sizeof (SpritesDinero); i++) { g_spr_de_dinero[id][i] = create_entity("env_sprite");
if (is_valid_ent(g_spr_de_dinero[id][i])) ent_set_atributos(g_spr_de_dinero[id][i], SpritesDinero[i]); }
// Armas [sprites] for (i = 0; i < 7; i++) { g_spr_de_armas[id][i] = create_entity("env_sprite");
if (is_valid_ent(g_spr_de_armas[id][i])) ent_set_atributos(g_spr_de_armas[id][i], (i < 5) ? SpritesArmas[0] : SpritesArmas[1]); }
// Signo del Dinero [sprite] g_spr_signo_de_dinero[id] = create_entity("env_sprite"); if (is_valid_ent(g_spr_signo_de_dinero[id])) ent_set_atributos(g_spr_signo_de_dinero[id], SpriteS);
// Flechita [sprite] g_spr_flecha[id] = create_entity("env_sprite"); if (is_valid_ent(g_spr_flecha[id])) ent_set_atributos(g_spr_flecha[id], SpriteFlecha); }
spr_remover_entidades(id, ocultar = 0) { new i; for (i = 0; i < sizeof (SpritesDinero); i++) { if (!is_valid_ent(g_spr_de_dinero[id][i])) continue;
if (ocultar) set_ent_rendering(g_spr_de_dinero[id][i], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_de_dinero[id][i]); g_spr_de_dinero[id][i] = 0; } }
for (i = 0; i < 7; i++) { if (!is_valid_ent(g_spr_de_armas[id][i])) continue;
if (ocultar) set_ent_rendering(g_spr_de_armas[id][i], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_de_armas[id][i]); g_spr_de_armas[id][i] = 0; } }
if (is_valid_ent(g_spr_signo_de_dinero[id])) { if (ocultar) set_ent_rendering(g_spr_signo_de_dinero[id], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_signo_de_dinero[id]); g_spr_signo_de_dinero[id] = 0; } }
if (is_valid_ent(g_spr_flecha[id])) { if (ocultar) set_ent_rendering(g_spr_flecha[id], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_flecha[id]); g_spr_flecha[id] = 0; } } }
public mostrar_sprites_pre() { g_ent_sprites = create_entity("info_target");
if (!is_valid_ent(g_ent_sprites)) return;
new id; for (id = 1; id <= MAX_PLAYERS; id++) { if (!is_user_alive(id)) continue; remove_task(id+TASK_SET_SPRITES_ID); set_task(0.2, "mostrar_sprites", id+TASK_SET_SPRITES_ID, _,_, "b"); } }
public mostrar_sprites(taskid) { new id; id = (taskid - TASK_SET_SPRITES_ID);
if (!is_user_alive(id)) { remove_task(taskid); return; }
if (!is_valid_ent(g_ent_sprites)) { g_ent_sprites = 0; remove_task(taskid); return; }
new i, sz_dinero[6], sz_valor[2]; new i_armas, bool: pistolas, bool: rifles, i_armadura;
// Dinero arrayset(sz_dinero, 0, sizeof (sz_dinero)); num_to_str(cs_get_user_money(id), sz_dinero, charsmax(sz_dinero));
for (i = 0; i < sizeof (SpritesDinero); i++) { sz_valor[0] = sz_dinero[i]; sz_valor[1] = 0;
if (!sz_dinero[i]) activar_sprite(g_spr_de_dinero[id][i], id, 1.0, 34.0, 0, COLOR_DINERO[0], COLOR_DINERO[1], COLOR_DINERO[2]); else activar_sprite(g_spr_de_dinero[id][i], id, floatstr(sz_valor), 34.0, 255, COLOR_DINERO[0], COLOR_DINERO[1], COLOR_DINERO[2]); }
activar_sprite(g_spr_signo_de_dinero[id], id, 1.0, 34.0, 255, COLOR_DINERO[0], COLOR_DINERO[1], COLOR_DINERO[2]); activar_sprite(g_spr_flecha[id], id, 1.0, 34.0, 255, COLOR_FLECHA[0], COLOR_FLECHA[1], COLOR_FLECHA[2]);
// Armas i_armas = pev(id, pev_weapons); pistolas = false; rifles = false; for (i = 0; i < sizeof (fPistolas); i++) { if (i_armas & 1<<floatround(fPistolas[i])) { activar_sprite(g_spr_de_armas[id][0], id, fPistolas[i], 50.0, 255, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]); pistolas = true; } } if (!pistolas) activar_sprite(g_spr_de_armas[id][0], id, fPistolas[0], 50.0, 0, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]);
for (i = 0; i < sizeof (fRifles); i++) { if (i_armas & 1<<floatround(fRifles[i])) { activar_sprite(g_spr_de_armas[id][1], id, fRifles[i], 50.0, 255, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]); rifles = true; } }
if (!rifles) activar_sprite(g_spr_de_armas[id][1], id, fRifles[0], 50.0, 0, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]); if (i_armas & 1<<CSW_HEGRENADE) activar_sprite(g_spr_de_armas[id][2], id, 4.0, 50.0, 255, 255, 10, 10); else activar_sprite(g_spr_de_armas[id][2], id, 4.0, 50.0, 0, 255, 10, 10); if (i_armas & 1<<CSW_FLASHBANG) activar_sprite(g_spr_de_armas[id][3], id, 25.0, 50.0, 255, 90, 90, 90); else activar_sprite(g_spr_de_armas[id][3], id, 25.0, 50.0, 0, 90, 90, 90); if (i_armas & 1<<CSW_SMOKEGRENADE) activar_sprite(g_spr_de_armas[id][4], id, 9.0, 50.0, 255, 50, 150, 50); else activar_sprite(g_spr_de_armas[id][4], id, 9.0, 50.0, 0, 10, 200, 10);
// Armadura cs_get_user_armor(id, CsArmorType:i_armadura);
switch (i_armadura) { case 1: activar_sprite(g_spr_de_armas[id][5], id, 1.0, 50.0, 255, 0, 100, 255); case 2: activar_sprite(g_spr_de_armas[id][5], id, 2.0, 50.0, 255, 0, 100, 255); default: activar_sprite(g_spr_de_armas[id][5], id, 1.0, 50.0, 0, 0, 100, 255); }
if (i_armas & 1<<CSW_C4) activar_sprite(g_spr_de_armas[id][6], id, 3.0, 50.0, 255, 0, 30, 255); else if (cs_get_user_defuse(id)) activar_sprite(g_spr_de_armas[id][6], id, 4.0, 50.0, 255, 0, 30, 255); else activar_sprite(g_spr_de_armas[id][6], id, 3.0, 50.0, 0, 0, 30, 255); }
activar_sprite(ent, jugador, Float:fFrame, Float:fOffset, render, rojo, verde, azul) { if (!is_valid_ent(ent)) return;
if (!get_pcvar_num(cvar_equip_on)) return;
entity_set_float(ent, EV_FL_frame, fFrame); set_ent_rendering(ent, kRenderFxNone, rojo, verde, azul, kRenderTransAdd, render);
static Float: origen_del_jugador[3]; entity_get_vector(jugador, EV_VEC_origin, origen_del_jugador); origen_del_jugador[2] += (fOffset + 10.0);
entity_set_origin(ent, origen_del_jugador); }
ent_set_atributos(ent, const sz_modelo[]) { entity_set_model(ent, sz_modelo); entity_set_int(ent, EV_INT_movetype, MOVETYPE_NOCLIP); entity_set_float(ent, EV_FL_framerate, 1.0); entity_set_float(ent, EV_FL_scale, 0.3);
set_ent_rendering(ent, kRenderFxNone, _, _, _, kRenderTransAdd, 0); }
public remover_sprites() { if (is_valid_ent(g_ent_sprites)) { remove_entity(g_ent_sprites); g_ent_sprites = 0; }
i_entidades_todos(true); }
i_entidades_todos(sacar) { new id;
for (id = 1; id <= MAX_PLAYERS; id++) { if (!is_user_connected(id)) continue;
if (sacar) spr_remover_entidades(id, 1); else spr_setear_entidades(id); } }
public plugin_cfg() { if (is_plugin_loaded("Pause Plugins") != -1) server_cmd("amx_pausecfg add ^"%s^"", PLUGIN); }
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Mensajes: 200
Temas: 56
Registro en: Oct 2020
Reputación:
1
21/05/2022, 11:34 AM
(Última modificación: 21/05/2022, 12:29 PM por Meliodas.)
(21/05/2022, 07:47 AM)[E]manuelitop15 escribió: Re-hice el código y arreglé esos problemas y funciona bien. Por si alguien le sirve lo dejo...
Código PHP: // __________________ // // Equipment Sprites // __________________
#include <amxmodx> #include <engine> #include <cstrike> #include <fakemeta> #include <hamsandwich>
#pragma semicolon 1
// Info del Plugin (Autor original: Roccox) new const PLUGIN[] = "SPRITES EQUIP"; new const VERSION[] = "1.2"; new const AUTOR[] = "DaniwA & Roccoxx"; new const EDITOR[] = "Emanuelitop15";
// Sprites new const SpritesDinero[][] = {"sprites/10000.spr", "sprites/1000.spr", "sprites/100.spr", "sprites/10.spr", "sprites/1.spr"}; new const SpritesArmas[][] = {"sprites/weap.spr", "sprites/weap2.spr"}; new const SpriteS[] = {"sprites/cash.spr"}; new const SpriteFlecha[] = {"sprites/arrow.spr"};
// Variables new g_spr_de_dinero[MAX_PLAYERS+1][5], g_spr_de_armas[MAX_PLAYERS+1][7], g_spr_signo_de_dinero[MAX_PLAYERS+1], g_spr_flecha[MAX_PLAYERS+1]; new g_ent_sprites;
// Flotantes new const Float: fPistolas[6] = { 1.0, 10.0, 11.0, 16.0, 17.0, 26.0 }; new const Float: fRifles[18] = { 3.0, 5.0, 7.0, 8.0, 2.0, 13.0, 14.0, 15.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 27.0, 28.0, 30.0 };
// Defines #define TASK_REMOVER_SPRITES 60969 #define TASK_SET_SPRITES 70999 #define TASK_SET_SPRITES_ID 72688
// Colores new const COLOR_DINERO[3] = { 0, 255, 0 }; new const COLOR_ARMAS[3] = { 200, 200, 200 }; new const COLOR_FLECHA[3] = { 200, 200, 200 };
// Cvars new cvar_equip_on;
// Funciones Principales public plugin_init() { register_plugin(PLUGIN, VERSION, AUTOR);
register_event("HLTV", "ev_inicio_de_ronda", "a", "1=0", "2=0");
RegisterHam(Ham_Killed, "player", "ham_jugador_asesinado", .Post = 0);
cvar_equip_on = register_cvar("sprites_equipamiento", "1");
server_print("========================================"); server_print("- Plugin: %s (ACTIVADO)", PLUGIN); server_print("- Editado por: %s (AUTORES ORIGINALES: %s)", EDITOR, AUTOR); server_print("========================================"); }
public plugin_precache() { new i;
for (i = 0; i < sizeof (SpritesDinero); i++) precache_model(SpritesDinero[i]);
for (i = 0; i < sizeof (SpritesArmas); i++) precache_model(SpritesArmas[i]);
precache_model(SpriteS); precache_model(SpriteFlecha); }
public ev_inicio_de_ronda() { //i_entidades_todos(false);
if (!get_pcvar_num(cvar_equip_on)) return;
remove_task(TASK_REMOVER_SPRITES); remover_sprites(); // fix bug set_task(get_cvar_float("mp_freezetime"), "remover_sprites", TASK_REMOVER_SPRITES);
g_ent_sprites = create_entity("info_target");
if (!is_valid_ent(g_ent_sprites)) return;
remove_task(TASK_SET_SPRITES); set_task(0.5, "mostrar_sprites_pre", TASK_SET_SPRITES); }
// Ham public ham_jugador_asesinado(victima, atacante) { if (!is_user_connected(atacante)) return HAM_IGNORED;
spr_remover_entidades(victima, .ocultar = true); return HAM_HANDLED; }
public client_putinserver(id) { spr_setear_entidades(id); }
public client_disconnected(id) { spr_remover_entidades(id); }
// Funciones Secundarias spr_setear_entidades(id) { new i;
// Dinero [sprites] for (i = 0; i < sizeof (SpritesDinero); i++) { g_spr_de_dinero[id][i] = create_entity("env_sprite");
if (is_valid_ent(g_spr_de_dinero[id][i])) ent_set_atributos(g_spr_de_dinero[id][i], SpritesDinero[i]); }
// Armas [sprites] for (i = 0; i < 7; i++) { g_spr_de_armas[id][i] = create_entity("env_sprite");
if (is_valid_ent(g_spr_de_armas[id][i])) ent_set_atributos(g_spr_de_armas[id][i], (i < 5) ? SpritesArmas[0] : SpritesArmas[1]); }
// Signo del Dinero [sprite] g_spr_signo_de_dinero[id] = create_entity("env_sprite"); if (is_valid_ent(g_spr_signo_de_dinero[id])) ent_set_atributos(g_spr_signo_de_dinero[id], SpriteS);
// Flechita [sprite] g_spr_flecha[id] = create_entity("env_sprite"); if (is_valid_ent(g_spr_flecha[id])) ent_set_atributos(g_spr_flecha[id], SpriteFlecha); }
spr_remover_entidades(id, ocultar = 0) { new i; for (i = 0; i < sizeof (SpritesDinero); i++) { if (!is_valid_ent(g_spr_de_dinero[id][i])) continue;
if (ocultar) set_ent_rendering(g_spr_de_dinero[id][i], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_de_dinero[id][i]); g_spr_de_dinero[id][i] = 0; } }
for (i = 0; i < 7; i++) { if (!is_valid_ent(g_spr_de_armas[id][i])) continue;
if (ocultar) set_ent_rendering(g_spr_de_armas[id][i], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_de_armas[id][i]); g_spr_de_armas[id][i] = 0; } }
if (is_valid_ent(g_spr_signo_de_dinero[id])) { if (ocultar) set_ent_rendering(g_spr_signo_de_dinero[id], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_signo_de_dinero[id]); g_spr_signo_de_dinero[id] = 0; } }
if (is_valid_ent(g_spr_flecha[id])) { if (ocultar) set_ent_rendering(g_spr_flecha[id], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_flecha[id]); g_spr_flecha[id] = 0; } } }
public mostrar_sprites_pre() { new id; for (id = 1; id <= MAX_PLAYERS; id++) { remove_task(id+TASK_SET_SPRITES_ID); set_task(0.2, "mostrar_sprites", id+TASK_SET_SPRITES_ID, _,_, "b"); } }
public mostrar_sprites(taskid) { new id; id = (taskid - TASK_SET_SPRITES_ID);
if (!is_user_alive(id)) { remove_task(taskid); return; }
if (!is_valid_ent(g_ent_sprites)) { remove_task(taskid); return; }
new i, sz_dinero[6], sz_valor[2]; new i_armas, bool: pistolas, bool: rifles, i_armadura;
// Dinero arrayset(sz_dinero, 0, sizeof (sz_dinero)); num_to_str(cs_get_user_money(id), sz_dinero, charsmax(sz_dinero));
for (i = 0; i < sizeof (SpritesDinero); i++) { sz_valor[0] = sz_dinero[i]; sz_valor[1] = 0;
if (!sz_dinero[i]) activar_sprite(g_spr_de_dinero[id][i], id, 1.0, 34.0, 0, COLOR_DINERO[0], COLOR_DINERO[1], COLOR_DINERO[2]); else activar_sprite(g_spr_de_dinero[id][i], id, floatstr(sz_valor), 34.0, 255, COLOR_DINERO[0], COLOR_DINERO[1], COLOR_DINERO[2]); }
activar_sprite(g_spr_signo_de_dinero[id], id, 1.0, 34.0, 255, COLOR_DINERO[0], COLOR_DINERO[1], COLOR_DINERO[2]); activar_sprite(g_spr_flecha[id], id, 1.0, 34.0, 255, COLOR_FLECHA[0], COLOR_FLECHA[1], COLOR_FLECHA[2]);
// Armas i_armas = pev(id, pev_weapons); pistolas = false; rifles = false; for (i = 0; i < sizeof (fPistolas); i++) { if (i_armas & 1<<floatround(fPistolas[i])) { activar_sprite(g_spr_de_armas[id][0], id, fPistolas[i], 50.0, 255, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]); pistolas = true; } } if (!pistolas) activar_sprite(g_spr_de_armas[id][0], id, fPistolas[0], 50.0, 0, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]);
for (i = 0; i < sizeof (fRifles); i++) { if (i_armas & 1<<floatround(fRifles[i])) { activar_sprite(g_spr_de_armas[id][1], id, fRifles[i], 50.0, 255, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]); rifles = true; } }
if (!rifles) activar_sprite(g_spr_de_armas[id][1], id, fRifles[0], 50.0, 0, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]); if (i_armas & 1<<CSW_HEGRENADE) activar_sprite(g_spr_de_armas[id][2], id, 4.0, 50.0, 255, 255, 10, 10); else activar_sprite(g_spr_de_armas[id][2], id, 4.0, 50.0, 0, 255, 10, 10); if (i_armas & 1<<CSW_FLASHBANG) activar_sprite(g_spr_de_armas[id][3], id, 25.0, 50.0, 255, 90, 90, 90); else activar_sprite(g_spr_de_armas[id][3], id, 25.0, 50.0, 0, 90, 90, 90); if (i_armas & 1<<CSW_SMOKEGRENADE) activar_sprite(g_spr_de_armas[id][4], id, 9.0, 50.0, 255, 50, 150, 50); else activar_sprite(g_spr_de_armas[id][4], id, 9.0, 50.0, 0, 10, 200, 10);
// Armadura cs_get_user_armor(id, CsArmorType:i_armadura);
switch (i_armadura) { case 1: activar_sprite(g_spr_de_armas[id][5], id, 1.0, 50.0, 255, 0, 100, 255); case 2: activar_sprite(g_spr_de_armas[id][5], id, 2.0, 50.0, 255, 0, 100, 255); default: activar_sprite(g_spr_de_armas[id][5], id, 1.0, 50.0, 0, 0, 100, 255); }
if (i_armas & 1<<CSW_C4) activar_sprite(g_spr_de_armas[id][6], id, 3.0, 50.0, 255, 0, 30, 255); else if (cs_get_user_defuse(id)) activar_sprite(g_spr_de_armas[id][6], id, 4.0, 50.0, 255, 0, 30, 255); else activar_sprite(g_spr_de_armas[id][6], id, 3.0, 50.0, 0, 0, 30, 255); }
activar_sprite(ent, jugador, Float:fFrame, Float:fOffset, render, rojo, verde, azul) { if (!is_valid_ent(ent)) return;
if (!get_pcvar_num(cvar_equip_on)) return;
entity_set_float(ent, EV_FL_frame, fFrame); set_ent_rendering(ent, kRenderFxNone, rojo, verde, azul, kRenderTransAdd, render);
static Float: origen_del_jugador[3]; entity_get_vector(jugador, EV_VEC_origin, origen_del_jugador); origen_del_jugador[2] += (fOffset + 10.0);
entity_set_origin(ent, origen_del_jugador); }
ent_set_atributos(ent, const sz_modelo[]) { entity_set_model(ent, sz_modelo); entity_set_int(ent, EV_INT_movetype, MOVETYPE_NOCLIP); entity_set_float(ent, EV_FL_framerate, 1.0); entity_set_float(ent, EV_FL_scale, 0.3);
set_ent_rendering(ent, kRenderFxNone, _, _, _, kRenderTransAdd, 0); }
public remover_sprites() { i_entidades_todos(true);
if (is_valid_ent(g_ent_sprites)) remove_entity(g_ent_sprites); }
i_entidades_todos(sacar) { new id;
for (id = 1; id <= MAX_PLAYERS; id++) { if (!is_user_connected(id)) continue;
if (sacar) spr_remover_entidades(id, .ocultar = 1); else spr_setear_entidades(id); } }
public plugin_cfg() { if (is_plugin_loaded("Pause Plugins") != -1) server_cmd("amx_pausecfg add ^"%s^"", PLUGIN); }
Puedes ponerle que al apuntar a un jugador de tu equipo salga el sprite tambien solo a los de tu equipo asi como el de cs go?
(21/05/2022, 07:47 AM)[E]manuelitop15 escribió: Re-hice el código y arreglé esos problemas y funciona bien. Por si alguien le sirve lo dejo...
Código PHP: // __________________ // // Equipment Sprites // __________________
#include <amxmodx> #include <engine> #include <cstrike> #include <fakemeta> #include <hamsandwich>
#pragma semicolon 1
// Info del Plugin (Autor original: Roccox) new const PLUGIN[] = "SPRITES EQUIP"; new const VERSION[] = "1.2"; new const AUTOR[] = "DaniwA & Roccoxx"; new const EDITOR[] = "Emanuelitop15";
// Sprites new const SpritesDinero[][] = {"sprites/10000.spr", "sprites/1000.spr", "sprites/100.spr", "sprites/10.spr", "sprites/1.spr"}; new const SpritesArmas[][] = {"sprites/weap.spr", "sprites/weap2.spr"}; new const SpriteS[] = {"sprites/cash.spr"}; new const SpriteFlecha[] = {"sprites/arrow.spr"};
// Variables new g_spr_de_dinero[MAX_PLAYERS+1][5], g_spr_de_armas[MAX_PLAYERS+1][7], g_spr_signo_de_dinero[MAX_PLAYERS+1], g_spr_flecha[MAX_PLAYERS+1]; new g_ent_sprites;
// Flotantes new const Float: fPistolas[6] = { 1.0, 10.0, 11.0, 16.0, 17.0, 26.0 }; new const Float: fRifles[18] = { 3.0, 5.0, 7.0, 8.0, 2.0, 13.0, 14.0, 15.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 27.0, 28.0, 30.0 };
// Defines #define TASK_REMOVER_SPRITES 60969 #define TASK_SET_SPRITES 70999 #define TASK_SET_SPRITES_ID 72688
// Colores new const COLOR_DINERO[3] = { 0, 255, 0 }; new const COLOR_ARMAS[3] = { 200, 200, 200 }; new const COLOR_FLECHA[3] = { 200, 200, 200 };
// Cvars new cvar_equip_on;
// Funciones Principales public plugin_init() { register_plugin(PLUGIN, VERSION, AUTOR);
register_event("HLTV", "ev_inicio_de_ronda", "a", "1=0", "2=0");
RegisterHam(Ham_Killed, "player", "ham_jugador_asesinado", .Post = 0);
cvar_equip_on = register_cvar("sprites_equipamiento", "1");
server_print("========================================"); server_print("- Plugin: %s (ACTIVADO)", PLUGIN); server_print("- Editado por: %s (AUTORES ORIGINALES: %s)", EDITOR, AUTOR); server_print("========================================"); }
public plugin_precache() { new i;
for (i = 0; i < sizeof (SpritesDinero); i++) precache_model(SpritesDinero[i]);
for (i = 0; i < sizeof (SpritesArmas); i++) precache_model(SpritesArmas[i]);
precache_model(SpriteS); precache_model(SpriteFlecha); }
public ev_inicio_de_ronda() { //i_entidades_todos(false);
if (!get_pcvar_num(cvar_equip_on)) return;
remove_task(TASK_REMOVER_SPRITES); remover_sprites(); // fix bug set_task(get_cvar_float("mp_freezetime"), "remover_sprites", TASK_REMOVER_SPRITES);
g_ent_sprites = create_entity("info_target");
if (!is_valid_ent(g_ent_sprites)) return;
remove_task(TASK_SET_SPRITES); set_task(0.5, "mostrar_sprites_pre", TASK_SET_SPRITES); }
// Ham public ham_jugador_asesinado(victima, atacante) { if (!is_user_connected(atacante)) return HAM_IGNORED;
spr_remover_entidades(victima, .ocultar = true); return HAM_HANDLED; }
public client_putinserver(id) { spr_setear_entidades(id); }
public client_disconnected(id) { spr_remover_entidades(id); }
// Funciones Secundarias spr_setear_entidades(id) { new i;
// Dinero [sprites] for (i = 0; i < sizeof (SpritesDinero); i++) { g_spr_de_dinero[id][i] = create_entity("env_sprite");
if (is_valid_ent(g_spr_de_dinero[id][i])) ent_set_atributos(g_spr_de_dinero[id][i], SpritesDinero[i]); }
// Armas [sprites] for (i = 0; i < 7; i++) { g_spr_de_armas[id][i] = create_entity("env_sprite");
if (is_valid_ent(g_spr_de_armas[id][i])) ent_set_atributos(g_spr_de_armas[id][i], (i < 5) ? SpritesArmas[0] : SpritesArmas[1]); }
// Signo del Dinero [sprite] g_spr_signo_de_dinero[id] = create_entity("env_sprite"); if (is_valid_ent(g_spr_signo_de_dinero[id])) ent_set_atributos(g_spr_signo_de_dinero[id], SpriteS);
// Flechita [sprite] g_spr_flecha[id] = create_entity("env_sprite"); if (is_valid_ent(g_spr_flecha[id])) ent_set_atributos(g_spr_flecha[id], SpriteFlecha); }
spr_remover_entidades(id, ocultar = 0) { new i; for (i = 0; i < sizeof (SpritesDinero); i++) { if (!is_valid_ent(g_spr_de_dinero[id][i])) continue;
if (ocultar) set_ent_rendering(g_spr_de_dinero[id][i], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_de_dinero[id][i]); g_spr_de_dinero[id][i] = 0; } }
for (i = 0; i < 7; i++) { if (!is_valid_ent(g_spr_de_armas[id][i])) continue;
if (ocultar) set_ent_rendering(g_spr_de_armas[id][i], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_de_armas[id][i]); g_spr_de_armas[id][i] = 0; } }
if (is_valid_ent(g_spr_signo_de_dinero[id])) { if (ocultar) set_ent_rendering(g_spr_signo_de_dinero[id], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_signo_de_dinero[id]); g_spr_signo_de_dinero[id] = 0; } }
if (is_valid_ent(g_spr_flecha[id])) { if (ocultar) set_ent_rendering(g_spr_flecha[id], kRenderFxNone, _, _, _, kRenderTransAdd, 0); else { remove_entity(g_spr_flecha[id]); g_spr_flecha[id] = 0; } } }
public mostrar_sprites_pre() { new id; for (id = 1; id <= MAX_PLAYERS; id++) { remove_task(id+TASK_SET_SPRITES_ID); set_task(0.2, "mostrar_sprites", id+TASK_SET_SPRITES_ID, _,_, "b"); } }
public mostrar_sprites(taskid) { new id; id = (taskid - TASK_SET_SPRITES_ID);
if (!is_user_alive(id)) { remove_task(taskid); return; }
if (!is_valid_ent(g_ent_sprites)) { remove_task(taskid); return; }
new i, sz_dinero[6], sz_valor[2]; new i_armas, bool: pistolas, bool: rifles, i_armadura;
// Dinero arrayset(sz_dinero, 0, sizeof (sz_dinero)); num_to_str(cs_get_user_money(id), sz_dinero, charsmax(sz_dinero));
for (i = 0; i < sizeof (SpritesDinero); i++) { sz_valor[0] = sz_dinero[i]; sz_valor[1] = 0;
if (!sz_dinero[i]) activar_sprite(g_spr_de_dinero[id][i], id, 1.0, 34.0, 0, COLOR_DINERO[0], COLOR_DINERO[1], COLOR_DINERO[2]); else activar_sprite(g_spr_de_dinero[id][i], id, floatstr(sz_valor), 34.0, 255, COLOR_DINERO[0], COLOR_DINERO[1], COLOR_DINERO[2]); }
activar_sprite(g_spr_signo_de_dinero[id], id, 1.0, 34.0, 255, COLOR_DINERO[0], COLOR_DINERO[1], COLOR_DINERO[2]); activar_sprite(g_spr_flecha[id], id, 1.0, 34.0, 255, COLOR_FLECHA[0], COLOR_FLECHA[1], COLOR_FLECHA[2]);
// Armas i_armas = pev(id, pev_weapons); pistolas = false; rifles = false; for (i = 0; i < sizeof (fPistolas); i++) { if (i_armas & 1<<floatround(fPistolas[i])) { activar_sprite(g_spr_de_armas[id][0], id, fPistolas[i], 50.0, 255, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]); pistolas = true; } } if (!pistolas) activar_sprite(g_spr_de_armas[id][0], id, fPistolas[0], 50.0, 0, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]);
for (i = 0; i < sizeof (fRifles); i++) { if (i_armas & 1<<floatround(fRifles[i])) { activar_sprite(g_spr_de_armas[id][1], id, fRifles[i], 50.0, 255, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]); rifles = true; } }
if (!rifles) activar_sprite(g_spr_de_armas[id][1], id, fRifles[0], 50.0, 0, COLOR_ARMAS[0], COLOR_ARMAS[1], COLOR_ARMAS[2]); if (i_armas & 1<<CSW_HEGRENADE) activar_sprite(g_spr_de_armas[id][2], id, 4.0, 50.0, 255, 255, 10, 10); else activar_sprite(g_spr_de_armas[id][2], id, 4.0, 50.0, 0, 255, 10, 10); if (i_armas & 1<<CSW_FLASHBANG) activar_sprite(g_spr_de_armas[id][3], id, 25.0, 50.0, 255, 90, 90, 90); else activar_sprite(g_spr_de_armas[id][3], id, 25.0, 50.0, 0, 90, 90, 90); if (i_armas & 1<<CSW_SMOKEGRENADE) activar_sprite(g_spr_de_armas[id][4], id, 9.0, 50.0, 255, 50, 150, 50); else activar_sprite(g_spr_de_armas[id][4], id, 9.0, 50.0, 0, 10, 200, 10);
// Armadura cs_get_user_armor(id, CsArmorType:i_armadura);
switch (i_armadura) { case 1: activar_sprite(g_spr_de_armas[id][5], id, 1.0, 50.0, 255, 0, 100, 255); case 2: activar_sprite(g_spr_de_armas[id][5], id, 2.0, 50.0, 255, 0, 100, 255); default: activar_sprite(g_spr_de_armas[id][5], id, 1.0, 50.0, 0, 0, 100, 255); }
if (i_armas & 1<<CSW_C4) activar_sprite(g_spr_de_armas[id][6], id, 3.0, 50.0, 255, 0, 30, 255); else if (cs_get_user_defuse(id)) activar_sprite(g_spr_de_armas[id][6], id, 4.0, 50.0, 255, 0, 30, 255); else activar_sprite(g_spr_de_armas[id][6], id, 3.0, 50.0, 0, 0, 30, 255); }
activar_sprite(ent, jugador, Float:fFrame, Float:fOffset, render, rojo, verde, azul) { if (!is_valid_ent(ent)) return;
if (!get_pcvar_num(cvar_equip_on)) return;
entity_set_float(ent, EV_FL_frame, fFrame); set_ent_rendering(ent, kRenderFxNone, rojo, verde, azul, kRenderTransAdd, render);
static Float: origen_del_jugador[3]; entity_get_vector(jugador, EV_VEC_origin, origen_del_jugador); origen_del_jugador[2] += (fOffset + 10.0);
entity_set_origin(ent, origen_del_jugador); }
ent_set_atributos(ent, const sz_modelo[]) { entity_set_model(ent, sz_modelo); entity_set_int(ent, EV_INT_movetype, MOVETYPE_NOCLIP); entity_set_float(ent, EV_FL_framerate, 1.0); entity_set_float(ent, EV_FL_scale, 0.3);
set_ent_rendering(ent, kRenderFxNone, _, _, _, kRenderTransAdd, 0); }
public remover_sprites() { i_entidades_todos(true);
if (is_valid_ent(g_ent_sprites)) remove_entity(g_ent_sprites); }
i_entidades_todos(sacar) { new id;
for (id = 1; id <= MAX_PLAYERS; id++) { if (!is_user_connected(id)) continue;
if (sacar) spr_remover_entidades(id, .ocultar = 1); else spr_setear_entidades(id); } }
public plugin_cfg() { if (is_plugin_loaded("Pause Plugins") != -1) server_cmd("amx_pausecfg add ^"%s^"", PLUGIN); }
Hay 2 bugs 1 es el del dinero y el segundo pasa aveces y es que cuando compras otra arma primaria hay veces que esta no se dropea y se muestra en el sprite tipo dropeada pero no sale para recogerla
Pawn Básico no critiquen xD
Mensajes: 395
Temas: 48
Registro en: Oct 2018
Reputación:
6
(21/05/2022, 11:34 AM)Meliodas escribió: Hay 2 bugs 1 es el del dinero y el segundo pasa aveces y es que cuando compras otra arma primaria hay veces que esta no se dropea y se muestra en el sprite tipo dropeada pero no sale para recogerla
Fijate en tus sprites, yo no tuve problema con eso del dinero que mencionas. Y lo de aparecer individualmente es casi lo mismo que hice pero para mi es mejor en general.
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Mensajes: 200
Temas: 56
Registro en: Oct 2020
Reputación:
1
(21/05/2022, 03:38 PM)[E]manuelitop15 escribió: Fijate en tus sprites, yo no tuve problema con eso del dinero que mencionas. Y lo de aparecer individualmente es casi lo mismo que hice pero para mi es mejor en general.
estoy usando los mismo de esta publicacion, y lo que digo es que como en el cs go que cuando apuntas a un jugador tambien salga el sprite esto ya cuando el freezetime haya terminado
Pawn Básico no critiquen xD
Mensajes: 395
Temas: 48
Registro en: Oct 2018
Reputación:
6
21/05/2022, 04:06 PM
(Última modificación: 21/05/2022, 04:07 PM por [E]manuelitop15. Edited 1 time in total.)
(21/05/2022, 03:56 PM)Meliodas escribió: estoy usando los mismo de esta publicacion, y lo que digo es que como en el cs go que cuando apuntas a un jugador tambien salga el sprite esto ya cuando el freezetime haya terminado
Ah bien, no sé que te fallara entonces que te aparecen mal los números, capaz sea otra cosa de tu amxx o no sé, con respecto al apuntar a un jugador no sabría decirte ya que son sprites con entidades que se mueven dependiendo donde se encuentra ese jugador. Y crear, remover eso cada vez que apuntas no sé si funcionaria muy bien. Pero que se puede hacer como decís se puede.
___________________________________
SI NECESITAS UN PLUGIN TE LO HAGO $$$
COMUNICATE A MI DISCORD: emanuelitop15
Mensajes: 2,094
Temas: 59
Registro en: Feb 2015
Reputación:
15
(21/05/2022, 03:56 PM)Meliodas escribió: estoy usando los mismo de esta publicacion, y lo que digo es que como en el cs go que cuando apuntas a un jugador tambien salga el sprite esto ya cuando el freezetime haya terminado
Usa el plugin de roccoxx y dinos si te da la misma falla.. No he visto el codigo de emanuelitop pero ahi sacas tu conclusion donde esta la falla
(18/11/2014, 05:47 PM)Neeeeeeeeeel.- escribió: Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.
(16/05/2016, 11:08 PM)kikizon2 escribió: No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
Mensajes: 200
Temas: 56
Registro en: Oct 2020
Reputación:
1
(21/05/2022, 06:06 PM)OsweRRR escribió: Usa el plugin de roccoxx y dinos si te da la misma falla.. No he visto el codigo de emanuelitop pero ahi sacas tu conclusion donde esta la falla
en el de roccoxx no esta ninguno de las 2 fallas que se ven en el video
Pawn Básico no critiquen xD
Mensajes: 3,020
Temas: 49
Registro en: Oct 2013
Reputación:
33
(22/05/2022, 01:57 AM)Meliodas escribió: en el de roccoxx no esta ninguno de las 2 fallas que se ven en el video
Entonces ya sabes cuál tenés que utilizar.
Ingeniero agrónomo y desarrollador de Software.
tutoriales-allied
buscas un zp?
"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"
Merci Alliedmodders pour m'introduire dans la programmation.
|