AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   kneeing event and string that stores several ids (https://forums.alliedmods.net/showthread.php?t=95820)

micke1101 06-27-2009 15:19

kneeing event and string that stores several ids
 
Hi
Here is my star wars mod i thought id make i know i havent done much yet but how should i store all the ids that selects for example healer is it right with new healer[32]? and then just say healer = id?
And for the destroyer i was thinking of that it will go faster and not be able to shoot when you knee so how do i detect when someone knees and is a destroyer?

Code:

/*Credits list*//*
Arkshine - loop
Emp - menu system
Exolent - random systems
XxAvalanchexX - Laser gun
*//*Credits list*/


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

new gMaxClients;
new menu;
new sith;
new jedi;
new destroyer[32];
new healer[32];
new rocket[32];

#define droid_player_model "starwars/droid.mdl"
#define clone_player_model "starwars/clone.mdl"

public plugin_init() {
    register_plugin("Star wars mod", "0.1", "Micke1101")
   
    remove_entity_name("func_buyzone");

    register_event("ResetHUD","newround","b")
    register_event("CurWeapon", "make_tracer", "a")
   
    gMaxClients = get_players();
}
public precache(){
    precache_model(droid_player_model)
    precache_model(clone_player_model)
}
public newround() {
    for ( new Player = 1; Player <= gMaxClients; Player++ )
    {
        if( is_user_alive( Player ) )
            {
                if(cs_get_user_team(Player) == CS_TEAM_T){
                    DroidMenu(id);
                }
                if(cs_get_user_team(Player) == CS_TEAM_CT){
                    CloneMenu(id);
                }
            }
    }
    sith = GetSith("a");
    jedi = GetJedi("a");
    menu_destroy(menu);
    cs_set_user_team(sith, CS_TEAM_T)
    cs_set_user_team(jedi, CS_TEAM_CT)
}
GetSith(const flags[]="", const teamORname[]="")
{
    new players[32], pnum;
    get_players(players, pnum, flags, teamORname);
   
    return (pnum > 0) ? players[random(pnum)] : 0;
}
GetJedi(const flags[]="", const teamORname[]="")
{
    new players[32], pnum;
    get_players(players, pnum, flags, teamORname);
   
    return (pnum > 0) ? players[random(pnum)] : 0;
}

public CloneMenu(id)
 {
    menu = menu_create("\rClone trooper menu", "menu_handler");
    menu_additem(menu, "\wNormal clone", "1", 0);
    menu_additem(menu, "\wHealer clone", "2", 0);
    menu_additem(menu, "\wRocket clone", "3", 0);
    menu_additem(menu, "\wSniper clone", "4", 0);
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
 }
 public DroidMenu(id)
 {
    menu = menu_create("\rDroid menu", "menu_handler");
    menu_additem(menu, "\wNormal droid", "1", 0);
    menu_additem(menu, "\wHealer droid", "2", 0);
    menu_additem(menu, "\wDestroyer", "3", 0);
    menu_additem(menu, "\wSniper droid", "4", 0);
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
 }
  public menu_handler(id, menu, item)
 {
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }

    new data[6], iName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
    new key = str_to_num(data);
    switch(key)
    {
    case 1:
        {
        if(cs_get_user_team(id) == CS_TEAM_T){
            cs_set_user_model(id, droid_player_model)
            give_item(id, "weapon_ak47")
        }
        if(cs_get_user_team(id) == CS_TEAM_CT){
            cs_set_user_model(id, clone_player_model)
            give_item(id, "weapon_m4a1")
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
        }
        case 2:
        {
        if(cs_get_user_team(id) == CS_TEAM_T){
            cs_set_user_model(id, droid_player_model)
            give_item(id, "weapon_mp5navy")
        }
        if(cs_get_user_team(id) == CS_TEAM_CT){
            cs_set_user_model(id, clone_player_model)
            give_item(id, "weapon_mp5navy")
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
        }
    case 3:
        {
        if(cs_get_user_team(id) == CS_TEAM_T){
            cs_set_user_model(id, droid_player_model)
            give_item(id, "weapon_m249")
        }
        if(cs_get_user_team(id) == CS_TEAM_CT){
            cs_set_user_model(id, clone_player_model)
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
        }
    case 4:
        {
        if(cs_get_user_team(id) == CS_TEAM_T){
            cs_set_user_model(id, droid_player_model)
            give_item(id, "weapon_awp")
        }
        if(cs_get_user_team(id) == CS_TEAM_CT){
            cs_set_user_model(id, clone_player_model)
            give_item(id, "weapon_awp")
        }
        menu_destroy(menu);
        return PLUGIN_HANDLED;
        }
    }

    menu_destroy(menu);
    return PLUGIN_HANDLED;
 }
 public make_tracer(id)
 {
    new clip, ammo
    new wpnid = get_user_weapon(id, clip, ammo)
    new pteam[16]

    get_user_team(id, pteam, 15)

    if (lastammo[id] > clip ) {

    new origin[3];

    message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
    write_byte(TE_BEAMENTPOINT);
    write_short(id); // start entity
    write_coord(origin[0]); // endposition.x
    write_coord(origin[1]); // endposition.y
    write_coord(origin[2]); // endposition.z
    write_short(sprite); // sprite index
    write_byte(0); // starting frame
    write_byte(0); // frame rate in 0.1's
    write_byte(50); // life in 0.1's
    write_byte(10); // line width in 0.1's
    write_byte(0); // noise amplitude in 0.01's
    if(cs_get_user_team(id) == CS_TEAM_T){
    write_byte(255); // red
    write_byte(0); // green
    write_byte(0); // blue
    }
    if(cs_get_user_team(id) == CS_TEAM_CT){
    write_byte(0); // red
    write_byte(0); // green
    write_byte(255); // blue
    }
    write_byte(200); // brightness
    write_byte(10); // scroll speed in 0.1's
    message_end();

    lastammo[id] = clip

    return PLUGIN_HANDLED;
 }


SnoW 06-27-2009 16:59

Re: kneeing event and string that stores several ids
 
Dunno how is it, but I believe the healer and destroyer are some kind of classes, so how about something like:
PHP Code:

#define CLASS_HEALER 0
#define CLASS_DESTROYER 1
new gPlayerClass33 ]; 

Than something like on some attack forward or what ever:
PHP Code:

 if( gPlayerClassindex ] == CLASS_DESTROYER && pevindexpev_flags ) & IN_DUCK )
     
//Do thingys 


micke1101 06-30-2009 15:58

Re: kneeing event and string that stores several ids
 
OK.


Code:

/*Credits list
Emp' - Menu system
SnoW - loop
Exolent - random system
*/


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

//Holds maximum players
new gMaxClients;

new menu;

new dcount;
new hcount;
new destroyer[32];
new healer[32];

//Here is to easy change models to use
#define droid_player_model "models/starwars/droid.mdl"
#define clone_player_model "models/starwars/clone.mdl"

public plugin_init() {
    register_plugin("Star wars: The clone wars", "0.1", "Micke1101")
   
    //Make so no one can buy weapons
    remove_entity_name("func_buyzone");
   
    //Gets the total amount of players
    gMaxClients = get_maxplayers();
   
    //At new round
    register_event("ResetHUD","newround","b");
}
//Makes players download nessesary files
public precache(){
    precache_model(droid_player_model);
    precache_model(clone_player_model);
}
public newround() {
    //Loop that will go though all players check team and show them the right teams menu.
    for ( new Player = 1; Player <= gMaxClients; Player++ )
    {
        if( is_user_alive( Player ) )
        {
            if(cs_get_user_team(Player) == CS_TEAM_T){
                cs_set_user_model(Player, droid_player_model)
                DroidMenu(Player);
            }
            if(cs_get_user_team(Player) == CS_TEAM_CT){
                cs_set_user_model(Player, clone_player_model)
                CloneMenu(Player);
            }
        }
    }
}
public CloneMenu(id)
{
    //Different choises of clones for ct
    menu = menu_create("\rClone trooper menu", "menu_handler");
    menu_additem(menu, "\Normal clone", "1", 0);
    menu_additem(menu, "\Healer clone", "2", 0);
    menu_additem(menu, "\Grenade clone", "3", 0);
    menu_additem(menu, "\Sniper clone", "4", 0);
    menu_additem(menu, "\Whats the differens?", "5", 0)
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
}
public DroidMenu(id)
{
    //Different choises of droids for t
    menu = menu_create("\rDroid menu", "menu_handler");
    menu_additem(menu, "\Normal droid", "1", 0);
    menu_additem(menu, "\Healer droid", "2", 0);
    menu_additem(menu, "\Destroyer", "3", 0);
    menu_additem(menu, "\Sniper droid", "4", 0);
    menu_additem(menu, "\Whats the differens?", "5", 0)
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
}
public menu_handler(id, menu, item)
{
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
   
    new data[6], iName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
    new key = str_to_num(data);
    switch(key)
    {
        case 1:
        {
            if(cs_get_user_team(id) == CS_TEAM_T){
                cs_set_user_model(id, droid_player_model)
                give_item(id, "weapon_ak47")
            }
            if(cs_get_user_team(id) == CS_TEAM_CT){
                cs_set_user_model(id, clone_player_model)
                give_item(id, "weapon_m4a1")
            }
            menu_destroy(menu);
            return PLUGIN_HANDLED;
        }
        case 2:
        {
            if(cs_get_user_team(id) == CS_TEAM_T){
                cs_set_user_model(id, droid_player_model)
                give_item(id, "weapon_mp5navy")
            }
            if(cs_get_user_team(id) == CS_TEAM_CT){
                cs_set_user_model(id, clone_player_model)
                give_item(id, "weapon_mp5navy")
            }
            healer[hcount++] = id;
            menu_destroy(menu);
            return PLUGIN_HANDLED;
        }
        case 3:
        {
            if(cs_get_user_team(id) == CS_TEAM_T){
                cs_set_user_model(id, droid_player_model)
                give_item(id, "weapon_m249")
                destroyer[dcount++] = id;
            }
            if(cs_get_user_team(id) == CS_TEAM_CT){
                cs_set_user_model(id, clone_player_model)
                for ( new HeNades = 1; HeNades <= 10; HeNades++ )
                {
                    give_item(id, "weapon_hegrenade")
                }
                for ( new SmokeNades = 1; SmokeNades <= 10; SmokeNades++ )
                {
                    give_item(id, "weapon_smokegrenade")
                }
                for ( new FlashNades = 1; FlashNades <= 10; FlashNades++ )
                {
                    give_item(id, "weapon_flashbang")
                }
                give_item(id, "weapon_p90")
            }
            menu_destroy(menu);
            return PLUGIN_HANDLED;
        }
        case 4:
        {
            if(cs_get_user_team(id) == CS_TEAM_T){
                cs_set_user_model(id, droid_player_model)
                give_item(id, "weapon_awp")
            }
            if(cs_get_user_team(id) == CS_TEAM_CT){
                cs_set_user_model(id, clone_player_model)
                give_item(id, "weapon_awp")
            }
            menu_destroy(menu);
            return PLUGIN_HANDLED;
        }
        case 5:
        {
            if(cs_get_user_team(id) == CS_TEAM_T){
                show_motd(id, "starwars_droid.txt")
            }
            if(cs_get_user_team(id) == CS_TEAM_CT){
                show_motd(id, "starwars_clone.txt")
            }
        }
    }
   
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

I tried XxAvalanchexX beampoint snipet
and tried make like this

Code:


//....
    register_event("CurWeapon", "make_tracer", "a");

//....
 public make_tracer(id)
 {
    new origin[3];
    get_user_origin(id,origin,3); // 3 - End position from eyes (hit point for weapon)

    message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
    write_byte(TE_BEAMENTPOINT);
    write_short(id); // start entity
    write_coord(origin[0]); // endposition.x
    write_coord(origin[1]); // endposition.y
    write_coord(origin[2]); // endposition.z
    write_short(sprite); // sprite index
    write_byte(0); // starting frame
    write_byte(0); // frame rate in 0.1's
    write_byte(50); // life in 0.1's
    write_byte(10); // line width in 0.1's
    write_byte(0); // noise amplitude in 0.01's
    if(cs_get_user_team(id) == CS_TEAM_T){
    write_byte(255); // red
    write_byte(0); // green
    write_byte(0); // blue
    }
    if(cs_get_user_team(id) == CS_TEAM_CT){
    write_byte(0); // red
    write_byte(0); // green
    write_byte(255); // blue
    }
    write_byte(200); // brightness
    write_byte(10); // scroll speed in 0.1's
    message_end();

    return PLUGIN_HANDLED;
}

and some precache of sprite and such but when i fire its not a beam or so, wrong event?

And last since i dont think theres a event for movement nor close to teammates i thought of making a timer that checks eash second in other functions these things but im wondering if that would cause alot lag or problems for the server having it check that all the time?


All times are GMT -4. The time now is 15:44.

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