Veteran Member
|
04-06-2021
, 19:43
entity problem
|
#1
|
hello guys, i hope you are ok in this pandemic shit.
i have this code,
PHP Code:
#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < engine >
#include < fakemeta >
#include < fakemeta_util >
#include < fun >
#include < hamsandwich >
#define PLUGIN "BonusBox"
#define VERSION "1.0"
#define AUTHOR "SkepT Jr."
new const iTag[] = "^4[^3CSGO^4]^1"
new const ClassName [ ] = "BonusBox"
new models_box [] = {
"models/bonus_box/easter_egg.mdl"
};
const UNIT_SEC = 0x1000;
const FFADE = 0x0000;
#define FFADE_IN 0x0000
#define FFADE_OUT 0x0001
#define FFADE_MODULATE 0x0002
#define FFADE_STAYOUT 0x0004
#define SPEEDBOX 600.0
native set_user_scraps(id, value)
native set_user_money(id, value)
native set_user_keys(id, value)
native set_user_cases(id, value)
native get_user_scraps(id)
native get_user_money(id)
native get_user_keys(id)
native get_user_cases(id)
native is_user_logged(id)
public plugin_init ( ) {
register_plugin ( PLUGIN, VERSION, AUTHOR );
register_event ( "DeathMsg", "eDeath", "a" );
register_forward ( FM_PlayerPreThink, "ForcePlayerSpeed" );
register_forward ( FM_Touch, "Touch" );
RegisterHam ( Ham_Spawn, "player", "Ham_Spawn_Post", true );
// Add your code here...
}
public plugin_precache() {
for(new i; i < sizeof (models_box) ; i++)
precache_model(models_box)
}
public eDeath ( ) {
new iKiller = read_data (1);
new iVictim = read_data (2);
new iRandom = random_num(0, 10)
if ( iKiller == iVictim ) {
return PLUGIN_HANDLED;
}
if(iRandom > 5)
{
bonus_box ( iVictim );
}
return PLUGIN_HANDLED;
}
public bonus_box ( id ) {
if ( is_user_connected ( id ) && cs_get_user_team ( id ) != CS_TEAM_SPECTATOR ) {
new Ent = fm_create_entity ( "info_target" );
new Origin [ 3 ];
get_user_origin ( id, Origin, 0 );
set_pev ( Ent, pev_classname, ClassName )
engfunc ( EngFunc_SetModel, Ent, models_box [0] );
set_pev ( Ent, pev_mins, Float: { -10.0,-10.0,0.0 } );
set_pev ( Ent, pev_maxs, Float: { 10.0,10.0,25.0 } );
set_pev ( Ent, pev_size, Float: { -10.0,-10.0,0.0,10.0,10.0,25.0 } );
engfunc ( EngFunc_SetSize, Ent, Float: { -10.0, -10.0, 0.0 }, Float: { 10.0, 10.0, 25.0 } );
set_pev ( Ent,pev_solid, SOLID_BBOX );
set_pev ( Ent,pev_movetype, MOVETYPE_TOSS );
new Float: fOrigin [ 3 ];
IVecFVec ( Origin, fOrigin );
set_pev ( Ent, pev_origin, fOrigin );
}
}
public Touch ( toucher, touched ) {
if ( !is_user_alive ( toucher ) || !pev_valid ( touched ) )
return FMRES_IGNORED;
new classname [ 32 ];
pev ( touched, pev_classname, classname, 31 );
if (!equal ( classname, ClassName ) )
return FMRES_IGNORED;
if(is_user_logged(toucher) == 1)
{
give_bonus ( toucher );
}
else
client_print_color(toucher, print_team_default, "%s You must be logged in to get this from bonus box!", iTag)
set_pev ( touched, pev_effects, EF_NODRAW );
set_pev ( touched, pev_solid, SOLID_NOT );
remove_entity ( touched );
return FMRES_IGNORED;
}
public give_bonus ( id ) {
new iRandom = random_num(0,3)
new iRandomBonus, iMoney[MAX_PLAYERS + 1], iCases[MAX_PLAYERS + 1], iKeys[MAX_PLAYERS + 1], iScraps[MAX_PLAYERS + 1]
switch(iRandom)
{
case 0:
{
iMoney[id] = get_user_money(id)
iRandomBonus = random_num(-5,5)
if (iRandomBonus < 0)
{
if(iMoney[id] - iRandomBonus < 0)
{
client_print_color(id, print_team_default, "%s You haven't lost anything because you don't have enough.", iTag)
return PLUGIN_HANDLED
}
else
{
client_print_color(id, print_team_default, "%s You lost^4 %i^1 dolars.", iTag, iRandomBonus)
}
}
else if (iRandomBonus > 0)
{
client_print_color(id, print_team_default, "%s You win^4 %i^1 dolars!", iTag, iRandomBonus)
}
else if (iRandomBonus == 0)
{
client_print_color(id, print_team_default, "%s You didn't get anything!", iTag, iRandomBonus)
}
set_user_money(id, iRandomBonus)
}
case 1:
{
iCases[id] = get_user_cases(id)
iRandomBonus = random_num(-2,2)
if (iRandomBonus < 0)
{
if(iCases[id] - iRandomBonus < 0)
{
client_print_color(id, print_team_default, "%s You haven't lost anything because you don't have enough.", iTag)
return PLUGIN_HANDLED
}
else
{
client_print_color(id, print_team_default, "%s You lost^4 %i^1 case%s.", iTag, iRandomBonus, iRandomBonus == 1 ? "" : "s")
}
}
else if (iRandomBonus > 0)
{
client_print_color(id, print_team_default, "%s You win^4 %i^1 case%s!", iTag, iRandomBonus, iRandomBonus == 1 ? "" : "s")
}
else if (iRandomBonus == 0)
{
client_print_color(id, print_team_default, "%s You didn't get anything!", iTag, iRandomBonus)
}
set_user_cases(id, iRandomBonus)
}
case 2:
{
iKeys[id] = get_user_keys(id)
iRandomBonus = random_num(-2,2)
if (iRandomBonus < 0)
{
if(iKeys[id] - iRandomBonus < 0)
{
client_print_color(id, print_team_default, "%s You haven't lost anything because you don't have enough.", iTag)
return PLUGIN_HANDLED
}
else
{
client_print_color(id, print_team_default, "%s You lost^4 %i^1 key%s.", iTag, iRandomBonus, iRandomBonus == 1 ? "" : "s")
}
}
else if (iRandomBonus > 0)
{
client_print_color(id, print_team_default, "%s You win^4 %i^1 key%s!", iTag, iRandomBonus, iRandomBonus == 1 ? "" : "s")
}
else if (iRandomBonus == 0)
{
client_print_color(id, print_team_default, "%s You didn't get anything!", iTag, iRandomBonus)
}
set_user_money(id, iRandomBonus)
}
case 3:
{
iScraps[id] = get_user_scraps(id)
iRandomBonus = random_num(-6,6)
if (iRandomBonus < 0)
{
if(iKeys[id] - iRandomBonus < 0)
{
client_print_color(id, print_team_default, "%s You haven't lost anything because you don't have enough.", iTag)
return PLUGIN_HANDLED
}
else
{
client_print_color(id, print_team_default, "%s You lost^4 %i^1 key%s.", iTag, iRandomBonus, iRandomBonus == 1 ? "" : "s")
}
}
else if (iRandomBonus > 0)
{
client_print_color(id, print_team_default, "%s You win^4 %i^1 key%s!", iTag, iRandomBonus, iRandomBonus == 1 ? "" : "s")
}
else if (iRandomBonus == 0)
{
client_print_color(id, print_team_default, "%s You didn't get anything!", iTag, iRandomBonus)
}
set_user_money(id, iRandomBonus)
}
}
return PLUGIN_CONTINUE
}
but i don t know why sometimes i get 2,3 or all bonuses
Last edited by lexzor; 04-11-2021 at 10:42.
|
|