Raised This Month: $ Target: $400
 0% 

[Help]How Do i Set X Class to T and Y Class To Ct


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
abdul-rehman
Veteran Member
Join Date: Jan 2010
Location: Khi, Pakistan
Old 08-06-2011 , 06:32   Re: [Help]How Do i Set X Class to T and Y Class To Ct
Reply With Quote #1

Quote:
Originally Posted by 2reason2kill View Post
I made This But It Didnt Work :/
Can you tell me watch Wrong?
PHP Code:
public RoundStart(id)
{
    if(
is_user_connected(id))
    {
        switch(
cs_get_user_team(id))
        {
            case 
CS_TEAM_CT:
            {
                
PlayerClass[id] == CLASS_SpeedKnifer;
            }
            case 
CS_TEAM_T:
            {
                
PlayerClass[id] == CLASS_HighGravity;
            }
        }
    }

Show full code, i m pretty sure round start event doesnt pass a player id, so you have to loop through all of them.
__________________

My Plugins For ZP

Inactive due to College and Studies
abdul-rehman is offline
Send a message via Yahoo to abdul-rehman Send a message via Skype™ to abdul-rehman
2reason2kill
Senior Member
Join Date: Feb 2011
Old 08-06-2011 , 08:32   Re: [Help]How Do i Set X Class to T and Y Class To Ct
Reply With Quote #2

Quote:
Originally Posted by abdul-rehman View Post
Show full code, i m pretty sure round start event doesnt pass a player id, so you have to loop through all of them.
This Code Was My First So The Code will Be Ugly...

PHP Code:
#pragma semicolon 1

#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <hamsandwich>
#include <cstrike>
#include <engine>

#define MAXCLASSES 3
#define PREFIX "[Knife Mod]"

enum {
    
PLAYERLEVEL_1,
    
PLAYERLEVEL_2,
    
PLAYERLEVEL_3// How many Levels
    
PLAYERLEVEL_4,
    
PLAYERLEVEL_5,
    
PLAYERLEVEL_6,
    
PLAYERLEVEL_7,
    
PLAYERLEVEL_8,
    
PLAYERLEVEL_9,
    
PLAYERLEVEL_10
}
enum {
    
CLASS_None 0,
    
CLASS_SpeedKnifer,
    
CLASS_HighGravity
}


new 
teleport_counter;
new 
Float:g_lastusetime[33];

new 
pcv_teleport_cooldown;

new 
BubbleSprite;


new const 
CLASSES[MAXCLASSES][] = {
    
"None",
    
"Speed Knifer",
    
"High Gravity"

};

new const 
LEVELS[10] = {
    
0
    
200
    
400
    
800,
    
1600,
    
3200,
    
5400,
    
6400,
    
7950,
    
10000
    
};

new 
PlayerXP[33], PlayerLevel[33], PlayerClass[33];
new 
gCvar_KillgCvar_KnifegCvar_HSgCvar_Enableg_Vault;
new 
bool:NewClass[33];

public 
plugin_init() {
    
register_plugin("Knife Mod""1.0""2Reason2Kill");
    
    
RegisterHam(Ham_Spawn"player""fwdPlayerSpawn"1);

    
register_event("DeathMsg""eDeath""a");
    
register_event("ResetHUD""skill""be"); 
    
register_logevent("RoundStart"2"1=RoundStart");

    
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");
   
    
    
pcv_teleport_cooldown register_cvar("xp_teleport_cooldown""10");
    
    
register_concmd("amx_take_exp""cmd_take_exp"ADMIN_KICK"<target> <amount>"); 
    
register_concmd("amx_give_exp""cmd_give_exp"ADMIN_KICK"<target> <amount>");
    
    
register_clcmd("say Changeclass",    "ChangeClass");
    
register_clcmd("say_team Changeclass""ChangeClass");
    
register_clcmd("say xp",    "ShowHud");
    
register_clcmd("say_team /xp",    "ShowHud");
    
register_clcmd("say class",    "ChangeClass");
    
register_clcmd("say_team /class""ChangeClass");
    
register_clcmd("say exp",    "ShowHud");
    
register_clcmd("say_team /exp",    "ShowHud");
    
register_clcmd("jump""ActivateTeleport");
    
register_event("CurWeapon""event_curweap on""be""1=1");
    
register_clcmd("/help""Help");
}
public 
plugin_precache()
{
    
precache_sound("warcraft3/blinkarrival.wav");
    
    
BubbleSprite precache_model("sprites/blueflare2.spr");
}

public 
fwdPlayerSpawn(id)
{
    if(
NewClass[id])
    {
        
ShowMenu(id);
    }
    else
    {
        
ShowHud(id);
        
skill(id);
    }
}

public 
Help(id)
{
    
show_motd(id"Help.txt" "How To Play?");
}

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);

    
ShowHud(attacker);
    
SaveData(attacker);
    
    
CheckLevel(attacker);
}

public 
CheckLevel(id)
{
    while(
PlayerXP[id] >= LEVELS[PlayerLevel[id]])
    {
        
PlayerLevel[id] += 1;
        if(
PlayerLevel[id] != 1)
        {
            
client_printidprint_chat"%s Congratulations! You are a level %i %s!"PREFIXPlayerLevel[id], CLASSES[PlayerClass[id]]);
        }
    }
    
    
ShowHud(id);
}

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)
{
    if(
is_user_alive(id))
    {
        
NewClass[id] = true;
        
client_printidprint_chat"%s You can choose a new class upon spawn."PREFIX);
    }
    else
    {
        
ShowMenu(id);
    }

    return 
