Jump to content

Oxyzium

Members
  • Posts

    63
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Oxyzium

  1. Would be nice to see images/animations for the killing spree pop ups instead of plain text.

    Heres some examples..

    http://1.bp.blogspot.com/-CWW2dywxOtI/UHOn-G7wv0I/AAAAAAAAACY/KILL-2ZsNqE/s1600/combat_arms_accolade__multi_kill__by_stealth09-d4q8r3p.png


    CA%2BULTAR%2BKILL.png

     

    Think this would look nice for silent! Also instead of having a pk3 full of the sounds just having a little pop up sound, I have suggested this sound?

  2. I don't know how others feel about this but I don't like always having to open up teamspeak or skype to talk to friends ingame.

    One Its a pain and two it causes lag some times when internet is on the low..

    Something like adding microphone support ingame would be nice! Just jump into the server and say hello! When people join the server you can welcome them and stuff..

    This maybe a good idea or maybe a bad idea.

    Tell me what you think?

  3. Not true, I have my dy*On most it does, I have noticed a few barriers such as goldrush ga second tank barrier doesn't print the Dynamite Diffuse message

     

    Yes excactly what I was meaning! It just carries on counting down every time the dynamite is defused which is confusing the hell out of players..

     

    I have a dyno script also from etpro, It doesn't work best with the silent server though.

  4. Good to see Legacy is finally showing its light in the community!

    How many players are hosting servers with legacy mod at the moment?

    How to make the players convert from normal ET to using legacy mod?

    Do you think it will keep the game alive?

    I ask this because its good to hear from the developers point on what they think there project will do for the community.

     

  5. I think the Idea of more ranks is good but on the scale of needing them is 2/10.

    I use silent mod for its security level being superior to other mods but if it released a 20mb pk3 file full of ranks, sounds, guns and other crap!
    I'd rather switch the server to emain.

    Nice idea though!

  6. I have looked deeply but nothing idicating to how it shows the reticle_eq.jpeg

    hmm Is there a way to make it show the reticle_eq like how would I create that - I have low knowledge and finding someone to teach me this is a struggle.

    Do I create a if? like

    if wp_thompson
    weapalt = "gfx/misc/reticle_eq.jpeg"
    end
     

    I know that isn't proper code but lol How do i expand it

  7. I think it would be good though for long distance shots like on fueldump :P
    but its down to what players want, I still think it should be a choice apon the server configuration if it should be added ingame or not
    just as a option for server admins.

  8. Ok I found that you can edit the weapons here, this worked when i changed thompson with mp40 but how to add thompson and mp40 together?

    qboolean _SetFieldOpSpawnWeapons(gclient_t *client)
    {
        weapon_t w;
        weapon_t w2;

        if(client->sess.sessionTeam == TEAM_AXIS) {
            w = WP_MP40;
            AddWeaponToPlayer(client, WP_GRENADE_LAUNCHER, 0, 1, qfalse);

            w2 = G_BestSecWeaponForClient( client );
        }

        else if(client->sess.sessionTeam == TEAM_ALLIES) {
            w = WP_THOMPSON;
            AddWeaponToPlayer(client, WP_GRENADE_PINEAPPLE, 0, 1, qfalse);

            w2 = G_BestSecWeaponForClient( client );
        }
        else {
            return qfalse;
        }

        AddWeaponToPlayer(client,
            w,
            GetAmmoTableData(w)->defaultStartingAmmo,
            GetAmmoTableData(w)->defaultStartingClip,
            qtrue);

        if(w2 == WP_AKIMBO_LUGER || w2 == WP_AKIMBO_COLT) {
            client->ps.ammoclip[
                BG_FindClipForWeapon(BG_AkimboSidearm(w2))] =
                GetAmmoTableData(w2)->defaultStartingClip;
        }
        AddWeaponToPlayer(client,
            w2,
            GetAmmoTableData(w2)->defaultStartingAmmo,
            GetAmmoTableData(w2)->defaultStartingClip,
            qfalse);
        return qtrue;

    }

  9. Yes! All pure,
    Here is the code!

    #include "q_shared.h"
    #include "bg_public.h"
    #include "bg_classes.h"
    #include "bg_local.h"

    bg_playerclass_t bg_allies_playerclasses[NUM_PLAYER_CLASSES] = {
        {    
            PC_SOLDIER,
            "characters/temperate/allied/soldier.char",
            "ui/assets/mp_gun_blue.tga",
            "ui/assets/mp_arrow_blue.tga",
            {
                WP_THOMPSON,
                WP_MOBILE_MG42,
                WP_FLAMETHROWER,
                WP_PANZERFAUST,
                WP_MORTAR
            },
        },

        {
            PC_MEDIC,
            "characters/temperate/allied/medic.char",
            "ui/assets/mp_health_blue.tga",
            "ui/assets/mp_arrow_blue.tga",
            {
                WP_THOMPSON,
            },    
        },

        {
            PC_ENGINEER,
            "characters/temperate/allied/engineer.char",
            "ui/assets/mp_wrench_blue.tga",
            "ui/assets/mp_arrow_blue.tga",
            {
                WP_THOMPSON,
                WP_CARBINE,
            },    
        },

        {
            PC_FIELDOPS,
            "characters/temperate/allied/fieldops.char",
            "ui/assets/mp_ammo_blue.tga",
            "ui/assets/mp_arrow_blue.tga",
            {
                WP_THOMPSON,
                    WP_MP40,
            },    
        },

        {
            PC_COVERTOPS,
            "characters/temperate/allied/cvops.char",
            "ui/assets/mp_spy_blue.tga",
            "ui/assets/mp_arrow_blue.tga",
            {
                WP_STEN,
                WP_FG42,
                WP_GARAND,
            },    
        },
    };

    bg_playerclass_t bg_axis_playerclasses[NUM_PLAYER_CLASSES] = {
        {
            PC_SOLDIER,
            "characters/temperate/axis/soldier.char",
            "ui/assets/mp_gun_red.tga",
            "ui/assets/mp_arrow_red.tga",
            {
                WP_MP40,
                WP_MOBILE_MG42,
                WP_FLAMETHROWER,
                WP_PANZERFAUST,
                WP_MORTAR
            },    
        },

        {
            PC_MEDIC,
            "characters/temperate/axis/medic.char",
            "ui/assets/mp_health_red.tga",
            "ui/assets/mp_arrow_red.tga",
            {
                WP_MP40,
            },    
        },

        {
            PC_ENGINEER,
            "characters/temperate/axis/engineer.char",
            "ui/assets/mp_wrench_red.tga",
            "ui/assets/mp_arrow_red.tga",
            {
                WP_MP40,
                WP_KAR98,
            },    
        },

        {
            PC_FIELDOPS,
            "characters/temperate/axis/fieldops.char",
            "ui/assets/mp_ammo_red.tga",
            "ui/assets/mp_arrow_red.tga",
            {
                WP_MP40,
                    WP_THOMPSON,
            },    
        },

        {
            PC_COVERTOPS,
            "characters/temperate/axis/cvops.char",
            "ui/assets/mp_spy_red.tga",
            "ui/assets/mp_arrow_red.tga",
            {
                WP_STEN,
                WP_FG42,
                WP_K43,
            },    
        },
    };

    // pheno
    #ifdef GAMEDLL
    weapon_t bg_unlockedWeapons[MAX_WEAPS_PER_CLASS] =
    {
        WP_NONE,
        WP_PANZERFAUST,
        WP_FLAMETHROWER,
        WP_STEN,
        WP_CARBINE,
        WP_GARAND,
        WP_MOBILE_MG42,
        WP_FG42,
        WP_MORTAR
    };
    #endif

    bg_playerclass_t* BG_GetPlayerClassInfo( int team, int cls ) {
        bg_playerclass_t* teamList;

        if( cls < PC_SOLDIER || cls >= NUM_PLAYER_CLASSES ) {
            cls = PC_SOLDIER;
        }

        switch( team ) {
            default:
            case TEAM_AXIS:
                teamList = bg_axis_playerclasses;
                break;
            case TEAM_ALLIES:
                teamList = bg_allies_playerclasses;
                break;
        }

        return &teamList[cls];
    }

    bg_playerclass_t* BG_PlayerClassForPlayerState(playerState_t* ps) {
        return BG_GetPlayerClassInfo(ps->persistant[PERS_TEAM], ps->stats[sTAT_PLAYER_CLASS]);
    }

    qboolean BG_ClassHasWeapon(bg_playerclass_t* classInfo, weapon_t weap) {
        int i;

        if(!weap) {
            return qfalse;
        }

        for( i = 0; i < MAX_WEAPS_PER_CLASS; i++) {
            if(classInfo->classWeapons == weap) {
                return qtrue;
            }
        }
        return qfalse;
    }

    /*
    ================
    BG_UnlockWeapons

    pheno: unlock weapons for both teams and all classes
    ================
    */
    #ifdef GAMEDLL
    void BG_UnlockWeapons(bg_playerclass_t *classInfo, int classnum, team_t team)
    {
        if (g_unlockWeapons.integer & (1 << classnum)) {
            memcpy(classInfo->classWeapons, bg_unlockedWeapons, sizeof(classInfo->classWeapons));

            if (team == TEAM_ALLIES) {
                classInfo->classWeapons[0] = WP_THOMPSON;
            } else if (team == TEAM_AXIS) {
                classInfo->classWeapons[0] = WP_MP40;
            }
        }
    }
    #endif

    qboolean BG_WeaponIsPrimaryForClassAndTeam( int classnum, team_t team, weapon_t weapon )
    {
        bg_playerclass_t *classInfo;

        if( team == TEAM_ALLIES ) {
            classInfo = &bg_allies_playerclasses[classnum];

    // pheno: unlock weapons for allied team
    #ifdef GAMEDLL
            BG_UnlockWeapons(classInfo, classnum, team);
    #endif

            return BG_ClassHasWeapon( classInfo, weapon );
        } else if( team == TEAM_AXIS ) {
            classInfo = &bg_axis_playerclasses[classnum];

    // pheno: unlock weapons for axis team
    #ifdef GAMEDLL
            BG_UnlockWeapons(classInfo, classnum, team);
    #endif

            return BG_ClassHasWeapon( classInfo, weapon );
        }

        return qfalse;
    }

    // Dens: now gives lowercase team
    const char *BG_TeamName( int teamNum ) {

        switch( teamNum ) {
        case TEAM_AXIS:
            return "axis";
        case TEAM_ALLIES:
            return "allies";
        case TEAM_SPECTATOR:
            return "spectator";
        }
        return "";
    }

    const char *BG_ClassName( int classNum ) {

        switch( classNum ) {
        case PC_SOLDIER:
            return "Soldier";
        case PC_MEDIC:
            return "Medic";
        case PC_ENGINEER:
            return "Engineer";
        case PC_FIELDOPS:
            return "Fieldops";
        case PC_COVERTOPS:
            return "Covertops";
        }
        return "";
    }

    // Dens: lowercaseClassName
    const char *BG_lwrcsClassName( int classNum ) {

        switch( classNum ) {
        case PC_SOLDIER:
            return "soldier";
        case PC_MEDIC:
            return "medic";
        case PC_ENGINEER:
            return "engineer";
        case PC_FIELDOPS:
            return "fieldops";
        case PC_COVERTOPS:
            return "covertops";
        }
        return "";
    }

    const char* BG_ShortClassnameForNumber( int classNum ) {
        switch( classNum ) {
            case PC_SOLDIER:
                return "Soldr";
            case PC_MEDIC:
                return "Medic";
            case PC_ENGINEER:
                return "Engr";
            case PC_FIELDOPS:
                return "FdOps";
            case PC_COVERTOPS:
                return "CvOps";
            default:
                return "^1ERROR";
        }
    }

    const char* BG_ClassnameForNumber( int classNum ) {
        switch( classNum ) {
            case PC_SOLDIER:
                return "Soldier";
            case PC_MEDIC:
                return "Medic";
            case PC_ENGINEER:
                return "Engineer";
            case PC_FIELDOPS:
                return "Field Ops";
            case PC_COVERTOPS:
                return "Covert Ops";
            default:
                return "^1ERROR";
        }
    }

    const char* BG_ClassLetterForNumber( int classNum ) {
        switch( classNum ) {
            case PC_SOLDIER:
                return "S";
            case PC_MEDIC:
                return "M";
            case PC_ENGINEER:
                return "E";
            case PC_FIELDOPS:
                return "F";
            case PC_COVERTOPS:
                return "C";
            default:
                return "^1E";
        }
    }


    #define to_char(n)        ((n) + '0')

    // kw: this function was unused,
    //     It's now used and changed to allow more.
    int BG_ClassTextToClass(char *str) {
        
        switch( tolower(str[0]) ) {
            case 's':
            case to_char(PC_SOLDIER):
                return PC_SOLDIER;
            case 'm':
            case to_char(PC_MEDIC):
                return PC_MEDIC;
            case 'e':
            case to_char(PC_ENGINEER):
                return PC_ENGINEER;
            case 'f':
            case 'l':    //lieutenant    // FIXME: remove from missionpack
            case to_char(PC_FIELDOPS):
                return PC_FIELDOPS;
            case 'c':
            case to_char(PC_COVERTOPS):
                return PC_COVERTOPS;
            default:
                return -1;
        }
    }

    skillType_t BG_ClassSkillForClass( int classnum ) {
        skillType_t classskill[NUM_PLAYER_CLASSES] = { SK_HEAVY_WEAPONS, SK_FIRST_AID, SK_EXPLOSIVES_AND_CONSTRUCTION, SK_SIGNALS, SK_MILITARY_INTELLIGENCE_AND_SCOPED_WEAPONS };

        if( classnum < 0 || classnum >= NUM_PLAYER_CLASSES ) {
            return SK_BATTLE_SENSE;
        }

        return classskill[ classnum ];
    }


    INGame displays, You will spawn as allied fieldops with mp40 <- but you still spawn with thompson

  10. A request to for server admins to create there own ranks and achievements - example setup

    [rank]
    class = medic
    xp = 5000
    rankname = god medic
    rankimage = "images/medicgod.tga"
    sound = "rankup.wav"

    [achievement]
    gun = mp40
    Kills = 2000
    bonusxp = 1000xp
    rankimage = "images/mp40achievement.tga"
    sound = "achievement.wav"

    [headshot]
    headshots = "1000"
    rankname = 1000 headshots
    rankimage = "images/headhunter.tga"
    sound = "headshot.wav"

    Kills and headshots could be recorded by clients guid so you can carry achievments over different maps instead of reseting each map

  11. I have followed Pauls compile tutorial on the extra ammo and extra weapons, I current added the
    weapon to the fieldops class but there is a problem ! The gun is there for selecting inside the limbo menu but when you select it and respawn you don't change from the mp40 to the thompson - So its showing a choice of mp40 or thompson in the limbo menu meaning it must be working but it won't load the gun after respawn and just keeps the same mp40 :P

    Also I added the ammo to the table as I changed 30 to 32 yet it will not show 32 bullets ingame, it still shows 30

    Compiler worked so don't understand unless I need to change it somewhere else too!

    WP_MP40 ,
     WP_THOMPSON,
    }

  12. I would like to know if you guys could add some more lua support? when will your next silent be released!

    Examples we have thought of (You may know what we mean or not, if not then tell me)


    Displaying images when triggered

    et.DrawImage("images/boobs.tga",320,320,255)

    Displaying text when triggered

    et.DrawText("kill this player",420,420,255)

    So as my friend put it:

    local x = 320
    local y = 200
    local alpha = 255

    local image = et.Image(src,x,y,alpha) -- Create Image object
    local textobj = et.Text("This is text",x,y,alpha) -- Create text object ( Possibly add font and font size stuff to it? )
    et.Draw(image) -- Draw the object
    et.Remove(image) -- Undraw the object
    image.x = 200 -- Move x coordinate
    image.y = 6 -- Move y coordinate




     

×
×
  • Create New...