Thanks for help.
I rewrite the code and now it s looking like this, but i still have a problem (SV_HullForBsp: Hit a worldspawn with no model (models/menuskin/t_covid_white.mdl))
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <ColorChat>
#include <engine>
#include <fakemeta>
#include <nvault>
#define PLUGIN "SkinMenu"
#define VERSION "3.0"
#define AUTHOR "lexzor"
new key = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9|MENU_KEY_0;
new const tag[ ]= "JoiNET"
new iTeam;
new checkCT[32]
new checkT[32]
new checkPS[32]
new iEntityMask;
new cmask[32]
new checkMS[32]
new checkMS3[32]
new checkMS2[][] = {
"WHITE",
"BLACK",
"RED",
"GREEN",
"YELLOW"
}
new name[32]
new vaultdata[256]
new nVault
new camera
new cam
new f = 13
new const nVaultName[ ] = "skinmenu";
new skins[][]={ // 12 skinuri, skins[0] este "", deci numaratoarea incepe de la 1 si se termina la 12
// astfel definim i=1 (de unde incepe) si f12 (unde se termina) pentru precache
"",
"models/menuskin/t_santa.mdl",
"models/menuskin/ct_santa.mdl",
"models/menuskin/t_covid_white.mdl",
"models/menuskin/t_covid_black.mdl",
"models/menuskin/t_covid_red.mdl",
"models/menuskin/t_covid_green.mdl",
"models/menuskin/t_covid_yellow.mdl",
"models/menuskin/ct_covid_yellow.mdl",
"models/menuskin/ct_covid_white.mdl",
"models/menuskin/ct_covid_black.mdl",
"models/menuskin/ct_covid_red.mdl",
"models/menuskin/ct_covid_green.mdl",
""
}
new playerskins[][] = {
"sias",
"fbi",
"isis",
"alqaeda"
}
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("amx_vskin", "menuVIP")
register_clcmd("amx_show", "show")
register_clcmd("amx_try", "client_disconnected")
register_menu("menuVIP", key, "menuVIP_handler")
register_menu("playerskin", key, "playerskin_handler")
register_menu("covidmask", key, "covidmask_handler")
//register_event( "ResetHUD", "taskdo", "be" );
RegisterHam(Ham_Spawn, "player", "taskdo", 1)
nVault = nvault_open(nVaultName)
if (nVault == INVALID_HANDLE)
set_fail_state("[SKINMENU] Plugin can't open nVault file!")
}
public plugin_precache(){
static playermodels[256]
static models[256]
for (new i = 0; i < sizeof(playerskins) -1; i++){
formatex(playermodels, charsmax(playermodels), "models/player/%s/%s.mdl", playerskins[i], playerskins[i])
precache_model(playermodels)
}
precache_model(skins[1])
precache_model(skins[2])
precache_model(skins[3])
precache_model(skins[4])
precache_model(skins[5])
precache_model(skins[6])
precache_model(skins[7])
precache_model(skins[8])
precache_model(skins[9])
precache_model(skins[10])
precache_model(skins[11])
precache_model(skins[12])
}
public cmdSave(id){
formatex( vaultdata, charsmax(vaultdata), "%i#%i#%i", checkPS[id], checkT[id], checkCT[id] )
nvault_set(nVault, name, vaultdata)
}
public cmdGet(id){
get_user_name(id, name, charsmax(name))
new checkps[10], checkt[10], checkct[10], checkms[10], checkms3[10]
nvault_get(nVault, name, vaultdata, charsmax(vaultdata))
replace_all(vaultdata, charsmax(vaultdata), "#", " ")
parse(vaultdata, checkps, charsmax(checkps), checkt, charsmax(checkt), checkct, charsmax(checkct))
checkPS[id] = str_to_num(checkps)
checkT[id] = str_to_num(checkt)
checkCT[id] = str_to_num(checkct)
}
public menuVIP(id){
static szMenu[650], ilen
ilen = 0
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r[%s]\y VIP MENU^n^n", tag)
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r1.\w Player Skins^n^n")
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r2.\w Covid Mask^n^n")
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r3.\w Camera View - %s^n^n", camera ? "\r[3RD Person View]" : "\r[Normal View]" )
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r0.\y Exit")
show_menu(id, key, szMenu, -1, "menuVIP")
}
public menuVIP_handler(id, key){
if (!(is_user_alive(id))){
ColorChat(id, GREEN, "^x04[%s]^x01 You must be^x04 alive^x01 to use this menu!", tag)
menuVIP(id)
return 0
}
switch(key){
case 0:{
playerskin(id)
}
case 1:{
covidmask(id)
}
case 2:{
if (camera && !cam){
camera = false;
if(is_user_alive(id))
ColorChat(id, GREEN, "^x04[%s]^x01 You changed camera to^x04 Normal View^x01.", tag);
client_cmd(id, "cam")
} else if (!camera && !cam){
camera = true;
if(is_user_alive(id))
ColorChat(id, GREEN, "^x04[%s]^x01 You changed camera to^x04 3RD Person View^x01.", tag);
client_cmd(id, "cam")
} else if ( cam ){
ColorChat(id, GREEN, "^x04[%s]^x01 You can set^x04 view^x01 just in first^x04 15 seconds^x01 of every round!", tag)
}
menuVIP(id)
}
case 9:{
ColorChat(id, GREEN, "^x04[%s]^x01 You left^x04 VIP SKIN MENU^x01.", tag)
}
}
}
public playerskin(id){
static szMenu2[650], ilen
ilen = 0
iTeam = get_user_team(id)
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r[%s]\y PLAYER SKIN MENU^n^n", tag)
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r1.\y Default Skin - %s^n^n", checkPS[id] == 0 ? "\y[ON]" : "\r[OFF]")
if (iTeam == 1){
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r2.\w ISIS Killer - %s^n", checkPS[id] == 1 ? "\y[ON]" : "\r[OFF]")
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r3.\w aL-Qaeda Hitman - %s^n^n", checkPS[id] == 2 ? "\y[ON]" : "\r[OFF]")
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r4.\w FBI Agent -\d [CT ONLY]^n")
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r5.\w SIAS Specialist -\d [CT ONLY]^n^n")
}else if ( iTeam == 2 ){
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r2.\w ISIS Killer -\d [T ONLY]^n")
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r3.\w aL-Qaeda Hitman -\d [T ONLY]^n^n")
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r4.\w FBI Agent - %s^n", checkPS[id] == 3 ? "\y[ON]" : "\r[OFF]")
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r5.\w SIAS Specialist - %s^n^n", checkPS[id] == 4 ? "\y[ON]" : "\r[OFF]")
}
ilen += formatex(szMenu2[ilen], charsmax(szMenu2), "\r0.\y Back")
show_menu(id, key, szMenu2, -1, "playerskin")
}
public playerskin_handler(id, key){
if (!(is_user_alive(id))){
ColorChat(id, GREEN, "^x04[%s]^x01 You must be^x04 alive^x01 to use this menu!", tag)
playerskin(id)
return 0
}
iTeam = get_user_team(id)
if(is_user_alive(id)){
switch(key){
case 0: {
checkPS[id] = 0;
checkCT[id] = 0;
checkT[id] = 0;
cs_reset_user_model(id)
ColorChat(id, GREEN, "^x04[%s]^x01 You choose^x04 default^x01 skin!", tag)
}
case 1:{
if (iTeam == 1){
checkT[id] = 1
checkPS[id] = 1
cs_reset_user_model(id)
cs_set_user_model(id, "isis")
ColorChat(id, GREEN, "^x04[%s]^x01 You choose^x04 ISIS Killer^x01 skin!", tag)
}
if (iTeam == 2){
ColorChat(id, GREEN, "^x04[%s]^x01 You can't choose this skin!", tag)
}
playerskin(id)
}
case 2:{
if (iTeam == 1){
checkT[id] = 2
checkPS[id] = 2
cs_reset_user_model(id)
cs_set_user_model(id, "alqaeda")
ColorChat(id, GREEN, "^x04[%s]^x01 You choose^x04 aL-Qaeda Hitman^x01 skin!", tag)
playerskin(id)
}
if (iTeam == 2){
ColorChat(id, GREEN, "^x04[%s]^x01 You can't choose this skin!", tag)
playerskin(id)
}
}
case 3:{
if (iTeam == 2){
checkCT[id] = 1
checkPS[id] = 3
cs_reset_user_model(id)
cs_set_user_model(id, "fbi")
ColorChat(id, GREEN, "^x04[%s]^x01 You choose^x04 FBI Agent^x01 skin!", tag)
playerskin(id)
}
if (iTeam == 1){
ColorChat(id, GREEN, "^x04[%s]^x01 You can't choose this skin!", tag)
playerskin(id)
}
}
case 4:{
if (iTeam == 2){
checkCT[id] = 2
checkPS[id] = 4
cs_reset_user_model(id)
cs_set_user_model(id, "sias")
ColorChat(id, GREEN, "^x04[%s]^x01 You choose^x04 SIAS Specialist^x01 skin!", tag)
playerskin(id)
}
if (iTeam == 1){
ColorChat(id, GREEN, "^x04[%s]^x01 You can't choose this skin!", tag)
playerskin(id)
}
}
case 9:{
menuVIP(id)
}
}
} else ColorChat(id, GREEN,"^x04[%s]^x01 You must be^x04 alive^x01 to use this menu!", tag)
}
public covidmask(id){
static szMenu[650], ilen
ilen = 0
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r[%s]\y COVIDMASK MENU^n^n", tag)
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r1.\w Covid Mask - %s^n", checkMS[id] ? "\y[ON]" : "\r[OFF]" )
if(checkMS[id])
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r2.\w Covid Mask Color - \y[%s]^n^n", checkMS2[checkMS3[id]] )
else if (!checkMS[id])
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r2.\w Covid Mask Color - \d[DISABLED]^n^n")
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r0.\y Exit")
show_menu(id, key, szMenu, -1, "covidmask")
}
public covidmask_handler(id, key){
if (!(is_user_alive(id))){
ColorChat(id, GREEN, "^x04[%s]^x01 You must be^x04 alive^x01 to use this menu!", tag)
covidmask(id)
return 0
}
switch(key){
case 0:{
if(checkMS[id] == 1){
checkMS[id] = 0
ColorChat(id, GREEN, "^x04[%s]^x01 You disabled^x04 Covid Mask^x01 skin!", tag)
}
else if (checkMS[id] == 0){
checkMS[id] = 1
ColorChat(id, GREEN, "^x04[%s]^x01 You enabled^x04 Covid Mask^x01 skin!", tag)
}
covidmask(id)
mask(id)
}
case 1:{
if (checkMS[id])
checkMS3[id]++
if(checkMS3[id] == 5)
checkMS3[id] = 0
covidmask(id)
mask(id)
}
case 9:{
menuVIP(id)
}
}
}
public mask(id){
if (!(is_user_alive(id))) return 0
iTeam = get_user_team(id)
if(!(pev_valid(iEntityMask)))
iEntityMask = cmask[id] = create_entity("info_target")
if(pev_valid(iEntityMask)){
if(checkMS[id] == 1){
set_pev(cmask[id], pev_effects, pev(cmask[id], pev_effects) & ~EF_NODRAW)
}
else if (checkMS[id] == 0){
set_pev(cmask[id], pev_effects, pev(cmask[id], pev_effects) | EF_NODRAW)
}
if ( iTeam == 1) {
switch(checkMS3[id]){
case 0 : entity_set_model(cmask[id], skins[3])
case 1 : entity_set_model(cmask[id], skins[4])
case 2 : entity_set_model(cmask[id], skins[5])
case 3 : entity_set_model(cmask[id], skins[6])
case 4 : entity_set_model(cmask[id], skins[7])
}
} else if ( iTeam == 2 ){
switch(checkMS3[id]){
case 0 : entity_set_model(cmask[id], skins[8])
case 1 : entity_set_model(cmask[id], skins[9])
case 2 : entity_set_model(cmask[id], skins[10])
case 3 : entity_set_model(cmask[id], skins[11])
case 4 : entity_set_model(cmask[id], skins[12])
}
}
entity_set_int( iEntityMask, EV_INT_movetype, MOVETYPE_FOLLOW );
entity_set_edict( iEntityMask, EV_ENT_aiment, id );
}
}
public show(id){
if(get_user_flags(id) & ADMIN_IMMUNITY)
ColorChat(id, GREEN, "^x04[%s]^x01 SkinCT %i, SkinT %i, Mask %i , MaskColor %i!", tag, checkCT[id], checkT[id], checkMS[id], checkMS3[id])
}
public client_disconnected(id){
cmdSave(id)
if (pev_valid(cmask[id]) && cmask[id] > 0 ){
remove_entity(cmask[id])
ColorChat(0, GREEN, "^x04[%s]^x01 %i", tag, cmask[id])
}
}
public client_connect(id){
cmdGet(id)
}
public skincheck(id){
cam = false
iTeam = get_user_team(id)
if(is_user_alive(id) && checkPS[id] != 0){
if ( iTeam == 1 ){
if (checkT[id] == 0 ) cs_reset_user_model(id)
switch(checkT[id]){
case 1:{
cs_reset_user_model(id)
cs_set_user_model(id, "isis")
}
case 2:{
cs_reset_user_model(id)
cs_set_user_model(id, "alqaeda")
}
}
} else if ( iTeam == 2 ){
if (checkCT[id] == 0 ) cs_reset_user_model(id)
switch(checkCT[id]){
case 1:{
cs_reset_user_model(id)
cs_set_user_model(id, "fbi")
}
case 2:{
cs_reset_user_model(id)
cs_set_user_model(id, "sias")
}
}
}
}
}
public camset(id){
//if(!(get_user_flags(id) & VIP_FLAG)) return 0
set_view(id, CAMERA_NONE)
cam = true
camera = false
}
public taskdo(id){
set_task(0.1, "skincheck", id)
set_task(0.1, "mask", id)
set_task(15.0, "camset", id)
}