AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   need help with... (https://forums.alliedmods.net/showthread.php?t=98769)

drakeris 07-29-2009 03:22

need help with...
 
no mroe ;)

Xellath 07-29-2009 03:45

Re: need help with...
 
PHP Code:

register_clcmd("say /class""ChangeClass")

-->

register_clcmd("say /klase""ChangeClass"


drakeris 07-29-2009 03:50

Re: need help with...
 
Quote:

Originally Posted by Xellath (Post 884625)
PHP Code:

register_clcmd("say /class""ChangeClass")
 
-->
 
register_clcmd("say /klase""ChangeClass"


didnt help still its not opening the menu to chose class :/

MrOpposite 07-29-2009 04:02

Re: need help with...
 
I'm looking at it now, By running the script in debugmode, I located a problem at line 122

drakeris 07-29-2009 05:46

Re: need help with...
 
still need help :(((

MrOpposite 07-29-2009 18:56

Re: need help with...
 
I am not skilled enough to fix what's wrong. It complains about the pcvars, for unknown reason :S

EDIT:

PHP Code:


#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <fakemeta_util>
#include <cstrike>
#define MAXCLASSES 6
#define PREFIX "Simpsonu Modas"
new g_menu;
enum {
    
PLAYERLEVEL_1,
    
PLAYERLEVEL_2,
    
PLAYERLEVEL_3// How many Levels
    
PLAYERLEVEL_4,
    
PLAYERLEVEL_5,
    
PLAYERLEVEL_6
}
enum {
    
CLASS_NONE 0,
    
CLASS_Megie,
    
CLASS_Marge,
    
CLASS_Bartas// Add your Classes there..
    
CLASS_Liza,
    
CLASS_Houmeris,
}
new const 
CLASSES[MAXCLASSES][] = {
    
"None",
    
"Mege",
    
"Marge",
    
"Bartas",
    
"Liza",
    
"Houmeris"
}; 
new const 
LEVELS[7] = {
    
100
    
200
    
400
    
800,
    
1600,
    
3200,
    
4000
};
new 
PlayerXP[33];
new 
PlayerLevel[33];
new 
PlayerClass[33];
new 
gCvar_Kill;
new 
gCvar_Knife;
new 
gCvar_HS;
new 
gCvar_Enable;
new 
g_Vault;
public 
plugin_init() {
    
register_plugin("Simpsons Mod""1.0""Drakeris");
    
register_event("DeathMsg""eDeath""a");
    
//register_event("ResetHUD", "resetModel", "b")
    
register_event("ResetHUD""skill""be");
    
gCvar_Enable    register_cvar("xp_save""1");
    
gCvar_Kill    register_cvar("xp_per_kill""20");
    
gCvar_HS    register_cvar("xp_hs_bonus""20");
    
gCvar_Knife    register_cvar("xp_Knife_bonus""20");
    
g_Vault        nvault_open("animod");
    
g_menu menu_create("Class Menu" "ChangeClass");
    
    
register_concmd("amx_paimt_exp""cmd_paimti_exp"ADMIN_KICK"<target> <amount>"); 
    
register_concmd("amx_dot_exp""cmd_doti_exp"ADMIN_KICK"<target> <amount>");
    
    
register_clcmd("say /class",    "ChangeClass");
    
register_clcmd("say_team /class""ChangeClass");
    
register_clcmd("say /level",    "ShowHud");
    
register_clcmd("say_team /level",    "ShowHud");
    
    
build_menu();
}

build_menu()
{
    
menu_additem(g_menu ,"Marge""1" 0);
    
menu_additem(g_menu ,"Bartas""2" 0);
    
menu_additem(g_menu ,"Liza""3" 0);
    
menu_additem(g_menu ,"Houmeris""4" 0);
    
menu_setprop(g_menu MPROP_EXIT MEXIT_ALL);    
}
/*public plugin_precache() {
    precache_model("models/player/witch/witch.mdl")
    precache_model("models/player/witch/witch.mdl")
    return PLUGIN_CONTINUE
}*/
public eDeath() {
    new 
attacker read_data);
    new 
headshot read_data);
    new 
clipammoweapon get_user_weapon(attackerclipammo);
    
PlayerXP[attacker] += get_pcvar_num(gCvar_Kill);
    if(
headshot)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_HS);
    if(
weapon == CSW_KNIFE)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_Knife);
    while(
PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) {
        
client_print(attackerprint_chat"[%s] Congratulations! You are a level %i %s!"PREFIXPlayerLevel[attacker], CLASSES[PlayerClass[attacker]]);
        
PlayerLevel[attacker] += 1;
    }
    
ShowHud(attacker);
    
SaveData(attacker);
}
public 
ShowHud(id) {
    
set_hudmessage(255000.750.0106.015.0);
    
show_hudmessage(id"Level: %i^nXP: %i^nClass: %s"PlayerLevel[id], PlayerXP[id], CLASSES[PlayerClass[id]]);
}
public 
ChangeClass(id) {
    
menu_display(id g_menu 0);
    return 
PLUGIN_CONTINUE;
}
public 
Class_Handle(id menu item)  {
    if(
item == MENU_EXIT
        
menu_destroy(menu);
    new 
szCommand[6] , szName[64];
    new 
access callback;
    
menu_item_getinfo(menu item access szCommand szName 63 callback);
    new 
str_to_num(szCommand);
    if(
PlayerClass[id] != i) {
        
PlayerClass[id] = i;
        
client_print(id,print_chat,"[%s] Tu pasirinkai %s"PREFIXCLASSES[i]);
    } else
    
client_print(id,print_chat,"[%s] Tu jau esi %s"PREFIXCLASSES[i]);
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE;
}
public 
client_connect(id)
{
    
//if(get_pcvar_num(gCvar_Enable) == 1)
        
LoadData(id);
}
public 
client_disconnect(id)
{
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
SaveData(id);
    
PlayerXP[id]    = 0;
    
PlayerLevel[id]    = 0;
    
PlayerClass[id]    = 0;
}
public 
SaveData(id)
{
    new 
AuthID[35];
    
get_user_authid(idAuthID34);
    
    new 
vaultkey[64]
    new 
vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_set(g_Vaultvaultkeyvaultdata);
    return 
PLUGIN_CONTINUE;
}
public 
LoadData(id)
{
    new 
AuthID[35];
    
get_user_authid(id,AuthID,34);
    
    new 
vaultkey[64], vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_get(g_Vaultvaultkeyvaultdata,255);
    
replace_all(vaultdata255"#"" ");
    new 
playerxp[32], playerlevel[32];
    
parse(vaultdataplayerxp31playerlevel31);
    
PlayerXP[id] = str_to_num(playerxp);
    
PlayerLevel[id] = str_to_num(playerlevel);
    return 
PLUGIN_CONTINUE;
}
// doti/paimti XP addaon by Drakeris
public cmd_doti_expidlevel,cid )
{
    if( ! 
cmd_access idlevelcid) )
        return 
PLUGIN_HANDLED;
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv(2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    if( ! 
player 
        return 
PLUGIN_HANDLED;
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] += expnum;
    switch( 
get_cvar_num "amx_show_activity" ) ) {
        case 
1client_print0print_chat"ADMINAS: Dave %i Tasku %s."expnumplayer_name );
            case 
2client_print0print_chat"ADMINAS %s: Dave %i tasku %s."admin_nameexpnumplayer_name );
        }
    
client_printplayerprint_chat"[%s] You received %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}

public 
cmd_paimti_expidlevel,cid )
{
    if( ! 
cmd_access idlevelcid) )
        return 
PLUGIN_HANDLED;
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    if( ! 
player 
        return 
PLUGIN_HANDLED;
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] -= expnum;
    switch(
get_cvar_num("amx_show_activity")){
        case 
1client_print0print_chat"ADMINAS: ateme %i taskus is %s."expnumplayer_name );
            case 
2client_print0print_chat"ADMINAS %s: ateme %i taskus is %s."admin_nameexpnumplayer_name );
        }
    
client_printplayerprint_chat"[%s] Tu praradai %i exp (isviso: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}  
public 
skill(id)
{
    if (
PlayerClass[id] == CLASS_Houmeris)
    {     
        
set_user_health(id100); // Jei tu esi homeris tau duoda 100hp
        
give_item(id,"weapon_knife");
        
set_user_armor(id300);
        
cs_reset_user_model(id)
        
cs_set_user_model(id"admin_te")
    }
    if (
PlayerClass[id] == CLASS_Bartas)
    {     
        
set_user_health(id125); // Jei tu esi Bartas tau duoda 125hp
        
set_user_gravity(id0.8 
        
fm_give_item(id,"weapon_hegrenade")
    }
    if (
PlayerClass[id] == CLASS_Liza)
    {     
        
set_user_health(id125); // Jei tu esi Liza tau duoda 125hp
        
set_user_maxspeed(id1.5)
        
    }      
    if (
PlayerClass[id] == CLASS_Marge)
    {     
        
set_user_health(id500); // Jei tu esi Marge tau duoda 500hp
        
give_item(id,"weapon_knife")
        
    }


That (kind of) works... You don't get any Debug errors and the menu is shown, but wont go away.
(I commented out a line in the plugin_init (points at nonexistent function) I also commented out precache script (Didn't have the model))

The only thing I changed was this:
PHP Code:

new gCvar_KillgCvar_KnifegCvar_HSgCvar_Enableg_Vault

into this:
PHP Code:

new gCvar_Kill;
new 
gCvar_Knife;
new 
gCvar_HS;
new 
gCvar_Enable;
new 
g_Vault

(I did the same thing on another place ;))

drakeris 08-02-2009 13:55

Re: need help with...
 
okay so maybe them doel is the problem?
well still i need help ;/

Xellath 08-02-2009 14:16

Re: need help with...
 
With what exactly?

Just seems to me that you copied it and changed some lines and ended up getting errors.. I am pretty sure the original code works.

Anyway, I think your problem is the lack of indentation. When you have figured out what that is, then indent the code. If you still have errors, report back. (I do see some un-related errors, such as tag mismatches.)

fysiks 08-02-2009 19:29

Re: need help with...
 
The code that you posted (in the first post) is incomplete. You are missing several functions. That is why it's not working. Basically the whole plugin is failing.

The three functions that are missing are commented in plugin_init(). Also, I change your if statements in skill() to elseifs but you really should use a switch(). I cleaned up the style too :).

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <fakemeta_util>
#include <cstrike>

#define MAXCLASSES 6
#define PREFIX "Simpsonu Modas"

enum {
    
PLAYERLEVEL_1,
    
PLAYERLEVEL_2,
    
PLAYERLEVEL_3// How many Levels
    
PLAYERLEVEL_4,
    
PLAYERLEVEL_5,
    
PLAYERLEVEL_6
}
enum {
    
CLASS_NONE 0,
    
CLASS_Megie,
    
CLASS_Marge,
    
CLASS_Bartas// Add your Classes there..
    
CLASS_Liza,
    
CLASS_Houmeris,
}
new const 
CLASSES[MAXCLASSES][] = {
    
"None",
    
"Mege",
    
"Marge",
    
"Bartas",
    
"Liza",
    
"Houmeris"
};
new const 
LEVELS[7] = {
    
100,
    
200,
    
400,
    
800,
    
1600,
    
3200,
    
4000
};
new 
PlayerXP[33], PlayerLevel[33], PlayerClass[33];
new 
gCvar_KillgCvar_KnifegCvar_HSgCvar_Enableg_Vault;

public 
plugin_init()
{
    
register_plugin("Simpsons Mod""1.0""Drakeris");
    
register_event("DeathMsg""eDeath""a");
    
// register_event("ResetHUD", "resetModel", "b")
    
register_event("ResetHUD""skill""be");
    
    
gCvar_Enable register_cvar("xp_save""1");
    
gCvar_Kill register_cvar("xp_per_kill""20");
    
gCvar_HS register_cvar("xp_hs_bonus""20");
    
gCvar_Knife register_cvar("xp_Knife_bonus""20");
    
g_Vault nvault_open("animod");

    
// register_concmd("amx_paimt_exp", "cmd_paimt_exp", ADMIN_KICK, "<target> <amount>");
    // register_concmd("amx_dot_exp", "cmd_dot_exp", ADMIN_KICK, "<target> <amount>");

    
register_clcmd("say /class""ChangeClass");
    
register_clcmd("say_team /class""ChangeClass");
    
register_clcmd("say /level""ShowHud");
    
register_clcmd("say_team /level""ShowHud");
}

public 
plugin_precache()
{
    
precache_model("models/player/witch/witch.mdl")
}

public 
eDeath()
{
    new 
attacker read_data);
    new 
headshot read_data);
    new 
clipammoweapon get_user_weapon(attackerclipammo);
    
PlayerXP[attacker] += get_pcvar_num(gCvar_Kill);
    if(
headshot)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_HS);
    if(
weapon == CSW_KNIFE)
        
