⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playerhud.java

📁 JAKE2用JAVA写的queck2的3D游戏开发引擎
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
     * ==================     */    public static void Cmd_Score_f(edict_t ent) {        ent.client.showinventory = false;        ent.client.showhelp = false;        if (0 == GameBase.deathmatch.value && 0 == GameBase.coop.value)            return;        if (ent.client.showscores) {            ent.client.showscores = false;            return;        }        ent.client.showscores = true;        DeathmatchScoreboard(ent);    }    //=======================================================================    /*     * ===============      * G_SetStats      * ===============     */    public static void G_SetStats(edict_t ent) {        gitem_t item;        int index, cells = 0;        int power_armor_type;        //        // health        //        ent.client.ps.stats[Defines.STAT_HEALTH_ICON] = (short) GameBase.level.pic_health;        ent.client.ps.stats[Defines.STAT_HEALTH] = (short) ent.health;        //        // ammo        //        if (0 == ent.client.ammo_index /*                                        * ||                                        * !ent.client.pers.inventory[ent.client.ammo_index]                                        */        ) {            ent.client.ps.stats[Defines.STAT_AMMO_ICON] = 0;            ent.client.ps.stats[Defines.STAT_AMMO] = 0;        } else {            item = GameItemList.itemlist[ent.client.ammo_index];            ent.client.ps.stats[Defines.STAT_AMMO_ICON] = (short) GameBase.gi                    .imageindex(item.icon);            ent.client.ps.stats[Defines.STAT_AMMO] = (short) ent.client.pers.inventory[ent.client.ammo_index];        }        //        // armor        //        power_armor_type = GameItems.PowerArmorType(ent);        if (power_armor_type != 0) {            cells = ent.client.pers.inventory[GameItems.ITEM_INDEX(GameItems                    .FindItem("cells"))];            if (cells == 0) { // ran out of cells for power armor                ent.flags &= ~Defines.FL_POWER_ARMOR;                GameBase.gi                        .sound(ent, Defines.CHAN_ITEM, GameBase.gi                                .soundindex("misc/power2.wav"), 1,                                Defines.ATTN_NORM, 0);                power_armor_type = 0;                ;            }        }        index = GameItems.ArmorIndex(ent);        if (power_armor_type != 0                && (0 == index || 0 != (GameBase.level.framenum & 8))) { // flash                                                                         // between                                                                         // power                                                                         // armor                                                                         // and                                                                         // other                                                                         // armor                                                                         // icon            ent.client.ps.stats[Defines.STAT_ARMOR_ICON] = (short) GameBase.gi                    .imageindex("i_powershield");            ent.client.ps.stats[Defines.STAT_ARMOR] = (short) cells;        } else if (index != 0) {            item = GameItems.GetItemByIndex(index);            ent.client.ps.stats[Defines.STAT_ARMOR_ICON] = (short) GameBase.gi                    .imageindex(item.icon);            ent.client.ps.stats[Defines.STAT_ARMOR] = (short) ent.client.pers.inventory[index];        } else {            ent.client.ps.stats[Defines.STAT_ARMOR_ICON] = 0;            ent.client.ps.stats[Defines.STAT_ARMOR] = 0;        }        //        // pickup message        //        if (GameBase.level.time > ent.client.pickup_msg_time) {            ent.client.ps.stats[Defines.STAT_PICKUP_ICON] = 0;            ent.client.ps.stats[Defines.STAT_PICKUP_STRING] = 0;        }        //        // timers        //        if (ent.client.quad_framenum > GameBase.level.framenum) {            ent.client.ps.stats[Defines.STAT_TIMER_ICON] = (short) GameBase.gi                    .imageindex("p_quad");            ent.client.ps.stats[Defines.STAT_TIMER] = (short) ((ent.client.quad_framenum - GameBase.level.framenum) / 10);        } else if (ent.client.invincible_framenum > GameBase.level.framenum) {            ent.client.ps.stats[Defines.STAT_TIMER_ICON] = (short) GameBase.gi                    .imageindex("p_invulnerability");            ent.client.ps.stats[Defines.STAT_TIMER] = (short) ((ent.client.invincible_framenum - GameBase.level.framenum) / 10);        } else if (ent.client.enviro_framenum > GameBase.level.framenum) {            ent.client.ps.stats[Defines.STAT_TIMER_ICON] = (short) GameBase.gi                    .imageindex("p_envirosuit");            ent.client.ps.stats[Defines.STAT_TIMER] = (short) ((ent.client.enviro_framenum - GameBase.level.framenum) / 10);        } else if (ent.client.breather_framenum > GameBase.level.framenum) {            ent.client.ps.stats[Defines.STAT_TIMER_ICON] = (short) GameBase.gi                    .imageindex("p_rebreather");            ent.client.ps.stats[Defines.STAT_TIMER] = (short) ((ent.client.breather_framenum - GameBase.level.framenum) / 10);        } else {            ent.client.ps.stats[Defines.STAT_TIMER_ICON] = 0;            ent.client.ps.stats[Defines.STAT_TIMER] = 0;        }        //        // selected item        //        // bugfix rst        if (ent.client.pers.selected_item <= 0)            ent.client.ps.stats[Defines.STAT_SELECTED_ICON] = 0;        else            ent.client.ps.stats[Defines.STAT_SELECTED_ICON] = (short) GameBase.gi                    .imageindex(GameItemList.itemlist[ent.client.pers.selected_item].icon);        ent.client.ps.stats[Defines.STAT_SELECTED_ITEM] = (short) ent.client.pers.selected_item;        //        // layouts        //        ent.client.ps.stats[Defines.STAT_LAYOUTS] = 0;        if (GameBase.deathmatch.value != 0) {            if (ent.client.pers.health <= 0                    || GameBase.level.intermissiontime != 0                    || ent.client.showscores)                ent.client.ps.stats[Defines.STAT_LAYOUTS] |= 1;            if (ent.client.showinventory && ent.client.pers.health > 0)                ent.client.ps.stats[Defines.STAT_LAYOUTS] |= 2;        } else {            if (ent.client.showscores || ent.client.showhelp)                ent.client.ps.stats[Defines.STAT_LAYOUTS] |= 1;            if (ent.client.showinventory && ent.client.pers.health > 0)                ent.client.ps.stats[Defines.STAT_LAYOUTS] |= 2;        }        //        // frags        //        ent.client.ps.stats[Defines.STAT_FRAGS] = (short) ent.client.resp.score;        //        // help icon / current weapon if not shown        //        if (ent.client.pers.helpchanged != 0                && (GameBase.level.framenum & 8) != 0)            ent.client.ps.stats[Defines.STAT_HELPICON] = (short) GameBase.gi                    .imageindex("i_help");        else if ((ent.client.pers.hand == Defines.CENTER_HANDED || ent.client.ps.fov > 91)                && ent.client.pers.weapon != null)            ent.client.ps.stats[Defines.STAT_HELPICON] = (short) GameBase.gi                    .imageindex(ent.client.pers.weapon.icon);        else            ent.client.ps.stats[Defines.STAT_HELPICON] = 0;        ent.client.ps.stats[Defines.STAT_SPECTATOR] = 0;    }    /*     * ===============      * G_CheckChaseStats      * ===============     */    public static void G_CheckChaseStats(edict_t ent) {        int i;        gclient_t cl;        for (i = 1; i <= GameBase.maxclients.value; i++) {            cl = GameBase.g_edicts[i].client;            if (!GameBase.g_edicts[i].inuse || cl.chase_target != ent)                continue;            //memcpy(cl.ps.stats, ent.client.ps.stats, sizeof(cl.ps.stats));            System.arraycopy(ent.client.ps.stats, 0, cl.ps.stats, 0,                    Defines.MAX_STATS);            G_SetSpectatorStats(GameBase.g_edicts[i]);        }    }    /*     * ===============      * G_SetSpectatorStats      * ===============     */    public static void G_SetSpectatorStats(edict_t ent) {        gclient_t cl = ent.client;        if (null == cl.chase_target)            G_SetStats(ent);        cl.ps.stats[Defines.STAT_SPECTATOR] = 1;        // layouts are independant in spectator        cl.ps.stats[Defines.STAT_LAYOUTS] = 0;        if (cl.pers.health <= 0 || GameBase.level.intermissiontime != 0                || cl.showscores)            cl.ps.stats[Defines.STAT_LAYOUTS] |= 1;        if (cl.showinventory && cl.pers.health > 0)            cl.ps.stats[Defines.STAT_LAYOUTS] |= 2;        if (cl.chase_target != null && cl.chase_target.inuse)            //cl.ps.stats[STAT_CHASE] = (short) (CS_PLAYERSKINS +            // (cl.chase_target - g_edicts) - 1);            cl.ps.stats[Defines.STAT_CHASE] = (short) (Defines.CS_PLAYERSKINS                    + cl.chase_target.index - 1);        else            cl.ps.stats[Defines.STAT_CHASE] = 0;    }    /**      * HelpComputer. Draws the help computer.     */    public static void HelpComputer(edict_t ent) {        StringBuffer sb = new StringBuffer(256);        String sk;            if (GameBase.skill.value == 0)            sk = "easy";        else if (GameBase.skill.value == 1)            sk = "medium";        else if (GameBase.skill.value == 2)            sk = "hard";        else            sk = "hard+";            // send the layout        sb.append("xv 32 yv 8 picn help "); // background        sb.append("xv 202 yv 12 string2 \"").append(sk).append("\" "); // skill        sb.append("xv 0 yv 24 cstring2 \"").append(GameBase.level.level_name)                .append("\" "); // level name        sb.append("xv 0 yv 54 cstring2 \"").append(GameBase.game.helpmessage1)                .append("\" "); // help 1        sb.append("xv 0 yv 110 cstring2 \"").append(GameBase.game.helpmessage2)                .append("\" "); // help 2        sb.append("xv 50 yv 164 string2 \" kills     goals    secrets\" ");        sb.append("xv 50 yv 172 string2 \"");        sb.append(Com.sprintf("%3i/%3i     %i/%i       %i/%i\" ", new Vargs(6)                .add(GameBase.level.killed_monsters).add(                        GameBase.level.total_monsters).add(                        GameBase.level.found_goals).add(                        GameBase.level.total_goals).add(                        GameBase.level.found_secrets).add(                        GameBase.level.total_secrets)));            GameBase.gi.WriteByte(Defines.svc_layout);        GameBase.gi.WriteString(sb.toString());        GameBase.gi.unicast(ent, true);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -