Jump to content
  • 0

elf height & getSex method


Question

Posted (edited)

hello i have a problem with elf's height.. 
Elf females are flying
Heights are corrects into database, but when i change the F_COL_H ,females height doesnt change at all as it should be.
When i change M_COL_H change both height (males,females) and females are not flying but males boots are inside ground(i hope u understand)


photos of navicat(elf fighter class is in the circle), male and female elf fighter ~> https://imgur.com/a/xnhjz6P

java~> charTemplateTable

Spoiler

/*
 * L2jFrozen Project - www.l2jfrozen.com 
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 * http://www.gnu.org/copyleft/gpl.html
 */
package com.l2jfrozen.gameserver.datatables.sql;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Map;

import javolution.util.FastMap;

import org.apache.log4j.Logger;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.model.base.ClassId;
import com.l2jfrozen.gameserver.templates.L2PcTemplate;
import com.l2jfrozen.gameserver.templates.StatsSet;
import com.l2jfrozen.util.CloseUtil;
import com.l2jfrozen.util.database.DatabaseUtils;
import com.l2jfrozen.util.database.L2DatabaseFactory;

/**
 * @version $Revision: 1.6.2.1.2.10 $ $Date: 2005/03/29 14:00:54 $
 */
public class CharTemplateTable
{
    private static Logger LOGGER = Logger.getLogger(CharTemplateTable.class);
    
    private static CharTemplateTable _instance;
    
    private static final String[] CHAR_CLASSES =
    {
        "Human Fighter",
        "Warrior",
        "Gladiator",
        "Warlord",
        "Human Knight",
        "Paladin",
        "Dark Avenger",
        "Rogue",
        "Treasure Hunter",
        "Hawkeye",
        "Human Mystic",
        "Human Wizard",
        "Sorceror",
        "Necromancer",
        "Warlock",
        "Cleric",
        "Bishop",
        "Prophet",
        "Elven Fighter",
        "Elven Knight",
        "Temple Knight",
        "Swordsinger",
        "Elven Scout",
        "Plainswalker",
        "Silver Ranger",
        "Elven Mystic",
        "Elven Wizard",
        "Spellsinger",
        "Elemental Summoner",
        "Elven Oracle",
        "Elven Elder",
        "Dark Fighter",
        "Palus Knight",
        "Shillien Knight",
        "Bladedancer",
        "Assassin",
        "Abyss Walker",
        "Phantom Ranger",
        "Dark Elven Mystic",
        "Dark Elven Wizard",
        "Spellhowler",
        "Phantom Summoner",
        "Shillien Oracle",
        "Shillien Elder",
        "Orc Fighter",
        "Orc Raider",
        "Destroyer",
        "Orc Monk",
        "Tyrant",
        "Orc Mystic",
        "Orc Shaman",
        "Overlord",
        "Warcryer",
        "Dwarven Fighter",
        "Dwarven Scavenger",
        "Bounty Hunter",
        "Dwarven Artisan",
        "Warsmith",
        "dummyEntry1",
        "dummyEntry2",
        "dummyEntry3",
        "dummyEntry4",
        "dummyEntry5",
        "dummyEntry6",
        "dummyEntry7",
        "dummyEntry8",
        "dummyEntry9",
        "dummyEntry10",
        "dummyEntry11",
        "dummyEntry12",
        "dummyEntry13",
        "dummyEntry14",
        "dummyEntry15",
        "dummyEntry16",
        "dummyEntry17",
        "dummyEntry18",
        "dummyEntry19",
        "dummyEntry20",
        "dummyEntry21",
        "dummyEntry22",
        "dummyEntry23",
        "dummyEntry24",
        "dummyEntry25",
        "dummyEntry26",
        "dummyEntry27",
        "dummyEntry28",
        "dummyEntry29",
        "dummyEntry30",
        "Duelist",
        "DreadNought",
        "Phoenix Knight",
        "Hell Knight",
        "Sagittarius",
        "Adventurer",
        "Archmage",
        "Soultaker",
        "Arcana Lord",
        "Cardinal",
        "Hierophant",
        "Eva Templar",
        "Sword Muse",
        "Wind Rider",
        "Moonlight Sentinel",
        "Mystic Muse",
        "Elemental Master",
        "Eva's Saint",
        "Shillien Templar",
        "Spectral Dancer",
        "Ghost Hunter",
        "Ghost Sentinel",
        "Storm Screamer",
        "Spectral Master",
        "Shillien Saint",
        "Titan",
        "Grand Khauatari",
        "Dominator",
        "Doomcryer",
        "Fortune Seeker",
        "Maestro"
    };
    
    private final Map<Integer, L2PcTemplate> _templates;
    
    public static CharTemplateTable getInstance()
    {
        if (_instance == null)
        {
            _instance = new CharTemplateTable();
        }
        
        return _instance;
    }
    
    private CharTemplateTable()
    {
        _templates = new FastMap<>();
        Connection con = null;
        
        try
        {
            con = L2DatabaseFactory.getInstance().getConnection(false);
            PreparedStatement statement = con.prepareStatement("SELECT * FROM class_list, char_templates, lvlupgain" + " WHERE class_list.id = char_templates.classId" + " AND class_list.id = lvlupgain.classId" + " ORDER BY class_list.id");
            ResultSet rset = statement.executeQuery();
            
            while (rset.next())
            {
                StatsSet set = new StatsSet();
                // ClassId classId = ClassId.values()[rset.getInt("id")];
                set.set("classId", rset.getInt("id"));
                set.set("className", rset.getString("className"));
                set.set("raceId", rset.getInt("raceId"));
                set.set("baseSTR", rset.getInt("STR"));
                set.set("baseCON", rset.getInt("CON"));
                set.set("baseDEX", rset.getInt("DEX"));
                set.set("baseINT", rset.getInt("_INT"));
                set.set("baseWIT", rset.getInt("WIT"));
                set.set("baseMEN", rset.getInt("MEN"));
                set.set("baseHpMax", rset.getFloat("defaultHpBase"));
                set.set("lvlHpAdd", rset.getFloat("defaultHpAdd"));
                set.set("lvlHpMod", rset.getFloat("defaultHpMod"));
                set.set("baseMpMax", rset.getFloat("defaultMpBase"));
                set.set("baseCpMax", rset.getFloat("defaultCpBase"));
                set.set("lvlCpAdd", rset.getFloat("defaultCpAdd"));
                set.set("lvlCpMod", rset.getFloat("defaultCpMod"));
                set.set("lvlMpAdd", rset.getFloat("defaultMpAdd"));
                set.set("lvlMpMod", rset.getFloat("defaultMpMod"));
                set.set("baseHpReg", 1.5);
                set.set("baseMpReg", 0.9);
                set.set("basePAtk", rset.getInt("p_atk"));
                set.set("basePDef", /* classId.isMage()? 77 : 129 */rset.getInt("p_def"));
                set.set("baseMAtk", rset.getInt("m_atk"));
                set.set("baseMDef", rset.getInt("char_templates.m_def"));
                set.set("classBaseLevel", rset.getInt("class_lvl"));
                set.set("basePAtkSpd", rset.getInt("p_spd"));
                set.set("baseMAtkSpd", /* classId.isMage()? 166 : 333 */rset.getInt("char_templates.m_spd"));
                set.set("baseCritRate", rset.getInt("char_templates.critical") / 10);
                set.set("baseRunSpd", rset.getInt("move_spd"));
                set.set("baseWalkSpd", 0);
                set.set("baseShldDef", 0);
                set.set("baseShldRate", 0);
                set.set("baseAtkRange", 40);
                
                set.set("spawnX", rset.getInt("x"));
                set.set("spawnY", rset.getInt("y"));
                set.set("spawnZ", rset.getInt("z"));
                
                L2PcTemplate ct;
                
                set.set("collision_radius", rset.getDouble("m_col_r"));
                set.set("collision_height", rset.getDouble("m_col_h"));
                ct = new L2PcTemplate(set);
                // 5items must go here
                for (int x = 1; x < 6; x++)
                {
                    if (rset.getInt("items" + x) != 0)
                    {
                        ct.addItem(rset.getInt("items" + x));
                    }
                }
                _templates.put(ct.classId.getId(), ct);
                
                set = null;
                ct = null;
            }
            
            DatabaseUtils.close(statement);
            DatabaseUtils.close(rset);
            statement = null;
            rset = null;
        }
        catch (final SQLException e)
        {
            if (Config.ENABLE_ALL_EXCEPTIONS)
                e.printStackTrace();
            
            LOGGER.warn("error while loading char templates " + e.getMessage());
        }
        finally
        {
            CloseUtil.close(con);
        }
        
        LOGGER.info("CharTemplateTable: Loaded " + _templates.size() + " Character Templates.");
    }
    