PLUGIN_CONTINUE;
}

public 
ShowMenu(id)
{
    new 
menu menu_create("Class Menu" "Class_Handle");
    
menu_additem(menu ,"Speed Knifer""1" 0);
    
menu_additem(menu ,"Hige Gravity""2" 0);
    
menu_additem(menu ,"Jumper""3" 0);
    
menu_additem(menu ,"High HP""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_printidprint_chat"%s You are now a %s"PREFIXCLASSES[i]);
    

    } 
    else
    {
        
client_printidprint_chat"%s You are already a %s"PREFIXCLASSES[i]);
    }
    
    
ShowHud(id);
    
CheckLevel(id);
    
NewClass[id] = false;
    
menu_destroy(menu);
    return 
PLUGIN_CONTINUE;
}

public 
client_connect(id)
{
    if(
get_pcvar_num(gCvar_Enable) == 1)
        
LoadData(id);
        
    
NewClass[id] = true;
}

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;
}

// Give/Take XP addaon by [X]-RayCat
public cmd_give_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"ADMIN: gave %i points for %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMIN %s: gave %i points for %s."admin_nameexpnumplayer_name );
    }

    
client_printplayerprint_chat"[%s] You received %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );

    return 
PLUGIN_CONTINUE;
}
 
public 
cmd_take_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"ADMIN: took %i points from %s."expnumplayer_name );
        case 
2client_print0print_chat"ADMIN %s: took %i points from %s."admin_nameexpnumplayer_name );
    }

    
client_printplayerprint_chat"%s You lost %i points. (Total: %d)"PREFIXexpnumPlayerXP[player] );
    
SaveDataid );

    return 
PLUGIN_CONTINUE;
}  
public 
skill(id)
{
    if(!
is_user_alive(id))
        return 
0;
    

    if (
PlayerClass[id] == CLASS_HighGravity)
    {
        switch(
PlayerLevel[id])
        {
            case 
1,2
            {
                
//Level 1 and 2
                
set_user_gravity(id0.75);
            }
            case 
3
            {
                
//Level 3
                
set_user_gravity(id0.6875);
            }
            case 
10:
            {
            
                
//Level 4
                
set_user_gravity(id0.1);
            }
        }
    }
    
    if (
PlayerClass[id] == CLASS_SpeedKnifer)
    {
        switch(
PlayerLevel[id])
        {
            case 
5:
            {
                
set_user_maxspeed(id Float:300.0);
            }
            case 
10:
            
set_user_rendering(idkRenderFxGlowShell000kRenderTransAlpha0); 
            }
            
        }
    
    
    return 
1;
}
public 
RoundStart(id)
{
    if(
is_user_connected(id))
    {
        switch(
cs_get_user_team(id))
        {
            case 
CS_TEAM_CT:
            {
                
PlayerClass[id] == CLASS_SpeedKnifer;
            }
            case 
CS_TEAM_T:
            {
                
PlayerClass[id] == CLASS_HighGravity;
            }
        }
    }

2reason2kill is offline
Doc-Holiday
AlliedModders Donor
Join Date: Jul 2007
Old 08-06-2011 , 22:13   Re: [Help]How Do i Set X Class to T and Y Class To Ct
Reply With Quote #3

PHP Code:
new g_iMaxPlayers;

//plugin init

g_iMaxPlayers get_maxplayers();

//function
public RoundStart()
{
    for(new 
id 1id <= g_iMaxPlayersid++)
    {
        if(
is_user_connected(id))
        {
            switch(
cs_get_user_team(id))
            {
                case 
CS_TEAM_CT:
                {
                    
PlayerClass[id] == CLASS_SpeedKnifer;
                }
                case 
CS_TEAM_T:
                {
                        
PlayerClass[id] == CLASS_HighGravity;
                }
            }
        }
    }

Doc-Holiday is offline
2reason2kill
Senior Member
Join Date: Feb 2011
Old 08-07-2011 , 07:37   Re: [Help]How Do i Set X Class to T and Y Class To Ct
Reply With Quote #4

Quote:
Originally Posted by Doc-Holiday View Post
PHP Code:
new g_iMaxPlayers;

//plugin init

g_iMaxPlayers get_maxplayers();

//function
public RoundStart()
{
    for(new 
id 1id <= g_iMaxPlayersid++)
    {
        if(
is_user_connected(id))
        {
            switch(
cs_get_user_team(id))
            {
                case 
CS_TEAM_CT:
                {
                    
PlayerClass[id] == CLASS_SpeedKnifer;
                }
                case 
CS_TEAM_T:
                {
                        
PlayerClass[id] == CLASS_HighGravity;
                }
            }
        }
    }

Can I Do the Same With the Code I Posted(Not the Classes The Rank Thing)?

What I Mean Is can I do 2 Diffrents Ranks?

Example for Ct Cops, Commander And T Osama etc.

Sorry For Being Like This :/

Last edited by 2reason2kill; 08-07-2011 at 07:39.
2reason2kill is offline
Doc-Holiday
AlliedModders Donor
Join Date: Jul 2007
Old 08-07-2011 , 22:54   Re: [Help]How Do i Set X Class to T and Y Class To Ct
Reply With Quote #5

https://forums.alliedmods.net/showpo...0&postcount=27
Doc-Holiday is offline
Reply



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 03:27.


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