PlayerXP[attacker] += get_pcvar_num(gCvar_Knife);
    while(
PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
    {
        
client_print(attackerprint_chat"[%s] Congratulations! You are a level %i %s!"PREFIXPlayerLevel[attacker], CLASSES[PlayerClass[attacker]]);
        
PlayerLevel[attacker] += 1;
    }
    
ShowHud(attacker);
    
SaveData(attacker);
}
public 
ShowHud(id)
{
    
set_hudmessage(255000.750.0106.015.0);
    
show_hudmessage(id"Level: %i^nXP: %i^nClass: %s"PlayerLevel[id], PlayerXP[id], CLASSES[PlayerClass[id]]);
}
public 
ChangeClass(id)
{
    
client_print(idprint_chat"Hello")
    new 
menu menu_create("Class Menu" "Class_Handle");
    
menu_additem(menu ,"Marge""1" 0);
    
menu_additem(menu ,"Bartas""2" 0);
    
menu_additem(menu ,"Liza""3" 0);
    
menu_additem(menu ,"Houmeris""4" 0);
    
menu_setprop(menu MPROP_EXIT MEXIT_ALL);
    
menu_display(id menu 0);
    
    return 
PLUGIN_CONTINUE;
}
public 
Class_Handle(id menu item)
{
    if(
item == MENU_EXIT)
        
menu_destroy(menu);
    
    new 
szCommand[6] , szName[64];
    new 
access callback;
    
menu_item_getinfo(menu item access szCommand szName 63 callback);
    new 
str_to_num(szCommand);
    
    if(
PlayerClass[id] != i)
    {
        
PlayerClass[id] = i;
        
client_print(id,print_chat,"[%s] Tu pasirinkai %s"PREFIXCLASSES[i]);
    }
    else
    {
        
client_print(id,print_chat,"[%s] Tu jau esi %s"PREFIXCLASSES[i]);
    }
    
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE;
}

