Raised This Month: $12 Target: $400
 3% 

[Help] How to save a model using nVault


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Napoleon_be
Veteran Member
Join Date: Jul 2011
Location: Belgium
Old 02-29-2012 , 10:55   [Help] How to save a model using nVault
Reply With Quote #1

Title say all. How do i save a model using nVault? And also, if i change weapon, the weapon dissapears, my CurWeapon event code:
PHP Code:
public CurrentWeapon(iPlayer) {
    if(
HasLightSaber[iPlayer] == true && read_data(2) == CSW_KNIFE) {
        
entity_set_string(iPlayerEV_SZ_weaponmodel"models/FnLightSaber/pLightSaber.mdl")
        
entity_set_string(iPlayerEV_SZ_viewmodel"models/FnLightSaber/vLightSaber.mdl")
        return 
PLUGIN_CONTINUE
    
}
    return 
PLUGIN_CONTINUE

__________________
Napoleon_be is offline
Send a message via Skype™ to Napoleon_be
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 02-29-2012 , 11:03   Re: [Help] How to save a model using nVault
Reply With Quote #2

Code:
new gVault; public plugin_init() {     gVault = nvault_open("weapon_models"); } public plugin_end() {     nvault_close(gVault); } SaveModels(id, weaponID, v_model[], p_model[]) {     new steamID[35], weaponName[21], key[64];     get_user_authid(id, steamID, charsmax(steamID));     get_weaponname(weaponID, weaponName, charsmax(weaponName));         formatex(key, charsmax(key), "%s-%s-v", steamID, weaponName);     nvault_set(gVault, key, v_model);         formatex(key, charsmax(key), "%s-%s-p", steamID, weaponName);     nvault_set(gVault, key, p_model); } GetModels(id, weaponID, v_model[], v_model_len, p_model[], p_model_len) {     new steamID[35], weaponName[21], key[64];     get_user_authid(id, steamID, charsmax(steamID));     get_weaponname(weaponID, weaponName, charsmax(weaponName));         formatex(key, charsmax(key), "%s-%s-v", steamID, weaponName);     nvault_get(gVault, key, v_model, v_model_len);         formatex(key, charsmax(key), "%s-%s-p", steamID, weaponName);     nvault_get(gVault, key, p_model, p_model_len); }

Code:
// to save a new knife model for a player SaveModels(id, CSW_KNIFE, "models/new/v_knife.mdl", "models/new/p_knife.mdl"); // to get models player is using new v_model[64], p_model[64]; GetModels(id, CSW_KNIFE, v_model, charsmax(v_model), p_model, charsmax(p_model)); if(v_model[0]) {     // set view model } if(p_model[0]) {     // set weapon model }

Hook Ham_Item_Deploy as a post hook and set the model there.
__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!
Exolent[jNr] is offline
Napoleon_be
Veteran Member
Join Date: Jul 2011
Location: Belgium
Old 02-29-2012 , 12:18   Re: [Help] How to save a model using nVault
Reply With Quote #3

How to use Ham_Item_Deploy?

PHP Code:
public CurrentWeapon(iPlayer) {
    
    new 
v_model[64], p_model[64];
    
GetModels(iPlayerCSW_KNIFEv_modelcharsmax(v_model), p_modelcharsmax(p_model));
    
    if(
v_model[0]) {
        
entity_set_string(iPlayerEV_SZ_viewmodel"models/FnLightSaber/vLightSaber.mdl")
    }
    if(
p_model[0]) {
        
entity_set_string(iPlayerEV_SZ_weaponmodel"models/FnLightSaber/pLightSaber.mdl")
    }

PHP Code:
case 0: {
                if(
iCash[iPlayer] >= 5000) {
                    
iCash[iPlayer] -= 5000
                    entity_set_string
(iPlayerEV_SZ_weaponmodel"models/FnLightSaber/pLightSaber.mdl");
                    
entity_set_string(iPlayerEV_SZ_viewmodel"models/FnLightSaber/vLightSaber.mdl");
                    
ColorChat(iPlayerGREEN"|%s|^x01 You've bought the^x03 LightSaber^x01 for^x04 5000$!"szPrefix);
                    
SaveModels(iPlayerCSW_KNIFE"models/FnLightSaber/pLightSaber.mdl""models/FnLightSaber/vLightSaber.mdl");
                    
HasLightSaber[iPlayer] = true;
                }
                else {
                    
ColorChat(iPlayerGREEN"|%s|^x01 You do not have enough^x04 JB Cash^x01 to buy that item!"szPrefix)
                }
            } 
PHP Code:
SaveModels(idweaponIDv_model[], p_model[]) {
    new 
steamID[35], weaponName[21], key[64];
    
get_user_authid(idsteamIDcharsmax(steamID));
    
get_weaponname(weaponIDweaponNamecharsmax(weaponName));
    
    
formatex(keycharsmax(key), "%s-%s-v"steamIDweaponName);
    
nvault_set(gVaultkeyv_model);
    
    
formatex(keycharsmax(key), "%s-%s-p"steamIDweaponName);
    
nvault_set(gVaultkeyp_model);
}

GetModels(idweaponIDv_model[], v_model_lenp_model[], p_model_len) {
    new 
steamID[35], weaponName[21], key[64];
    
get_user_authid(idsteamIDcharsmax(steamID));
    
get_weaponname(weaponIDweaponNamecharsmax(weaponName));
    
    
formatex(keycharsmax(key), "%s-%s-v"steamIDweaponName);
    
nvault_get(gVaultkeyv_modelv_model_len);
    
    
formatex(keycharsmax(key), "%s-%s-p"steamIDweaponName);
    
nvault_get(gVaultkeyp_modelp_model_len);

Got this, but it ain't working.
__________________

Last edited by Napoleon_be; 02-29-2012 at 12:18.
Napoleon_be is offline
Send a message via Skype™ to Napoleon_be
Old 03-01-2012, 06:41
Napoleon_be
This message has been deleted by Exolent[jNr]. Reason: Don't bump until 2 weeks have passed since last post.
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 03-01-2012 , 09:46   Re: [Help] How to save a model using nVault
Reply With Quote #4

Don't bump until 2 weeks have passed since last post.

To use Ham_Item_Deploy, you need to grab the player's index from the entity that is passed to the function

Code:
#include <amxmodx> #include <nvault> #include <fakemeta> #include <hamsandwich> // private data for weapons const XO_WEAPONS = 4; const m_pPlayer = 41; public plugin_init() {     // hook after the knife has deployed     RegisterHam(Ham_Item_Deploy, "weapon_knife", "FwdDeployKnifePost", 1); } public FwdDeployKnifePost(entity) {     // check if entity can has private data     if(pev_valid(entity) == 2) {         // grab the player id holding the weapon         new id = get_pdata_cbase(entity, m_pPlayer, XO_WEAPONS);                 // grab models         new v_model[64], p_model[64];         GetModels(id, CSW_KNIFE, v_model, charsmax(v_model), p_model, charsmax(p_model));                 // if has view model         if(v_model[0]) {             // set view model             set_pev(id, pev_viewmodel2, v_model);         }                 // if has player model         if(p_model[0]) {             // set player model             set_pev(id, pev_weaponmodel2, p_model);         }     } }
__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!
Exolent[jNr] is offline
Napoleon_be
Veteran Member
Join Date: Jul 2011
Location: Belgium
Old 03-01-2012 , 11:26   Re: [Help] How to save a model using nVault
Reply With Quote #5

Quote:
Originally Posted by Exolent[jNr] View Post
Don't bump until 2 weeks have passed since last post.

To use Ham_Item_Deploy, you need to grab the player's index from the entity that is passed to the function

Code:
#include <amxmodx> #include <nvault> #include <fakemeta> #include <hamsandwich> // private data for weapons const XO_WEAPONS = 4; const m_pPlayer = 41; public plugin_init() { // hook after the knife has deployed RegisterHam(Ham_Item_Deploy, "weapon_knife", "FwdDeployKnifePost", 1); } public FwdDeployKnifePost(entity) { // check if entity can has private data if(pev_valid(entity) == 2) { // grab the player id holding the weapon new id = get_pdata_cbase(entity, m_pPlayer, XO_WEAPONS); // grab models new v_model[64], p_model[64]; GetModels(id, CSW_KNIFE, v_model, charsmax(v_model), p_model, charsmax(p_model)); // if has view model if(v_model[0]) { // set view model set_pev(id, pev_viewmodel2, v_model); } // if has player model if(p_model[0]) { // set player model set_pev(id, pev_weaponmodel2, p_model); } } }

Doesn't work, my knife is invisable.

EDIT: works fully. I'm having 3 models in my menu, how do i check which model he has bought to set it to him?
__________________

Last edited by Napoleon_be; 03-01-2012 at 11:36.
Napoleon_be is offline
Send a message via Skype™ to Napoleon_be
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 03-01-2012 , 11:46   Re: [Help] How to save a model using nVault
Reply With Quote #6

PHP Code:
#include <amxmodx>
#include <nvault>

new const gKnifeNames[][] = {
    
"Knife 1",
    
"Knife 2",
    
"Knife 3"
};

#define TOTAL_KNIVES sizeof(gKnifeNames)

enum _:ModelViews {
    
Model_View,
    
Model_Player
};

new const 
gKnifeModels[TOTAL_KNIVES][ModelViews][] = {
    {
"models/new/v_knife1.mdl""models/new/p_knife1.mdl"},
    {
"models/new/v_knife2.mdl""models/new/p_knife2.mdl"},
    {
"models/new/v_knife3.mdl""models/new/p_knife3.mdl"}
};

new 
gMenuKnife;

public 
plugin_precache() {
    
// precache all knife models
    
for(new 0TOTAL_KNIVESi++) {
        
precache_model(gKnifeModels[i][Model_View]);
        
precache_model(gKnifeModels[i][Model_Player]);
    }
}

public 
plugin_init() {
    
// create the menu
    
gMenuKnife menu_create("Select a knife:""MenuKnife");
    
    
// add a default in case players don't want custom
    
menu_additem(gMenuKnife"\yDefault""-1");
    
    
// add all custom knives
    
new indexString[11];
    for(new 
0TOTAL_KNIVESi++) {
        
num_to_str(iindexStringcharsmax(indexString));
        
        
menu_additem(gMenuKnifegKnifeNames[i], indexString);
    }
}

public 
MenuKnife(idmenuitem) {
    if(
item == MENU_EXIT) {
        return;
    }
    
    new 
_accessindexString[11], callback;
    
menu_item_getinfo(menuitem_accessindexStringcharsmax(indexString), __callback);
    
    
// grab selected item
    
new index str_to_num(indexString);
    
    
// check if chose default
    
if(index == -1) {
        
// set blank models so the default knife model is used
        
SaveModels(idCSW_KNIFE"""");
    } else {
        
// save new models
        
SaveModels(idCSW_KNIFEgKnifeModels[index][Model_View], gKnifeModels[index][Model_Player]);
    }

Remember that those functions were made for multiple weapon support.
If you are making just a knife menu, these codes could be made a lot shorter.
__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!
Exolent[jNr] is offline
Napoleon_be
Veteran Member
Join Date: Jul 2011
Location: Belgium
Old 03-01-2012 , 12:34   Re: [Help] How to save a model using nVault
Reply With Quote #7

Im having a model called "jason.mdl" with only view model i guess, how do i change this into the new const gKnifeModels[TOTAL_KNIVES][ModelViews][] = { ?

EDIt: After changing to a different map, my lightsaber is gone even tho i bought it previous map.

PHP Code:
case 0: {
                if(
iCash[iPlayer] >= 40000) {
                    
iCash[iPlayer] -= 40000
                    entity_set_string
(iPlayerEV_SZ_weaponmodel"models/FnLightSaber/pLightSaber.mdl");
                    
entity_set_string(iPlayerEV_SZ_viewmodel"models/FnLightSaber/vLightSaber.mdl");
                    
ColorChat(iPlayerGREEN"|%s|^x01 You've bought the^x03 LightSaber^x01 for^x04 40000$!"szPrefix);
                    
SaveModels(iPlayerCSW_KNIFE"models/FnLightSaber/pLightSaber.mdl""models/FnLightSaber/vLightSaber.mdl");
                    
HasLightSaber[iPlayer] = true;
                }
                else {
                    
ColorChat(iPlayerGREEN"|%s|^x01 You do not have enough^x04 JB Cash^x01 to buy that item!"szPrefix)
                }
            } 
PHP Code:
public CurrentWeapon(iPlayer) {
    
    new 
v_model[64], p_model[64];
    
GetModels(iPlayerCSW_KNIFEv_modelcharsmax(v_model), p_modelcharsmax(p_model));
    
    if(
v_model[0]) {
        
entity_set_string(iPlayerEV_SZ_viewmodel"models/FnLightSaber/vLightSaber.mdl")
    }
    if(
p_model[0]) {
        
entity_set_string(iPlayerEV_SZ_weaponmodel"models/FnLightSaber/pLightSaber.mdl")
    }

PHP Code:
SaveModels(idweaponIDv_model[], p_model[]) {
    new 
steamID[35], weaponName[21], key[64];
    
get_user_authid(idsteamIDcharsmax(steamID));
    
get_weaponname(weaponIDweaponNamecharsmax(weaponName));
    
    
formatex(keycharsmax(key), "%s-%s-v"steamIDweaponName);
    
nvault_set(gVaultkeyv_model);
    
    
formatex(keycharsmax(key), "%s-%s-p"steamIDweaponName);
    
nvault_set(gVaultkeyp_model);
}

GetModels(idweaponIDv_model[], v_model_lenp_model[], p_model_len) {
    new 
steamID[35], weaponName[21], key[64];
    
get_user_authid(idsteamIDcharsmax(steamID));
    
get_weaponname(weaponIDweaponNamecharsmax(weaponName));
    
    
formatex(keycharsmax(key), "%s-%s-v"steamIDweaponName);
    
nvault_get(gVaultkeyv_modelv_model_len);
    
    
formatex(keycharsmax(key), "%s-%s-p"steamIDweaponName);
    
nvault_get(gVaultkeyp_modelp_model_len);

__________________

Last edited by Napoleon_be; 03-01-2012 at 13:00.
Napoleon_be is offline
Send a message via Skype™ to Napoleon_be
Exolent[jNr]
Veteran Member
Join Date: Feb 2007
Location: Tennessee
Old 03-01-2012 , 13:28   Re: [Help] How to save a model using nVault
Reply With Quote #8

Quote:
Originally Posted by Napoleon_be View Post
Im having a model called "jason.mdl" with only view model i guess, how do i change this into the new const gKnifeModels[TOTAL_KNIVES][ModelViews][] = { ?
PHP Code:
new const gKnifeNames[][] = { 
    
"Jason" 
}; 

#define TOTAL_KNIVES sizeof(gKnifeNames) 

enum _:ModelViews 
    
Model_View
    
Model_Player 
}; 

new const 
gKnifeModels[TOTAL_KNIVES][ModelViews][] = { 
    {
"models/jason.mdl"""// left blank to use the default player model
}; 
Quote:
Originally Posted by Napoleon_be View Post
EDIt: After changing to a different map, my lightsaber is gone even tho i bought it previous map.

PHP Code:
case 0: {
                if(
iCash[iPlayer] >= 40000) {
                    
iCash[iPlayer] -= 40000
                    entity_set_string
(iPlayerEV_SZ_weaponmodel"models/FnLightSaber/pLightSaber.mdl");
                    
entity_set_string(iPlayerEV_SZ_viewmodel"models/FnLightSaber/vLightSaber.mdl");
                    
ColorChat(iPlayerGREEN"|%s|^x01 You've bought the^x03 LightSaber^x01 for^x04 40000$!"szPrefix);
                    
SaveModels(iPlayerCSW_KNIFE"models/FnLightSaber/pLightSaber.mdl""models/FnLightSaber/vLightSaber.mdl");
                    
HasLightSaber[iPlayer] = true;
                }
                else {
                    
ColorChat(iPlayerGREEN"|%s|^x01 You do not have enough^x04 JB Cash^x01 to buy that item!"szPrefix)
                }
            } 
The code is fine for saving so you're doing something else wrong.
Show the full code.

Quote:
Originally Posted by Napoleon_be View Post
PHP Code:
public CurrentWeapon(iPlayer) {
    
    new 
v_model[64], p_model[64];
    
GetModels(iPlayerCSW_KNIFEv_modelcharsmax(v_model), p_modelcharsmax(p_model));
    
    if(
v_model[0]) {
        
entity_set_string(iPlayerEV_SZ_viewmodel"models/FnLightSaber/vLightSaber.mdl")
    }
    if(
p_model[0]) {
        
entity_set_string(iPlayerEV_SZ_weaponmodel"models/FnLightSaber/pLightSaber.mdl")
    }

Do you even know what v_model and p_model are for?
Why are you hard-coding that light saber model?


I don't understand how you can be selling plugins when you have difficulties with something as simple as this.
__________________
No private work or selling mods.
Quote:
Originally Posted by xPaw View Post
I love you exolent!
Exolent[jNr] is offline
Napoleon_be
Veteran Member
Join Date: Jul 2011
Location: Belgium
Old 03-02-2012 , 03:04   Re: [Help] How to save a model using nVault
Reply With Quote #9

Quote:
Originally Posted by Exolent[jNr] View Post
PHP Code:
new const gKnifeNames[][] = { 
    
"Jason" 
}; 

#define TOTAL_KNIVES sizeof(gKnifeNames) 

enum _:ModelViews 
    
Model_View
    
Model_Player 
}; 

new const 
gKnifeModels[TOTAL_KNIVES][ModelViews][] = { 
    {
"models/jason.mdl"""// left blank to use the default player model
}; 
The code is fine for saving so you're doing something else wrong.
Show the full code.



Do you even know what v_model and p_model are for?
Why are you hard-coding that light saber model?


I don't understand how you can be selling plugins when you have difficulties with something as simple as this.
I'll send you the full code via PM. When i'm back home from school.
__________________

Last edited by Napoleon_be; 03-02-2012 at 03:04.
Napoleon_be is offline
Send a message via Skype™ to Napoleon_be
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 11:58.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode