|
【Java教學】轉職
核心部分
1.首先修改
l1j.server.server.clientpackets.C_RequestCreateChar.java
找到
pc.resetBaseMr();
pc.setElfAttr(0);
下面加入
//各職業選擇分類職業系列天使de淚+ ssississi指導
pc.setZyxZxl(0);
// end
2.修改
l1j.server.server.model.Instance.L1PcInstance.java
找到
public int getElfAttr() {
return _elfAttr;
}
public void setElfAttr(int i) {
_elfAttr = i;
}
下面新增
//各職業選擇分類職業系列天使de淚+ ssississi指導
private int _zyxZxl; //
public int getZyxZxl() {
return _zyxZxl;
}
public void setZyxZxl(int i) {
_zyxZxl = i;
}
// end
3.修改
l1j.server.server.storage.mysql.MySqlCharacterStorage.java
找到
pc.setElfAttr(rs.getInt("ElfAttr"));
下面增加
//各職業選擇分類職業系列天使de淚+ ssississi指導
pc.setZyxZxl(rs.getInt("ZyxZxl"));
//end
再找到
.prepareStatement("INSERT INTO characters SET account_name=?,objid=?,char_name=?,level=?,Exp=?,MaxHp=?,CurHp=?,MaxMp=?,CurMp=?,Ac=?,Str= ?,Con=?,Dex=?,Cha=?,Intel=?,Wis=?,Status=?,Class=?,Sex=?,Type=?,Heading=?,LocX=?,LocY=?, MapID=?,Food=?,Lawful=?,Title=?,ClanID=?,Clanname=?,BonusStatus=?,ElixirStatus=?,ElfAttr=?,PKcount=?,ExpRes=?,PartnerID=?,AccessLevel= ?,OnlineStatus=?,HomeTownID=?,Contribution=?,Pay=?,HellTime=?,Banned=?,Karma=?,LastPk=?");
這段改成
.prepareStatement("INSERT INTO characters SET account_name=?,objid=?,char_name=?,level=?,Exp=?,MaxHp=?,CurHp=?,MaxMp=?,CurMp=?,Ac=?,Str= ?,Con=?,Dex=?,Cha=?,Intel=?,Wis=?,Status=?,Class=?,Sex=?,Type=?,Heading=?,LocX=?,LocY=?, MapID=?,Food=?,Lawful=?,Title=?,ClanID=?,Clanname=?,BonusStatus=?,ElixirStatus=?,ElfAttr=?,ZyxZxl=?,PKcount=?,ExpRes=?,PartnerID= ?,AccessLevel=?,OnlineStatus=?,HomeTownID=?,Contribution=?,Pay=?,HellTime=?,Banned=?,Karma=?,LastPk=?");
接下來再找到
pstm.setInt(++i, pc.getElfAttr());
下面加入
//各職業選擇分類職業系列天使de淚+ ssississi指導
pstm.setInt(++i, pc.getZyxZxl());
//end
在接著找到
.prepareStatement("UPDATE characters SET level=?,Exp=?,MaxHp=?,CurHp=?,MaxMp=?,CurMp=?,Ac=?,Str=?,Con=?,Dex=?,Cha=? ,Intel=?,Wis=?,Status=?,Class=?,Sex=?,Type=?,Heading=?,LocX=?,LocY=?,MapID=?,Food=?,Lawful=?,Title =?,ClanID=?,Clanname=?,BonusStatus=?,ElixirStatus=?,ElfAttr=?,PKcount=?,ExpRes=?,PartnerID=?,AccessLevel=?,OnlineStatus=?,HomeTownID=?,Contribution=? ,HellTime=?,Banned=?,Karma=?,LastPk=? WHERE objid=?");
把這段改成
.prepareStatement("UPDATE characters SET level=?,Exp=?,MaxHp=?,CurHp=?,MaxMp=?,CurMp=?,Ac=?,Str=?,Con=?,Dex=?,Cha=? ,Intel=?,Wis=?,Status=?,Class=?,Sex=?,Type=?,Heading=?,LocX=?,LocY=?,MapID=?,Food=?,Lawful=?,Title =?,ClanID=?,Clanname=?,BonusStatus=?,ElixirStatus=?,ElfAttr=?,ZyxZxl=?,PKcount=?,ExpRes=?,PartnerID=?,AccessLevel=?,OnlineStatus=?,HomeTownID=? ,Contribution=?,HellTime=?,Banned=?,Karma=?,LastPk=? WHERE objid=?");
最後找到
pstm.setInt(++i, pc.getElfAttr());
//各職業選擇分類職業系列天使de淚+ ssississi指導
pstm.setInt(++i, pc.getZyxZxl());
//end
4.修改
l1j.server.server.clientpackets.C_RequestNPCAction.java
找到
// ElfAttr:0.無屬性,1.地屬性,2.火屬性,4.水屬性,8.風屬性
else if (s.equalsIgnoreCase("fire")) //エルフの屬性變更“火の系列を習う”
{
if (pc.isElf()) {
if (pc.getElfAttr() != 0) {
return;
}
pc.setElfAttr(2);
pc.save(); // DBにキャラクター情報を書き迂む
pc.sendPackets(new S_SkillIconGFX(15, 1)); //體の隅々に火の精靈力が染みこんできます。
htmlid = ""; //ウィンドウを消す
}
}
上面增加
//各職業選擇分類職業系列天使de淚+ ssississi指導
else if (s.equalsIgnoreCase("longshen")) //騎士
{
if (pc.getZyxZxl() != 0) {
return;
}
pc.setZyxZxl(1);
pc.save(); //存進DB
pc.sendPackets(new S_SystemMessage("你成為了騎士-黑暗系列!"));
htmlid = "";
}
else if (s.equalsIgnoreCase("kuangao")) //騎士
{
if (pc.getZyxZxl() != 0) {
return;
}
pc.setZyxZxl(2);
pc.save(); //存進DB
pc.sendPackets(new S_SystemMessage("你成為了騎士-光明系列!"));
htmlid = "";
}
// end
上面這裡註意了:pc.setZyxZxl(1);這裡面的數值要注意了,
1. 2. 3.到時候記住到DB時候隻是記這個數字的!
用法:
比如:
//靈魂昇華藥水
} else if(itemId == 51021){
if (pc.isKnight() && pc.getZyxZxl() == 2) {//這裡就是定義要騎士-光明系列才額可以使用,這裡的2就是對應上面的數字
if(pc.hasSkillEffect(77000) == true) {
pc.sendPackets(new S_SystemMessage("您已經使用過靈魂魔法了!"));
}else {
pc.setSkillEffect(77000,60*1000);
pc.setAdvenHp(pc.getBaseMaxHp() / 4);
pc.setAdvenMp(pc.getBaseMaxMp() / 4);
pc.addMaxHp(pc.getAdvenHp());
pc.addMaxMp(pc.getAdvenMp());
pc.sendPackets(new S_SkillSound(pcObjid, 1608));
pc.broadcastPacket(new S_SkillSound(pcObjid, 1608));
pc.sendPackets(new S_SystemMessage("身體感受到細微的變化。"));
pc.getInventory().removeItem(l1iteminstance, 1);
}
} else pc.sendPackets(new S_SystemMessage("你不是騎士-狂傲系列或者勇士淚光不足!"));
}
以上是核心部分修改完成了!
DB
接下來就是DB
Db的characters檔案在ElfAttr前面增加一個ZyxZxl檔案!就OK啦!
新增的名稱為ZyxZxl類型為int長度為10十進位為0允許空不到勾
DB也完成了! !
對話檔補丁
下面也是我的一個例子而已:
名稱命名為VKxz002-h.html
台灣的朋友就可以命名為VKxz003-c.html
對話檔
<body>
<font fg=ffffff><p align=left>吉薩斯:</p></font>
<br>
<p>在那個多個職業裡,如果說選擇勇士,那你會毫不猶豫選擇騎士吧?
<p>沒錯,他們擁有強大的攻擊力,擁有堅固的防守!
<p>你喜歡什麼類型?
<p>你可以選擇其中一種,攻擊或防守!
<p>騎士-黑暗系列=攻擊型
<p>騎士-光明系列=防守型
<br><br>
<a action="longshen">學習騎士-黑暗系列職業</a><br>
<a action="kuangao">學習騎士-光明系列職業</a><br>
<br>
<img src="#331" link="VKxz002"></img>
</body> |
|