    public L2PcTemplate getTemplate(final ClassId classId)
    {
        return getTemplate(classId.getId());
    }
    
    public L2PcTemplate getTemplate(final int classId)
    {
        final int key = classId;
        
        return _templates.get(key);
    }
    
    public static final String getClassNameById(final int classId)
    {
        return CHAR_CLASSES[classId];
    }
    
    public static final int getClassIdByName(final String className)
    {
        int currId = 1;
        
        for (final String name : CHAR_CLASSES)
        {
            if (name.equalsIgnoreCase(className))
            {
                break;
            }
            
            currId++;
        }
        
        return currId;
    }
    
}
 


any help how to fix ?:/


EDIT: Does anyone know how to get method : getSex apperiance so i can change the code to :

if(sex==0)

{

                set.set("collision_radius", rset.getDouble("m_col_r"));
                set.set("collision_height", rset.getDouble("m_col_h"));

}

else

{

                set.set("collision_radius", rset.getDouble("f_col_r"));
                set.set("collision_height", rset.getDouble("f_col_h"));

}

 

Edited by Irrelevant

7 answers to this question

Recommended Posts

  • 0
Posted
1 hour ago, Irrelevant said:

                set.set("collision_radius", rset.getDouble("m_col_r"));
                set.set("collision_height", rset.getDouble("m_col_h"));

not just elfs, entire female set scales are missing

  • 0
Posted (edited)
2 hours ago, aLzhite said:

not just elfs, entire female set scales are missing

the i see that ,but other races females are totally fine

 

Edited by Irrelevant
  • 0
Posted (edited)
33 minutes ago, aLzhite said:

heights are okay but radius of all females are broken like dwarfs

radius was fine , males and females have so small difference in radius, even change 7 with 10 will be totally fine


 

actually isnt fixed.. it reversed ,now m_col_h isnt work :/ 

Edited by Irrelevant
  • 0
Posted (edited)
10 hours ago, ZaunProject said:

What you mean by getSex method? I think your idea wont work that way

i dont know what else to think, i need to fix females collisions(height and radius) , i find other packs to search for fix but without success  :/ . i am struggling 1week with this s**t

