Post by notblade99 on Apr 30, 2021 22:07:24 GMT
How to i make my HudInformation in Zombie plague look smaller? Or with different font?
Current code:
Besides how could i add the current human class i have?
My human classes
Current code:
set_dhudmessage(color[0], color[1], color[2], -1.0, 0.86, 0, 6.0, 1.1, 0.0, 0.0)
show_dhudmessage(ID_SHOWHUD, "[Health: %i] [Armor: %d] [%s]^n[Level: %i] [XP: %i%/%i%]", pev(ID_SHOWHUD, pev_health), pev(ID_SHOWHUD, pev_armorvalue ), class, BM_GetUserData(id, Level), BM_GetUserData(id, Exp), BM_GetUserExpForNextLevel(id))
Besides how could i add the current human class i have?
My human classes
#include < amxmodx >
#include < fakemeta >
#include < hamsandwich >
#include < bm_buymenu >
#include < colorchat >
native cs_set_player_model ( id, const model [ ] )
native cs_reset_player_model ( id )
//#define TEST
#if !defined TEST
#include < zombieplague >
#endif
#define NAME_LEN 32
#define MODEL_LEN 32
#define SUBNAME_LEN 64
#define NIK_LEN 32
// AMXX Forwards
new Array:classNames,
Array:classSubnames,
Array:classModel,
Array:classHealth,
Array:classGravity,
Array:classArmor,
Array:classFlag,
Array:classLVL,
Array:classNik,
g_iClassCount;
new g_iUserClass[33], g_iNextClass[33];
public plugin_natives()
{
register_native("zp_register_class_human", "_register_human_class");
register_native("zp_get_class_human_count", "_get_count");
register_native("zp_get_user_class", "_get_userclass")
register_native("zp_set_user_nextclass", "_set_nextclass");
}
public plugin_precache()
{
classNames = ArrayCreate(NAME_LEN, 1);
classSubnames = ArrayCreate(SUBNAME_LEN, 1);
classModel = ArrayCreate(MODEL_LEN, 1);
classHealth = ArrayCreate(1, 1);
classGravity = ArrayCreate(1, 1);
classArmor = ArrayCreate(1, 1);
classFlag = ArrayCreate(1, 1);
classLVL = ArrayCreate(1, 1);
classNik = ArrayCreate(NIK_LEN, 1);
}
public plugin_init()
{
register_plugin("[ZP] Human classes", "0.1", "Ergo proxy");
register_clcmd("hmenu", "menu_humanclass_open");
RegisterHam(Ham_Spawn, "player", "HookHam_PlayerSpawn", 1)
}
public client_putinserver(id)
{
if (get_user_flags(id) & ADMIN_LEVEL_B)
{
g_iUserClass[id] = g_iNextClass[id] = 3
} else
if (get_user_flags(id) & ADMIN_LEVEL_A)
{
g_iUserClass[id] = g_iNextClass[id] = 4
}
else
{
g_iUserClass[id] = g_iNextClass[id] = random_num(0, 1);
}
}
// Natives
// Example: new myClass = zp_register_class_human("Bob","CoolGuy","gign",250.0,1.0,15.0);
public _register_human_class()
{
new sName[NAME_LEN];
get_string(1, sName, NAME_LEN - 1);
ArrayPushString(classNames, sName);
new sDesc[SUBNAME_LEN];
get_string(2, sDesc, SUBNAME_LEN - 1);
ArrayPushString(classSubnames, sDesc);
new sModel[MODEL_LEN];
get_string(3, sModel, MODEL_LEN - 1);
ArrayPushString(classModel, sModel);
new sModelFile[256];
format(sModelFile,255,"models/player/%s/%s.mdl",sModel,sModel);
engfunc(EngFunc_PrecacheModel,sModelFile);
new Float:health = get_param_f(4);
ArrayPushCell(classHealth, health);
new Float:gravity = get_param_f(5);
ArrayPushCell(classGravity, gravity);
new Float:armor = get_param_f(6);
ArrayPushCell(classArmor, armor);
new flag = get_param(7);
ArrayPushCell(classFlag, flag);
new LVL = get_param(8);
ArrayPushCell(classLVL, LVL);
new sNik[NIK_LEN];
get_string(9, sNik, NIK_LEN - 1);
ArrayPushString(classNik, sNik);
g_iClassCount++;
return g_iClassCount - 1;
}
public _get_userclass()
{
new iPlayer = get_param(1);
return g_iUserClass[iPlayer];
}
public _get_count()
{
return g_iClassCount;
}
public _set_nextclass()
{
new iPlayer = get_param(1);
new iCLassId = get_param(2);
g_iNextClass[iPlayer] = iCLassId;
}
// Cl cmds
new _menuId[33];
public menu_humanclass_open(const iPlayer)
{
if (_menuId[iPlayer])
menu_destroy(_menuId[iPlayer]);
_menuId[iPlayer] = menu_create("\yHuman Classes", "_menu_class_human_handler");
static i, text[256], sName[NAME_LEN], sDesc[SUBNAME_LEN], flag, LVL, sNik[NIK_LEN];
new player_name[32]
get_user_name(iPlayer, player_name, 31)
for (i = 0; i < g_iClassCount; i++)
{
ArrayGetString(classNames, i, sName, NAME_LEN - 1);
ArrayGetString(classSubnames, i, sDesc, SUBNAME_LEN - 1);
flag = ArrayGetCell(classFlag, i);
LVL = ArrayGetCell(classLVL, i);
ArrayGetString(classNik, i, sNik, NIK_LEN - 1);
format(text, 255, "%s%s \r[\y%s\r]", (g_iNextClass[iPlayer] == i ? "\y" : ((g_iUserClass[iPlayer] == i) ? "\r" : ((flag == 0 || (get_user_flags(iPlayer) & flag)) && (BM_GetUserData(iPlayer, Level) >= LVL) && (equal("0",sNik)||equal(player_name,sNik))) ? "\w" : "\d")), sName, sDesc);
menu_additem(_menuId[iPlayer], text);
menu_setprop(_menuId[iPlayer], MPROP_NEXTNAME, "Next")
menu_setprop(_menuId[iPlayer], MPROP_BACKNAME, "Back")
menu_setprop(_menuId[iPlayer], MPROP_EXITNAME, "Exit")
}
menu_display(iPlayer, _menuId[iPlayer]);
}
// Menu
public _menu_class_human_handler(const iPlayer,const iMenuId,const iItemId)
{
if (iItemId < 0)
return;
new player_name[32]
get_user_name(iPlayer, player_name, 31)
static sNik[NIK_LEN]
new flag = ArrayGetCell(classFlag, iItemId);
new LVL = ArrayGetCell(classLVL, iItemId);
ArrayGetString(classNik, iItemId, sNik, NIK_LEN - 1);
if (!equal(player_name,sNik) && !equal("0",sNik))
{
ColorChat(iPlayer,NORMAL,"^4[CSO]^1 Only available to the player [^4%s^1]!", sNik);
menu_display(iPlayer, _menuId[iPlayer]);
return;
} else
if (flag > 0 && !(get_user_flags(iPlayer) & flag))
{
ColorChat(iPlayer,NORMAL,"^4[CSO]^1 You do not have access to this class!");
menu_display(iPlayer, _menuId[iPlayer]);
return;
} else
if (LVL > 0 && (BM_GetUserData(iPlayer, Level) < LVL))
{
ColorChat(iPlayer,NORMAL,"^4[CSO]^1 Your ^4level ^1is not enough!");
menu_display(iPlayer, _menuId[iPlayer]);
return;
}
new sName[NAME_LEN];
ArrayGetString(classNames, iItemId, sName, NAME_LEN - 1);
ColorChat(iPlayer,NORMAL,"^4[CSO]^1 Your next class: ^4%s^1!", sName);
ColorChat(iPlayer,NORMAL,"^4[CSO]^1 Class will change after respawn!");
g_iNextClass[iPlayer] = iItemId;
menu_humanclass_open(iPlayer);
}
// Zombie Plague
public zp_user_humanized_post(iPlayer)
{
update_class(iPlayer);
}
// Ham
public HookHam_PlayerSpawn(const iPlayer)
{
#if !defined TEST
if (is_user_connected(iPlayer) && (zp_get_user_zombie(iPlayer) || zp_get_user_survivor(iPlayer)))
{
cs_reset_player_model( iPlayer );
return HAM_IGNORED;
}
#endif
if (is_user_alive(iPlayer))
update_class(iPlayer);
return HAM_IGNORED;
}
public zp_user_infected_pre( iPlayer )
{
if (is_user_connected(iPlayer))
cs_reset_player_model( iPlayer );
}
// Func's
update_class(const iPlayer)
{
if (is_user_connected(iPlayer) && (zp_get_user_zombie(iPlayer) || zp_get_user_survivor(iPlayer)))
{
cs_reset_player_model( iPlayer );
return;
}
if (g_iUserClass[iPlayer] != g_iNextClass[iPlayer])
{
g_iUserClass[iPlayer] = g_iNextClass[iPlayer];
new sName[NAME_LEN];
ArrayGetString(classNames, g_iNextClass[iPlayer], sName, NAME_LEN - 1);
ColorChat(iPlayer,NORMAL,"^4[CSO]^1 Current class: ^4%s^1!", sName);
}
new sModel[MODEL_LEN];
ArrayGetString(classModel, g_iUserClass[iPlayer], sModel, MODEL_LEN - 1);
new Float:health = ArrayGetCell(classHealth, g_iUserClass[iPlayer]);
set_pev(iPlayer, pev_health, health);
new Float:gravity = ArrayGetCell(classGravity, g_iUserClass[iPlayer]);
set_pev(iPlayer, pev_gravity, gravity);
new Float:armor = ArrayGetCell(classArmor, g_iUserClass[iPlayer]);
new Float:currentArmor;
pev(iPlayer, pev_armorvalue, currentArmor);
set_pev(iPlayer, pev_armorvalue, floatmax(armor, currentArmor));
#if !defined TEST
cs_set_player_model(iPlayer, sModel);
#endif
}