标题:
【天堂1】怪物放魔法
[打印本页]
作者:
超超
时间:
2008-10-7 14:30
标题:
【天堂1】怪物放魔法
我拿我使用的核心來教學!!這是protoplast大大所發的核心!
一種怪物可以讓他使用兩種魔法
有5種分分類
單體魔法、範圍魔法、全畫面魔法、召喚魔法,特殊魔法
要讓怪物使用魔法就重上面五種攻擊方式選兩種搭配
但是有些會有搭配會導緻隻有一種魔法效果
單體魔法+範圍魔法,範圍魔法就會失效
全畫面魔法+召喚魔法,全畫面魔法就會失效
但是如果用範圍+全畫面、單體+全畫面,單體+召喚就能正常使用兩種魔法!
現在開始教學如何改! 請看註解!!
PS.請用eclipse去改! 不要用JC會很多錯!
首先!
先打開L1NpcInstance.java
尋找private void useSkill(L1Character target, int mobskill) {
下就是怪物魔法了!
現看到的是招換類型魔法
private void useSkill(L1Character target, int mobskill) {
int bid = getNpcTemplate().get_npcId();
int dmg = get_level() * get_int() / 6; // // 注意!ダメージ適當(範囲スキル用基本ダメージ)
if (mobskill == 10 && !is_isdead() && get_currentHp() > 0) {
//20070725 protoplast change
if (bid == 45685 || bid == 45684 || bid == 45683 || bid == 45682
|| bid == 45681 || bid == 45673 || bid == 45649
|| bid == 45671 || bid == 45672 || bid == 45524
|| bid == 45542 || bid == 81075 || bid == 190020
|| bid == 190021) {
// 堕落、ヴァラカス、パプリオン、アンタラス、リンドビオル、グリムリーパー、デーモン、アリオク、リッチ
if (bid == 45649 || bid == 45524 || bid == 45542) {// 惡魔 惡魔系列
broadcastPacket(new S_AttackPacket(target, get_objectId(),
30));
} else if (bid == 45672) {// リッチ
broadcastPacket(new S_AttackPacket(target, get_objectId(),
18));
} else {
broadcastPacket(new S_AttackPacket(target, get_objectId(),
19));
}
areaskill(this, dmg, 10);
} else if (bid == 45569 || bid == 45573 || bid == 45583
|| bid == 45601 || bid == 45651 || bid == 45679
|| bid == 45499 || bid == 45604 || bid == 45606
|| bid == 45618 || bid == 45664 || bid == 81073
|| bid == 81039 || bid == 81040 || bid == 81041
|| bid == 190003 || bid == 190006 || bid == 45003) { //這一段是怪物編號 要新增怪物在這裡加入編號!!
// バルログのバフォメット、バフォメット、ベレス、デスナイト、魔獣軍王 バランカ、バランカ、バンパイア、マーキス
// バンパイア、バンパイア
int gg = 0;
if (bid == 45569 || bid == 45573 )這裡是會招換的怪物編號!!
要新增就依樣畫葫蘆!!
// 炎魔的巴風特 巴風特:改召LV42殘暴的史巴托
gg = 45455;//這裡是怪物召喚出來的編號!!
if (bid == 45583)// 巴列斯:改召LV45地獄束縛犬
gg = 45512;
if (bid == 45601)// 死亡騎士:改召LV42殘暴的史巴托
gg = 45455;
if (bid == 45651 || bid == 45679 || bid == 45003)// 魔獣軍王 バランカ、バランカ
gg = 45669;
if (bid == 45499 || bid == 45604 || bid == 45606 || bid == 81073)// 吸血鬼 馬昆斯吸血鬼:改召LV38魔蝙蝠
// バンパイア、バンパイア
gg = 45290;
if (bid == 45618 || bid == 45664)// 騎士範德:召暗黑黑騎士
gg = 45503;
if(bid == 81039)// 白金騎士:召喚黑暗騎士
gg = 81030;
if(bid == 81040)// 白金巡守:召喚黑暗法師
gg = 81031;
if(bid == 81041)// 白金巡守:召喚黑暗巡守
gg = 81032;
if(bid == 190003)// 白金刺客:召喚白金刺客的分身
gg = 190004;
if(bid == 190006)// 受詛咒的死亡騎士:召喚死亡騎士
gg = 45601;
if (bid == 45569 || bid == 45573 || bid == 45583
//在最後這裡! 也要加入新增怪物的編號! 這是施法動作!!
|| bid == 45601 || bid == 190006) {// 施法動作
broadcastPacket(new S_AttackPacket(target, get_objectId(),
18));
broadcastPacket(new S_SkillSound(get_objectId(), 761));
}else if (bid == 45651 || bid == 45679 || bid == 45499
|| bid == 45604 || bid == 45606 || bid == 81050
|| bid == 81073 || bid == 45003){// 魔獣軍王
// バランカ、バランカ、バンパイア、マーキス
// バンパイア、バンパイア
broadcastPacket(new S_AttackPacket(target, get_objectId(),
19));
} else if (bid == 45618 || bid == 45664) {// 施法動作
broadcastPacket(new S_AttackPacket(target, get_objectId(),
30));
broadcastPacket(new S_SkillSound(get_objectId(), 761));
}
mobspawn(this, gg);
接下來是全畫面魔法! 做法也是跟召換一樣做新增的動作!! 應該不難吧@@
} else if (bid == 45546 || bid == 45678 || bid == 45609
|| bid == 45617 || bid == 45680 || bid == 45677
|| bid == 45600 || bid == 45663 || bid == 45545
|| bid == 45595 || bid == 45654 || bid == 45265
|| bid == 45364 || bid == 81040 || bid == 81041
|| bid == 190008 || bid == 190019 || bid == 190020
|| bid == 190021 || bid == 190025 || bid == 81037
|| bid == 45676 || bid == 45672 || bid == 190049
|| bid == 190048 || bid == 190042 || bid == 190043) {//這裡加入新增!!
// ドッペルゲンガー、ケレニス、アイス クイーン、フェニックス、ケンラウヘル
int gg = 0;
if (bid == 45546 || bid == 45678 || bid == 45609 || bid == 81040)// 變形怪首領 賽尼斯 冰之女皇 白金法師
// 冰雪暴
gg = 2261;
if (bid == 45600)// 克特
// 死亡騎士-震烈-光
gg = 245;
if (bid == 45676 || bid == 190049 || bid == 190042)// 冥法軍王.海露拜 長老.巴陸德
gg = 4539;//黑流星群
if (bid == 45545 || bid == 45595 || bid == 45654 || bid == 45265 || bid == 45364 || bid == 81041 || bid == 81037)// 黑長者 艾莉絲 黑暗精靈 白金巡守
// 龍捲風(ps.弓手類放不出來!白金法師)
gg = 758;
if (bid == 45663 || bid == 45677 || bid == 45676)// 法令軍王.蕾雅 蕾雅
// 冰烈術
gg = 3933;
if (bid == 45617)// 不死鳥
// 不死鳥-攻擊魔法A
gg = 1793;
if (bid == 190048 || bid == 190043)//長老.拉曼斯
gg = 5651;//超大龍捲風
if (bid == 45672)// 巫妖
gg = 2552;//黑色氣息
if (bid == 45680)// 反王肯恩
gg = 4223;
if (bid == 190008)// 大王烏賊-迴旋漩渦
gg = 5550;
if (bid == 190019)// 特提斯-震裂踏擊
gg = 5261;
if (bid == 190020 || bid == 190021)// 炎魔(翅膀模式)-火焰放射
gg = 5514;
if (bid == 190025 || bid == 190026)// 火焰之影-毒氣放射
gg = 5638;
if (bid == 45678 || bid == 45663 || bid == 45677 || bid == 81040
|| bid == 190025 || bid == 45672 || bid == 45617 || bid == 45676
|| bid == 190049 || bid == 190048 || bid == 190042 || bid == 190043)// 賽尼斯 法令軍王.蕾雅 蕾雅 白金法師 炎魔
{
broadcastPacket(new S_AttackPacket(target, get_objectId(),
30)); // 施法動作
} else if (bid == 45546 || bid == 45609)// 變形怪首領 冰之女皇 黑長者 艾莉絲 黑暗精靈 白金巡守
{
broadcastPacket(new S_AttackPacket(target, get_objectId(),
18)); // 施法動作:
}
broadcastPacket(new S_SkillSound(get_objectId(), gg));
areaskill(this, dmg, 10);
}
載來是單體魔法!請看註解!
} else if (bid == 45618 || bid == 45664 || bid == 45678
|| bid == 45569 || bid == 45573 || bid == 45583
|| bid == 45499 || bid == 45604 || bid == 45606
|| bid == 45456 || bid == 45478 || bid == 45464
|| bid == 45473 || bid == 45488 || bid == 45497
|| bid == 45513 || bid == 45515 || bid == 45516
|| bid == 45547 || bid == 45600 || bid == 45663
|| bid == 45677 || bid == 45671 || bid == 45391
|| bid == 45393 || bid == 45394 || bid == 45400
|| bid == 45450 || bid == 45451 || bid == 45545
|| bid == 45580 || bid == 45649 || bid == 45672
|| bid == 45215 || bid == 45673 || bid == 45680
|| bid == 45524 || bid == 45542 || bid == 45569
|| bid == 45575 || bid == 45579 || bid == 45597
|| bid == 45598 || bid == 81069 || bid == 81073
|| bid == 81075 || bid == 81039 || bid == 190007
|| bid == 190008 || bid == 190023 || bid == 190028
|| bid == 190030 || bid == 190031 || bid == 190032
|| bid == 190037 || bid == 190038 || bid == 190020
|| bid == 190021 || bid == 45679 || bid == 190003
|| bid == 45676 || bid == 45606 || bid == 81036
|| bid == 81033 || bid == 45588 || bid == 45577
|| bid == 45574 || bid == 45585 || bid == 45496
|| bid == 45522 || bid == 45480 || bid == 45648) {//這裡加入新增!! 單體不用加施法動作!
// ナイトバルド、ナイトバルド、ケレニス、バルログのバフォメット、バフォメット、ベレス、バンパイア、マーキス
// バンパイア、バンパイア、ネクロマンサー、ネクロマンサー、セマ、バルタザール、カスパー、メルキオール、ゼニス
// クイーン、イフリート、イフリート、シアー、カーツ、魔霊軍王 ライア、ライア、アリオク
int gg = 0;
if (bid == 45473 || bid == 45569 || bid == 45573
|| bid == 45569 || bid == 45579 || bid == 45597
|| bid == 45598 || bid == 190030 || bid == 190031)// 巴土瑟 巴風特&巴列斯系列-地裂術
gg = 129;
if (bid == 45464 || bid == 45456 || bid == 45478)// 西瑪 魔法師 馬庫爾-極光雷電
gg = 170;
if (bid == 45488 || bid == 45583 || bid == 45649
|| bid == 45524 || bid == 45542 || bid == 45480)// 卡士伯 巴列斯 惡魔 惡魔系列-燃燒的火球
gg = 171;
if (bid == 45497)// 憤怒的古代人亡靈-光箭
gg = 167;
if (bid == 45678 || bid == 45618 || bid == 45664
|| bid == 190020 || bid == 190021 || bid == 45679 || bid == 190003 || bid == 190055)// 賽尼斯 騎士範德-流星雨
gg = 762;
if(bid == 45499 || bid == 45604 || bid == 45606 || bid == 81073)// 吸血鬼 馬昆斯吸血鬼-吸血鬼之吻
gg = 236;
if (bid == 45513)// 潔尼斯女王-網子
gg = 2810;
if (bid == 45496 || bid == 45522)//幼龍 骨龍
gg = 1064;
if (bid == 45515 || bid == 45516)// 伊弗利特-武器火A
gg = 1776;
if (bid == 45547)// 幻象眼魔-魔法攻擊
gg = 4080;
if (bid == 45671 || bid == 81075)// 阿利歐克-魔法攻擊
gg = 3924;
if (bid == 45215 || bid == 45600)// 長者 克特-極道落雷
gg = 10;
if (bid == 45663 || bid == 45677 || bid == 45676)// 魔靈軍王. 蕾雅 蕾雅-冰雪颶風
gg = 3685;
if (bid == 45391 || bid == 45393 || bid == 45394
|| bid == 45400 || bid == 45575 || bid == 81069
|| bid == 190028)// 思克巴系列-攻擊魔法(藍色妖女之吻)
gg = 1115;
if (bid == 45450 || bid == 45451 || bid == 45580)// 思克巴女皇 暗黑思克巴女皇-攻擊魔法(黃色妖女之吻)
gg = 1119;
if (bid == 45585 || bid == 45588 || bid == 45577 || bid == 45574)//暗殺團長.布雷哲 魔獸師長.辛克萊 突擊旅長.闇黑劍士 親衛隊長.凱特
gg = 3740;
if (bid == 45545)// 黑長者
// 靈光彈
gg = 2546;
if (bid == 45673)// 鐮刀死神-魔法攻擊
gg = 3395;
if (bid == 45680 || bid == 81039 || bid == 81036 || bid == 81033)// 反王肯恩 白金騎士
// 聖堂武士-劍氣(地上的劍氣)
gg = 1662;
if (bid == 45672)// 巫妖-魔法
gg = 2546;
if (bid == 45648)// 暗殺軍王.史雷佛
gg = 4785;//黑流星
if (bid == 81073 || bid == 45606)// 吸血鬼-魔法
gg = 3924;
if (bid == 190007)// 骨鰻魚-有向魔法-魚刺投射
gg = 5408;
if (bid == 190008)// 大王烏賊-觸手攻擊
gg = 5551;
if (bid == 190022)// 食腐獸-腐蝕毒液
gg = 5445;
if (bid == 190023)// 巴薩斯-光球攻擊
gg = 5467;
if (bid == 190032)// 小安加斯-火焰噴射
gg = 5272;
if (bid == 190037 || bid == 190038)// 長老隨從-光球魔法
gg = 5570;
broadcastPacket(new S_UseArrowSkillMob(
(L1MonsterInstance) this, target.get_objectId(), gg,
target.get_x(), target.get_y()));
sellskill(this, dmg, 2);
最後是範圍魔法!! 看註解應該很清楚 新增怪物魔法並不難!!
} else if (bid == 45650 || bid == 45547 || bid == 45601
|| bid == 45546 || bid == 45584 || bid == 45610
|| bid == 45613 || bid == 45614 || bid == 45685
|| bid == 81081 || bid == 190003 || bid == 190006
|| bid == 190023 || bid == 190032 || bid == 190037
|| bid == 190038 || bid == 45602 || bid == 45615
|| bid == 190044 || bid == 190045
|| bid == 190046 || bid == 190047 || bid == 190048
|| bid == 190049 || bid == 190042){
// ゾンビ ロード、シアー、デスナイト、ドッペルゲンガー、グレート ミノタウルス、エンシェント
// ジャイアント、バルログ、堕落、グレイヴ ガーディアン ナイト、アイリス、アイリス
int gg = 0;
if (bid == 45601 || bid == 45613 )// 死亡騎士 炎魔
// 死亡騎士-震烈-光
gg = 245;
if (bid == 190006)// 受詛咒的死亡騎士
// 死亡騎士-震烈-光
gg = 245;
if (bid == 190042 || bid == 190044 || bid == 190045|| bid == 190046 || bid == 190047 || bid == 190048 || bid == 190049)
gg = 1819;
if (bid == 45546 || bid == 45602 || bid == 45615)// 變形怪首領-火風暴
gg = 1819;
if (bid == 45584 || bid == 45610 || bid == 45614)// 巨大牛人 古代巨人 巨蟻女皇
// 震裂術
gg = 2483;
if (bid == 190003)// 白金刺客-鋼爪爪痕
gg = 3671;
if (bid == 190023)// 巴薩斯-音速衝擊
gg = 5466;
if (bid == 45650 || bid == 45547 || bid == 45601
|| bid == 45613 || bid == 45546 || bid == 45584
|| bid == 45610 || bid == 45614 || bid == 45602 || bid == 45615
|| bid == 190044 || bid == 190045|| bid == 190046 || bid == 190047
|| bid == 190048 || bid == 190049 || bid == 190042)//
// 施法動作
{
broadcastPacket(new S_AttackPacket(target, get_objectId(),
19));
if (bid == 45601 || bid == 45613 || bid == 190006 || bid == 190025 )// 死亡騎士 炎魔-範圍技
{
broadcastPacket(new S_SkillSound(get_objectId(), gg));
}
END~
改完之後DB也要改喔!!
打開NPC 找area_atk 這欄!
1=會放一種 2=會2種以上 0=不會放!
PS.怪物的攻擊距離ranged超過2都不會放魔法喔!!
原因不清楚.... 所以弓手類不能放魔法!
龍的魔法屬於特殊魔法!
特殊魔法指的是在攻擊動作中本身就附加魔法圖示的怪物
比如火龍的流星雨、水龍的水壓、風龍的全畫面閃電
這些算是特殊魔法,應為這是附加在攻擊動作上的魔法圖示!
就像是火龍放流星雨時 是丟5顆不同座標的流星雨!
所以沒有魔法編號!!
要改機率的話要打開L1MonsterInstance.java (此為killen大大的教學)
找尋以下原碼!
@Override
public void onAttackSkill() {
int chance = getRnd().nextInt(100) + 1;
if (getNpcTemplate().get_areaatk() == 2 && 95 < chance) {
_attackSkill = 10;
_attackRange = 10;
} else if (getNpcTemplate().get_areaatk() >= 1 && 5 > chance) {
_attackSkill = 6;
_attackRange = 5;
}
}
修改源碼的 95 < chance 和 5 > chance 即可提升施放的機率
95 < chance 數值越低,施展廣範圍魔法的機率越高
5 > chance5 > chance 數值越高,施展方向性魔法的機率越高
建議不要調太高!! 可能導緻當掉的情況!
改為90 < chance 和 10 > chance 就差不多!
4XX以後的核心改法!
因為4XX之後的核心把怪物放魔法DB化!
也變得比較亂...是很亂= =
但改的方式一樣!!
我舉個例子!! 先把很亂的原碼牌整齊!!
我拿rev458的原碼 整理過後!!
變成以下這樣子!
比較好看^^
/*
* if (mobskill == 10 && !is_isdead() && get_currentHp() > 0) {
* if (bid == 45685 || bid == 45684 || bid == 45683 || bid == 45682 || bid == 45681 || bid == 45673 ||
* bid == 45649 || bid == 45671 || bid == 45672) { //堕落、ヴァラカス、パプリオン、アンタラス、リンドビオル、グリムリーパー、デーモン、アリオク、リッチ
* if (bid == 45649) {// デーモン
* broadcastPacket(new S_AttackPacket(target, get_objectId(), 30));
* } else if (bid == 45672) {// リッチ broadcastPacket(new S_AttackPacket(target,get_objectId(), 18));
* } else { broadcastPacket(new S_AttackPacket(target, get_objectId(), 19));
* } areaskill(this, dmg, 10);
* } else if (bid == 45569 || bid == 45573 || bid == 45583 || bid == 45601 || bid == 45651 || bid == 45679 ||
* bid == 45499 || bid == 45604 || bid == 45606) { //這裡是召換怪物的編碼 這裡新增!!
* //バルログのバフォメット、バフォメット、ベレス、デスナイト、魔獣軍王 バランカ、バランカ、バンパイア、マーキス // バンパイア、バンパイア
* int gg =0;
* if (bid == 45569 || bid == 45573)// バルログのバフォメット、バフォメット
* gg = 45107;
* if (bid ==45583)// ベレス gg = 45241;
* if (bid == 45601)// デスナイト
* gg = 45161;
* if (bid ==45651 || bid == 45679)// 魔獣軍王 バランカ、バランカ
* gg = 45357;
* if (bid == 45499 || bid ==45604 || bid == 45606)// バンパイア、マーキス // バンパイア、バンパイア
* gg = 45290;
* if (bid ==45618 || bid == 45664)// ナイトバルド、ナイトバルド
* gg = 45503;
* if (bid == 45569 || bid ==45573 || bid == 45583 || bid == 45601) {// バルログのバフォメット、バフォメット、ベレス、デスナイト //這裡是施法動作
* broadcastPacket(new S_AttackPacket(target, get_objectId(), 18));
* broadcastPacket(new S_SkillSound(get_objectId(), 761));
* } else if (bid ==45651 || bid == 45679 || bid == 45499 || bid == 45604 || bid == 45606) {//魔獣軍王 // バランカ、バランカ、バンパイア、マーキス // バンパイア、バンパイア broadcastPacket(new
* S_AttackPacket(target, get_objectId(), 19)); } else if (bid == 45618 || bid == 45664) {// ナイトバルド、ナイトバルド
* broadcastPacket(new S_AttackPacket(target,get_objectId(), 30));
* broadcastPacket(new S_SkillSound(get_objectId(), 761)); }
* mobspawn(this, gg);
* } else if (bid == 45546 || bid == 45678 || bid == 45609 ||
* bid == 45617 || bid == 45680) { // ドッペルゲンガー、ケレニス、アイス クイーン、フェニックス、ケンラウヘル //這裡是全畫面魔法 這裡新增編號
* intgg = 0;
* if (bid == 45546 || bid == 45678 || bid == 45609)// ドッペルゲンガー、ケレニス、アイス //クイーン
* gg = 2261;
* if (bid == 45617)// フェニックス
* gg = 1793;
* if (bid == 45680)//ケンラウヘル
* gg = 4223;
* if (bid == 45678)// ケレニス
* { broadcastPacket(newS_AttackPacket(target, get_objectId(), 30));
* } else if (bid == 45546 || bid ==45609 || bid == 45617 || bid == 45680)// ドッペルゲンガー、アイス クイーン、フェニックス、ケンラウヘル //施法動作
* { broadcastPacket(new S_AttackPacket(target, get_objectId(), 18)); }
* broadcastPacket(new S_SkillSound(get_objectId(), gg));
* areaskill(this, dmg,10);
* } } else if (mobskill == 6 && !is_isdead() && get_currentHp() > 0) {
* if(bid == 45685 || bid == 45684 || bid == 45683 || bid == 45682 || bid == 45681 ||
* bid == 45673 || bid == 45529 || bid == 45578) //堕落、ヴァラカス、パプリオン、アンタラス、リンドビオル、グリムリーパー、ドレイク、ドレイク
* { Random random1 = newRandom();
* int chance1 = random1.nextInt(100) + 1;
* if (bid == 45685 || bid ==45673 || chance1 < 50 && (bid == 45684 || bid == 45683 || bid == 45682 || bid ==45681))// 堕落、グリムリーパー、ヴァラカス、パプリオン、アンタラス、リンドビオル
* { broadcastPacket(newS_AttackPacket(target, get_objectId(), 18));
* } else if (bid == 45684 || bid ==45683 || bid == 45682 || bid == 45681 || bid == 45529 || bid == 45578)//
* ヴァラカス、パプリオン、アンタラス、リンドビオル、ドレイク、ドレイク {
* broadcastPacket(newS_AttackPacket(target, get_objectId(), 30));
* } sellskill(this, dmg, 6);
* }else if (bid == 45618 || bid == 45664 || bid == 45678 || bid == 45569 || bid ==
* 45573 || bid == 45583 || bid == 45499 || bid == 45604 || bid == 45606 || bid ==
* 45456 || bid == 45456 || bid == 45464 || bid == 45473 || bid == 45488 || bid ==
* 45497 || bid == 45513 || bid == 45515 || bid == 45516 || bid == 45547 || bid ==
* 45600 || bid == 45663 || bid == 45677 || bid == 45671) { // 這裡是單體魔法
* ナイトバルド、ナイトバルド、ケレニス、バルログのバフォメット、バフォメット、ベレス、バンパイア、マーキス //
* バンパイア、バンパイア、ネクロマンサー、ネクロマンサー、セマ、バルタザール、カスパー、メルキオール、ゼニス //
* クイーン、イフリート、イフリート、シアー、カーツ、魔霊軍王 ライア、ライア、アリオク
* int gg = 0;
* if (bid == 45464 ||bid == 45456 || bid == 45456)// セマ、ネクロマンサー、ネクロマンサー
* gg = 170;
* if (bid ==45473)// バルタザール
* gg = 129;
* if (bid == 45488)// カスパー
* gg = 171;
* if (bid ==45497)// メルキオール
* gg = 167;
* if (bid == 45678)// ケレニス
* gg = 762;
* if (bid ==45569)// バルログのバフォメット
* gg = 129;
* if (bid == 45573)// バフォメット
* gg = 129;
* if (bid ==45583)// ベレス
* gg = 171;
* if (bid == 45499)// バンパイア
* gg = 236;
* if (bid ==45604)// マーキス バンパイア
* gg = 236;
* if (bid == 45606)// バンパイア
* gg = 236;
* if (bid ==45513)// ゼニス クイーン
* gg = 2810;
* if (bid == 45515)// イフリート
* gg = 1776;
* if (bid ==45516)// イフリート
* gg = 1776;
* if (bid == 45547)// シアー
* gg = 4080;
* if (bid ==45671)// アリオク
* gg = 3924;
* if (bid == 45618)// ナイトバルド
* gg = 762;
* if (bid ==45664)// ナイトバルド
* gg = 762;
* if (bid == 45600)// カーツ
* gg = 10;
* if (bid ==45663)// 魔霊軍王 ライア
* gg = 1805;
* if (bid == 45677)// ライア
* gg = 1805;
* broadcastPacket(new S_UseArrowSkillMob( (L1MonsterInstance) this,target.get_objectId(), gg, target.get_x(), target.get_y()));
* sellskill(this,dmg, 2);
* }else if (bid == 45650 || bid == 45547 || bid == 45601 || bid ==
* 45546 || bid == 45584 || bid == 45610 || bid == 45613 || bid == 45685 || bid ==
* 45545 || bid == 45595 || bid == 45654) { // ゾンビ ロード、シアー、デスナイト、ドッペルゲンガー、グレート //最後是範圍魔法!!
* ミノタウルス、エンシェント // ジャイアント、バルログ、堕落、グレイヴ ガーディアン ナイト、アイリス、アイリス
* int gg = 0;
* if (bid ==45601)// デスナイト
* gg = 245;
* if (bid == 45546)// ドッペルゲンガー
* gg = 1819;
* if (bid ==45584)// グレート ミノタウルス
* gg = 2483;
* if (bid == 45610)// エンシェント ジャイアント
* gg = 2483;
* if (bid == 45613)// バルログ
* gg = 245;
* if (bid == 45545)// グレイヴ ガーディアン ナイト
* gg =758;
* if (bid == 45595)// アイリス
* gg = 758;
* if (bid == 45654)// アイリス
* gg = 758;
* if(bid == 45650 || bid == 45547 || bid == 45601)// ゾンビ // ロード、シアー、デスナイト {
* broadcastPacket(new S_AttackPacket(target, get_objectId(), 19));
* if (bid ==45601)// デスナイト
* { broadcastPacket(new S_SkillSound(get_objectId(), gg)); }
* areaskill(this, dmg, 6);
* } else if (bid == 45546 || bid == 45584 || bid == 45610 || bid == 45613) {// ドッペルゲンガー、グレート ミノタウルス、エンシェント // ジャイアント、バルログ
* broadcastPacket(new S_AttackPacket(target, get_objectId(), 18));
* broadcastPacket(new S_SkillSound(get_objectId(), gg));
* areaskill(this, dmg,6);
* } else if (bid == 45685) {// 堕落 broadcastPacket(newS_AttackPacket(target, get_objectId(), 12));
* areaskill(this, dmg, 6);
* } elseif (bid == 45545) {// グレイヴ ガーディアン ナイト broadcastPacket(new
* S_AttackPacket(target, get_objectId(), 1)); broadcastPacket(new
* S_SkillSound(get_objectId(), gg)); areaskill(this, dmg, 6);
* } else if (bid ==45595 || bid == 45654) {// アイリス、アイリス broadcastPacket(new
* S_AttackPacket(target, get_objectId(), 30)); broadcastPacket(new
* S_SkillSound(get_objectId(), gg)); areaskill(this, dmg, 6); } } }
*/
4XX以後的版本變得很亂!!
不好看= = 要整理一下!! 可以整理成跟舊版的一樣比較容易懂!!
改的方法一樣!!
關於mobskill DB 部分解析 (此為killen大大的解析)
mobid = npc DB的 npcid ,用來判斷這隻怪物會不會放魔法
skilltype = 可以使用的魔法種類
area_act1 , area_ranged1 = 範圍性魔法,不用讀取圖像
area_gfxid2, area_act2 , area_ranged2 = 範圍性魔法,需要讀取圖像
spell_act1 , spell_ranged1 = 方向性魔法,不用讀取圖像
spell_gfxid2, spell_act2 , spell_ranged2 = 方向性魔法,需要讀取圖像
s_summon, ss_gfxid, ss_act = 召喚怪物的魔法
att_type = 設定特殊物攻和遠功的使用與否
att_gfxid1 = att_gfxid1+att_act1 = 需要讀取圖像的特殊物理攻擊(發動機率 < 30)
att_act1 = 特殊物理攻擊,發動機率 < 30
att_act2 = 特殊物理攻擊,發動機率 < 60 到 發動機率 <=30
att_act3 = 特殊物理攻擊,發動機率 < 50
att_act4 = 特殊物理攻擊,發動機率 100%
bow_gfxid, bow_act = 遠距離攻擊,圖像可以指定
關於 skilltype 如何設定數值
1 = 使用範圍性魔法,不用讀取圖像
2 = 使用範圍性魔法,需要讀取圖像
4 = 使用方向性魔法,不用讀取圖像
8 = 使用方向性魔法,需要讀取圖像
16 = 使用召喚術
32 = 四龍發動遠距離魔法時,會對玩家說「XXX 給你安息」
當一個怪物會 1、8、16 這三種魔法類行時
skilltype 就必須設定為 25,這是將三種類型的代號相加的值(1+8+16)
如果隻會單一種則直接輸入該類型代號即可
關於 att_type 如何設定數值
1 = 使用att_act1
2 = 使用att_act2
4 = 使用att_act3
8 = 使用att_act4
16 = 使用att_act1 + att_gfxid1
32 = 使用遠距離攻擊, bow_gfxid + bow_act
當一個怪物會 1、4、32 這三種魔法類行時
skilltype 就必須設定為 37,這是將三種類型的代號相加的值(1+4+32)
如果隻會單一種則直接輸入該類型代號即可
DB 其他欄位的設定說明
area_act1, area_act2, spell_act1, spell_act2, ss_act :
用來設定怪物施展魔法時,要做的動作代號
att_act1, att_act2, att_act3, att_act4, bow_act
用來設定怪物發動特殊攻擊時,要做的動作代號
area_ranged1, area_ranged2, spell_ranged1, spell_ranged2 :
表示射程或範圍
area_gfxid2, spell_gfxid2, ss_gfxid, att_gfxid1, bow_gfxid:
表示魔法或攻擊特效的代號
s_summon
要召喚的怪物的代號,請輸入npc DB的 npcid 3
注意:墮落的s_summon設定為0是因為他會召五種怪物,所以判斷是直接寫在源碼裡的
設定後 npc DB 當中 area_atk 的設定方法
當怪物隻會單一或複合的 4 , 8 和 32 (skilltype)這三種魔法,npc DB 當中 area_atk 請設定為 1
如果會其他魔法或綜合多種(含全部skilltype代碼),npc DB 當中 area_atk 請設定為 2
當怪物會特殊物理攻擊和遠距離攻擊,npc DB 當中 area_atk 請設定為 4
但是如果怪物會多種,像是會 1 和 4,npc DB 當中 area_atk 就請設定成5 (1+4的結果)
作者:
小竹
时间:
2008-10-7 19:13
不错,学习了..
作者:
a5621324
时间:
2009-4-1 21:16
好东西。。COPY回家。。
欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/)
Powered by Discuz! 7.2