public 
client_connect(id)
{
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
LoadData(id);
}

public 
client_disconnect(id)
{
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
SaveData(id);
    
    
PlayerXP[id]    = 0;
    
PlayerLevel[id]    = 0;
    
PlayerClass[id]    = 0;
}

public 
SaveData(id)
{
    new 
AuthID[35];
    
get_user_authid(idAuthID34);

    new 
vaultkey[64], vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_set(g_Vaultvaultkeyvaultdata);
    return 
PLUGIN_CONTINUE;
}

public 
LoadData(id)
{
    new 
AuthID[35];
    
get_user_authid(id,AuthID,34);

    new 
vaultkey[64], vaultdata[256];
    
format(vaultkey63"%s-Mod"AuthID);
    
format(vaultdata255"%i#%i#"PlayerXP[id], PlayerLevel[id]);
    
nvault_get(g_Vaultvaultkeyvaultdata,255);
    
replace_all(vaultdata255"#"" ");
    new 
playerxp[32], playerlevel[32];
    
parse(vaultdataplayerxp31playerlevel31);
    
PlayerXP[id] = str_to_num(playerxp);
    
PlayerLevel[id] = str_to_num(playerlevel);
    return 
PLUGIN_CONTINUE;
}

// doti/paimti XP addaon by Drakeris
public cmd_doti_expidlevel,cid )
{
    if( ! 
cmd_access idlevelcid) )
        return 
PLUGIN_HANDLED;
    
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv(2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    
    if( ! 
player )
        return 
PLUGIN_HANDLED;
    
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] += expnum;
    
    switch( 
get_cvar_num "amx_show_activity" ) )
    {
        case 
1client_print0print_chat"ADMINAS: Dave %i Tasku %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMINAS %s: Dave %i tasku %s."admin_nameexpnumplayer_name );
    }
    
client_printplayerprint_chat"[%s] You received %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}

public 
cmd_paimti_expidlevel,cid ) {
    if( ! 
cmd_access idlevelcid) )
    return 
PLUGIN_HANDLED;
    
    new 
target[32], amount[21], reason[21];
    
read_argv1target31 );
    
read_argv2amount20 );
    
read_argv3reason20 );
    new 
player cmd_targetidtarget);
    if( !
player )
        return 
PLUGIN_HANDLED;
    
    new 
admin_name[32], player_name[32];
    
get_user_nameidadmin_name31 );
    
get_user_nameplayerplayer_name31 );
    new 
expnum str_to_numamount );
    
PlayerXP[player] -= expnum;
    switch(
get_cvar_num("amx_show_activity"))
    {
        case 
1client_print0print_chat"ADMINAS: ateme %i taskus is %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMINAS %s: ateme %i taskus is %s."admin_nameexpnumplayer_name );
    }
    
client_printplayerprint_chat"[%s] Tu praradai %i exp (isviso: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );
    return 
PLUGIN_CONTINUE;
}

public 
skill(id)
{
    if(
PlayerClass[id] == CLASS_Houmeris)
    {
        
set_user_health(id100); // Jei tu esi homeris tau duoda 100hp
        
give_item(id,"weapon_knife");
        
set_user_armor(id300);
        
cs_reset_user_model(id)
        
cs_set_user_model(id"admin_te")
    } 
    else if(
PlayerClass[id] == CLASS_Bartas)
    {
        
set_user_health(id125); // Jei tu esi Bartas tau duoda 125hp
        
set_user_gravity(id0.8 )
        
fm_give_item(id,"weapon_hegrenade")
    }
    else if(
PlayerClass[id] == CLASS_Liza)
    {
        
set_user_health(id125); // Jei tu esi Liza tau duoda 125hp
        
set_user_maxspeed(id1.5)

    }
    else if(
PlayerClass[id] == CLASS_Marge)
    {
        
set_user_health(id500); // Jei tu esi Marge tau duoda 500hp
        
give_item(id,"weapon_knife")
    }




All times are GMT -4. The time now is 18:29.

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