i have problem with saving and getting info from nvault with this plugin, but i don t know why.
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 name[32]
new vaultdata[256]
new nVault
new camera
new cam
new const nVaultName[ ] = "menuskin";
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_event( "ResetHUD", "taskdo", "be" );
nVault = nvault_open(nVaultName)
if (nVault == INVALID_HANDLE)
set_fail_state("[SKINMENU] Plugin can't open nVault file!")
}
public plugin_precache(){
static playermodels[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)
}
}
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]
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")
ilen += formatex(szMenu[ilen], charsmax(szMenu), "\r2.\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)
return 0
}
switch(key){
case 0:{
playerskin(id)
}
case 1:{
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)
return 0
}
iTeam = get_user_team(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)
}
}
}
public show(id){
ColorChat(id, GREEN, "^x04[%s]^x01 SkinCT %i, SkinT %i!", tag, checkCT[id], checkT[id])
}
public client_disconnected(id){
cmdSave(id)
}
public client_connect(id){
cmdGet(id)
}
public skincheck(id){
cmdSave(id)
cam = false
iTeam = get_user_team(id)
if(is_user_alive(id)) cs_reset_user_model(id)
if(is_user_alive(id) && checkPS[id] != 0){
if ( iTeam == 1 ){
switch(checkT[id]){
case 1:{
cs_set_user_model(id, "isis")
}
case 2:{
cs_set_user_model(id, "alqaeda")
}
}
} else if ( iTeam == 2 ){
switch(checkCT[id]){
case 1:{
cs_set_user_model(id, "fbi")
}
case 2:{
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(15.0, "camset", id)
}