Edited by Irrelevant

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • How much would something like thos cost for H5? Im not a developer just want something like so i could play alone on my server, and i need it to be easy to instal ;3
    • The service is developing step by step to be convenient and reliable for every user. 🤝 We strive to build a strong foundation for long-term and comfortable cooperation, so you can rely on us and get consistent results. 🌟 Our goal is long-term relationships with every user, creating a solid base for stable work with our service. 📌 Website: vibe-sms.net 📲 Our Telegram channel: https://t.me/vibe_sms    
    • datapack + login server + gameserver for personal use doesnt have to be fancy 
    • 最优质的 Reddit 账号,专为想要影响舆论而不仅仅是阅读的人准备。 在互联网上,重要的不仅仅是观点,还有声誉。在 Reddit 上,声誉以业力值(Karma)衡量——只有少数人才能获得真正有分量的话语权。 对于企业家、营销人员、投资者和意见领袖来说,高业力账号能打开通往那些制定趋势、孕育创意、驱动数百万人的社区之门。 成为别人愿意倾听的人。推广产品、测试想法、塑造舆论——并且以强势的姿态去做。 为什么这很重要: 高业力不仅仅是你个人资料上的一个数字,它是一种能换取信任的工具。而信任是一种可以换取一切的货币。 我们的在线商店产品: 账号: Telegram、Facebook、Reddit、Twitter (X)、Instagram、YouTube、TikTok、Discord、VK、LinkedIn、GitHub、Snapchat、Gmail、电子邮箱(Outlook、Firstmail、Rambler、Onet、Gazeta、GMX、Yahoo、Proton、Web.de)、Google Voice、Google Ads 高级订阅: Telegram Premium、Twitter Premium X、YouTube Premium、Spotify Premium、Netflix Premium、Discord Nitro、ChatGPT Plus/PRO、XBOX Game Pass 附加服务: Telegram Stars、代理(IPv4、IPv6、ISP、Mobile)、VPN(Outline、WireGuard 等)、VDS/RDP 服务器 优惠码: AUGUST2025(九折优惠) 支付方式: 银行卡 · 加密货币 · 其他常用方式 购买方式: 在线商店:点击  Telegram 机器人:点击  其他服务: SMM 面板:点击 - 社交账号推广服务 使用我们的SMM面板可进行推广:Facebook、Instagram、Telegram、Spotify、Soundcloud、YouTube、Reddit、Threads、Kick、Discord、LinkedIn、Likee、VK、Twitch、Kwai、网站流量、TikTok、Trust Pilot、Apple Music、Tripadvisor、Snapchat 等等 首次试用SMM面板可获得$1奖励: 只需在我们网站提交一个主题为“Get Trial Bonus”的工单(Support) 产品列表: Reddit Karma Brute Account | 1 KARMA | 仅限 Cookies 访问(密码可能无效)| 最便宜的账号 | 起价:$1 Reddit Karma Brute Account | 20-100 发帖和评论业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS | 起价:$5 Reddit Karma Brute Account | 500-1000 发帖和评论业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS | 起价:$9 Reddit Karma Brute Account | 1000 发帖业力 + 100 评论业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS | 起价:$15 Reddit Karma Brute Account | 2000 发帖业力 + 100 评论业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS | 起价:$20 Reddit Karma Brute Account | 3000 发帖业力 + 100 评论业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS | 起价:$25 Reddit Karma Brute Account | 5000 发帖业力 + 100 评论业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS | 起价:$35 Reddit Karma Brute Account | 10000+ 业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS(包含并可用邮箱)| 起价:$45 Reddit Karma Brute Account | 20000 业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS(包含并可用邮箱)| 起价:$60 Reddit Karma Brute Account | 50000+ 业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS(包含并可用邮箱)| 起价:$90 Reddit Karma Brute Account | 100000+ 业力 | 混合 IP 注册 | 格式:USERNAME: PASSWORD:EMAIL:MAILPASS(包含并可用邮箱)| 起价:$149 忠实客户 — 额外折扣与优惠码! 九折至八折优惠或注册即送 $1 奖励 如果您想获得注册奖励 $1 或 首次购买九折至八折优惠,您可以留言: "请发给我奖励, 我的用户名是..." 您也可以在所有我们的商店首次购买时使用优惠码:"SOCNET"(85 折优惠!) 联系方式与支持: Telegram: https://t.me/socnet_support Telegram频道: https://t.me/accsforyou_shop WhatsApp: https://wa.me/79051904467  WhatsApp频道: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n Discord: socnet_support  Discord服务器: https://discord.gg/y9AStFFsrh  邮箱: solomonbog@socnet.store  通过以上联系方式您还可以: — 咨询批发采购事宜 — 建立合作关系(现有合作伙伴:https://socnet.bgng.io/partners ) — 成为我们的供应商 SocNet — 数字商品与高级订阅商店 
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock