点击投放广告点击投放广告点击投放广告点击投放广告
点击投放广告点击投放广告点击投放广告点击投放广告
广告
广告
广告
广告
广告
搜索
Hi~登录注册
查看: 885|回复: 1

[游戏修改教程] 三国天堂2安装说明及客户端下载地址

[复制链接]

26

主题

26

帖子

62

积分

常驻人口

Rank: 2

积分
62

最佳新人

发表于 2022-6-7 22:08:51 | 显示全部楼层 |阅读模式
三国天堂2安装说明及客户端下载地址
1.必先安装JDK1.8
2.下载客户端(不用更新)
3.把服务端配套的单机登陆器替换客户端里面的system



禁止商业,仅供学术研究

l2jtw 如何解决简单中文游戏名问题?
数据库中已改useUnicode=true&characterEncoding=UTF-8
建立人物可以输入中文,进入游戏后变为??号。可能要动数据库,有没有好的解决方法



答案:

config/server.properties文件
# 资料库的连线位置
URL = jdbc:mysql://localhost/l2jdb?useUnicode=true&characterEncoding=UTF-8

对应角色表 在角色字段 字符格式修改为:UTF-8


天堂2 HTML套用图档的方法[献给喜欢DIY百货商店的朋友]


【内核】大家所泛指的内核其实就是在模拟器文件夹里的JAR压缩包里面的CLASS文件。其占据主要地位的就是l2jserver.jar文件。里面含有关于天堂2游戏方式的基本定义文件、功能文件,模拟器运行后,能游戏就全靠它了。顾名思义-就是模拟器的“核心”了。打开它其实很容易,右键后解压缩即可。改过内核的朋友会知道,用DJ反编译查看、修改后出现*.JAVA文件,但模拟器用的是CLASS文件,并不是JAVA,所以这时候你就得用eclipse重新编译,打包成JAR才能正常使用。当然修改内核的前提是你会用JAVA语言。不懂也可以,把内核玩在手上大概3、4年的时候应该会自然而然的懂了。

【任务脚本】大部分玩家都希望任务的更完美,可以说,单机版没有任务玩就没意思了。任务脚本一部分是py文件所构成,另一部分则在内核里。任务的执行跟NPC的对话文件是分不开的。有的朋友埋怨为什么有些是英文?那就是因为NPC的对话HTML文件实在是太多了,有的地方可能汉化不完全的缘故。py文件和class文件里,都写了关于任务的一系列方法指令,当然HTML文件的执行也是在它们里面定义过的,所以做任务的时候会出相应HTML文件。基本任务还是CLA_Server\\gameserver\\data\\jscript\\quests下的一系列py及对话文件,汉化工作量是相当的庞大的。单单有了任务脚本还是不能在模拟器运行的时候执行,要在主目录下的py文件里加入此文件夹的名字才行。顺便把原来的CLASS文件删除掉。这样,模拟器运行的时候才能同时运行任务脚本。任务脚本怎么写,去置顶的索引里找资料吧,我想如果套用一些任务脚本的格式(注:不是内容),自己完成一个任务也不是不可能的。

【兑换脚本】这个可能大家都很熟悉(CLA_Server\\gameserver\\data\\multisell),主要功能在于任务时兑换一些任务道具或在商店实现兑换物品的作用。 然后在相关NPC的HTML对话文件加入multisell的命令就可以用了。保存的时候一定要注意,只能为UTF-8格式。

【武器、防具、技能脚本】此类的脚本都是定义效果的作用(CLA_Server\\gameserver\\data\\stats),因内核里已经定义了该技能的效果,所以通过脚本,修改一些概率或者添加一些技能效果,就能实现武器、技能、防具的效果强化。

【数据库】数据库里的一系列字眼都是内核里定义过的,其功能在于储存资料,还有就是关于物品的数值设定及基本属性。我们能通过修改这些资料,来实现一些简单的修改,比如添加武器、防具什么的。在这里,不是因为数据库有修改效果,而是每次模拟器重新运行的时候,会读取数据库里面的资料来实现读取以储存过的信息的目的,所以说数值或者信息是什么,模拟器就能辨认其效果是什么。比如,原本商店里没有东西,通过修改数据库里的数据,重新运行模拟器的时候,就能看见你自己添加上去的物品了。只能说数据库具有记忆作用了。

ONT>\\CLA_Server\\gameserver\\config下的一系列文件都可以用文本文档打开,并加以更改。里面的内容大多都是关于模拟器基本设定的。什么物品掉率,组队经验,GM名颜色显示,GEODATE地图文件启动等等。这些使用起来很简单,建议新手多去看一下里面的内容,因为现在的文件都已经经过汉化了,所以易懂。此功能也是在内核里定义过的。

PS:以上脚本的修改方法的教程曾有人做过,置顶里的教程索引里都已经有了相关索引,所以建议新手多多爬文。不明白,或者错误的地方请跟帖指出。

【内核】大家所泛指的内核其实就是在模拟器文件夹里的JAR压缩包里面的CLASS文件。其占据主要地位的就是l2jserver.jar文件。里面含有关于天堂2游戏方式的基本定义文件、功能文件,模拟器运行后,能游戏就全靠它了。顾名思义-就是模拟器的“核心”了。打开它其实很容易,右键后解压缩即可。改过内核的朋友会知道,用DJ反编译查看、修改后出现*.JAVA文件,但模拟器用的是CLASS文件,并不是JAVA,所以这时候你就得用eclipse重新编译,打包成JAR才能正常使用。当然修改内核的前提是你会用JAVA语言。不懂也可以,把内核玩在手上大概3、4年的时候应该会自然而然的懂了。

【任务脚本】大部分玩家都希望任务的更完美,可以说,单机版没有任务玩就没意思了。任务脚本一部分是py文件所构成,另一部分则在内核里。任务的执行跟NPC的对话文件是分不开的。有的朋友埋怨为什么有些是英文?那就是因为NPC的对话HTML文件实在是太多了,有的地方可能汉化不完全的缘故。py文件和class文件里,都写了关于任务的一系列方法指令,当然HTML文件的执行也是在它们里面定义过的,所以做任务的时候会出相应HTML文件。基本任务还是CLA_Server\\gameserver\\data\\jscript\\quests下的一系列py及对话文件,汉化工作量是相当的庞大的。单单有了任务脚本还是不能在模拟器运行的时候执行,要在主目录下的py文件里加入此文件夹的名字才行。顺便把原来的CLASS文件删除掉(广寒月影告诉我的)。这样,模拟器运行的时候才能同时运行任务脚本。任务脚本怎么写,去置顶的索引里找资料吧,我想如果套用一些任务脚本的格式(注:不是内容),自己完成一个任务也不是不可能的。

【兑换脚本】这个可能大家都很熟悉(CLA_Server\\gameserver\\data\\multisell),主要功能在于任务时兑换一些任务道具或在商店实现兑换物品的作用。 然后在相关NPC的HTML对话文件加入multisell的命令就可以用了。保存的时候一定要注意,只能为UTF-8格式。

【武器、防具、技能脚本】此类的脚本都是定义效果的作用(CLA_Server\\gameserver\\data\\stats),因内核里已经定义了该技能的效果,所以通过脚本,修改一些概率或者添加一些技能效果,就能实现武器、技能、防具的效果强化。

【数据库】数据库里的一系列字眼都是内核里定义过的,其功能在于储存资料,还有就是关于物品的数值设定及基本属性。我们能通过修改这些资料,来实现一些简单的修改,比如添加武器、防具什么的。在这里,不是因为数据库有修改效果,而是每次模拟器重新运行的时候,会读取数据库里面的资料来实现读取以储存过的信息的目的,所以说数值或者信息是什么,模拟器就能辨认其效果是什么。比如,原本商店里没有东西,通过修改数据库里的数据,重新运行模拟器的时候,就能看见你自己添加上去的物品了。只能说数据库具有记忆作用了。

【CONFIG】\\CLA_Server\\gameserver\\config下的一系列文件都可以用文本文档打开,并加以更改。里面的内容大多都是关于模拟器基本设定的。什么物品掉率,组队经验,GM名颜色显示,GEODATE地图文件启动等等。这些使用起来很简单,建议新手多去看一下里面的内容,因为现在的文件都已经经过汉化了,所以易懂。此功能也是在内核里定义过的。



直接打开天堂目录中 的music 文件 直接点试听 (如果你的播放器不支持OGG格式 要安装附带的 两个OGG的 DLL文件
如果 你要改QY音乐 (QY 的音乐文件是 NT_Gludin)
然后找一个你最喜欢的歌曲 更改名字为 NT_Gludin
然后 用 Advanced MP3 Converter 2.43添加到程序中
然后点转换 中 转换为OGG格式 文件

等等 转换完毕后 的文件 直接拖入 天堂目录中 的music 文件 目录覆盖

在更改音乐之前 最好先备份文件 好以后 改回 远 QY 城内音乐


设置CK和剑斗技能变为固定伤害


技能修改对照:
<set name="mpConsume" val="250"/> 消耗250MP
< set name="power" val="350.0"/> 威力350
< set name="target" val="TARGET_SELF"/> 目标自我
<set name="target" val="TARGET_ONE"/> 目标单个
<set name="target" val="TARGET_AREA"/> 目标群体(若为AURA则是以自我为中心对周围的伤害)
< set name="skillRadius" val="605"/> 群攻的半径(群体时用)
< set name="skillTime" val="7000"/> 技能时间间隔
<set name="skillType" val="MDAM"/> 技能类型:魔法攻击
<set name="skillType" val="DAM"/> 技能类型:物理攻击(BUFF技能有对应的skillType)
< set name="castRange" val="900"/> 发技能所须的距离
<skill id="30" levels="38" name="Backstab"> 技能ID,级数,名
<table name="#mpConsume"> 53 55 57 57</table> 把每级技能消耗的MP定义在 #mpConsume
< set name="mpConsume" val="#mpConsume"/> 调用上面定义的 #mpConsume
(<set name="power" val="#power"/> 同理,当然你也可以用这方法定义施法时间逐级减少或其它)
< for>
< using kind="Dagger" skill="0030"/> (Dagger是匕首,这是需要装备匕首才能发动此技能的意思,剑sword,盾Shield,砘器blunt如此类推)
< /add>
< /for>


解决飞龙,龙马的温饱问题


前提条件是已经正确修改了飞龙龙马的数据
服务端:
修改:
itemdata.txt

item_begin     etcitem     5110     [food_for_strider]     item_type=etcitem   
slot_bit_type={none}     armor_type=none     etcitem_type=none     blessed=0     weight=40   

default_action=action_skill_reduce     consume_type=consume_type_stackable   
initial_count=1     maximum_count=20     soulshot_count=0     spiritshot_count=0   

immediate_effect=1     price=0     default_price=100     item_skill=[s_food_for_strider]     
critical_attack_skill=[none]     material_type=liquid     crystal_type=none   

crystal_count=0     is_trade=1     is_drop=1     is_destruct=1     physical_damage=0     
random_damage=0     weapon_type=none     can_penetrate=0     critical=0     hit_modify=0   
avoid_modify=0     dual_fhit_rate=0     shield_defense=0     shield_defense_rate=0     
attack_range=0     effective_range=0     damage_range={}     attack_speed=0     reuse_delay=0   

mp_consume=0     magical_damage=0     durability=0     damaged=0     physical_defense=0     
magical_defense=0     mp_bonus=0     category={}     enchanted=0     html=
[item_default.htm]     }     magic_weapon=0     item_end
修改:
item_pch.txt
[food_for_strider]     =     5110

修改:
skill_pch.txt
[s_food_for_strider]     =     1128129
修改:
skilldata.txt
skill_begin     skill_name = [s_food_for_strider]     /* [???? ??] */     skill_id = 5110     
level = 1     operate_type = A1     magic_level = 1     effect = {{i_food_for_pet;150}}     
is_magic = 0     mp_consume2 = 0     cast_range = -1     effective_range = -1     skill_hit_time = 0     
skill_cool_time = 0     skill_hit_cancel_time = 0     reuse_delay = 0     attribute =
attr_none     effect_point = 0     target_type = self     affect_scope = single   

next_action = none     skill_end

客户端:

道具名称:

item_name_begin     id=5110     name=[龙饲料]     description=[龙所需食物]     item_name_end
编辑属性:
etcitemgrp.txt

item_begin     object_id=5110     object_name=[food_for_strider]     drop_type=0     drop_anim_type=3     drop_radius=2.7     drop_height=5     drop_mesh={[dropitems.drop_sack_m00]}     drop_texture={[dropitemstex.drop_sack_t00]}     icon={[icon.etc_pouch_yellow_i00]}     mesh={[none]}     texture={[none]}     crystallizable=0     drop_sound=[ItemSound.itemdrop_etc_sack]     equip_sound=[none]     etcitem_type=none     weight=40     consume_type=consume_type_stackable     material_type=liquid     crystal_type=none     durability=0     item_end
添加技能名称
skill_begin     skill_id = 5110     skill_level = 1     name = [龙饲料]     desc = [none]     skill_end
技能:
skill_begin     skill_id = 5110     skill_level = 1     icon = [icon.skill0000]     operate_type = 0     is_magic = 0     mp_consume = 0     hp_consume = 0     consume_item_id = 0     consume_item_count = 0     cast_range = -1     skill_time = 0     reuse_delay = 0     abnormal_time = 0     abnormal_id = 1     hit_time = 0     animation = [none]     cast_style = 0     bar_level_main = 1     bar_level_sub_max = 1     skill_end

skillsound_begin     skill_id = 5110     skill_level = 1     spelleffect_sound = [SkillSound.potion]     spelleffect_sound_vol = 250     spelleffect_sound_rad = 50     shoteffect_sound = [none]     shoteffect_sound_vol = 0     shoteffect_sound_rad = 0     expeffect_sound = [none]     expeffect_sound_vol = 0     expeffect_sound_rad = 0     mfighter_cast = [none]     mfighter_magic = [none]     ffighter_cast = [none]     ffighter_magic = [none]     mmagic_cast = [none]     mmagic_magic = [none]     fmagic_cast = [none]     fmagic_magic = [none]     melf_cast = [none]     melf_magic = [none]     felf_cast = [none]     felf_magic = [none]     mdarkelf_cast = [none]     mdarkelf_magic = [none]     fdarkelf_cast = [none]     fdarkelf_magic = [none]     mdwarf_cast = [none]     mdwarf_magic = [none]     fdwarf_cast = [none]     fdwarf_magic = [none]     morc_cast = [none]     morc_magic = [none]     forc_cast = [none]     forc_magic = [none]     mshaman_cast = [none]     mshaman_magic = [none]     fshaman_cast = [none]     fshaman_magic = [none]     cast_volume = 250     cast_rad = 50     skillsound_end



SYSTEM下所有文件的解释


actionname-cn.dat 行为名称设定
armorgrp.dat 装备效果
armorgrp-fc.dat 装备效果
castlename-cn.dat 城堡名称
chargrp.dat 人物效果
chargrp-fc.dat 人物效果
classinfo.dat 建造人物职业说明
commandname-cn.dat 行为菜单
creditgrp-cn.dat 版权
entereventgrp.dat 进入事件
etcitemgrp.dat 物品属性
eula-cn.dat 登陆界面 「天堂II网络游戏」 商业运营服务合约书
gametip-cn.dat 进入游戏温馨提示
hairaccessorylocgrp.dat 头发数据?没解开
hennagrp-cn.dat 纹身
huntingzone-cn.dat 狩猎区域
idcname-cn.dat 运营商?
instantzonedata-cn.dat 瞬间出现区域
itemname-cn.dat 物品名称描述.
logongrp.dat 坐标类?
mobskillanimgrp.dat 怪物技能
musicinfo.dat 音乐
npcgrp.dat NPC信息
npcname.dat NPC名字 中文
obscene-cn.dat 过滤信息
optiondata_client-cn.dat 技能强化或是精练
questname-cn.dat 任务名称
raiddata-cn.dat 狩猎数据
recipe-c.dat 制作卷轴
servername-cn.dat 服务器名称
shortcutalias.dat 小窗口切换?自定义设置?
skillgrp.dat 技能属性
skillname-cn.dat 技能名称
skillsoundgrp.dat 技能声音
staticobject-cn.dat 建筑物,物件等
symbolname-cn.dat 纹身等
sysstring-cn.dat 游戏内小按钮或显示资料
systemmsg-cn.dat 系统信息提示
transformdata.dat 数据处理
variationeffectgrp.dat 武器精练效果
weapongrp.dat 武器
zonename-cn.dat 区域名称


multisell兑换系统使用教程


1.如何編寫multisell下的xml檔案
我們以001.xml來看

<?xml version='1.0' encoding='utf-8'?>

<!-- 說明這個檔案的內容 --> <<他是讓妳知道妳這個選單物品內容

<list>

<!-- 物品交換明細 什麼東西換什麼東西--> ] <<不懂英文就COPY一個XML來寫就好
<item id="1"> <<第一項物品編碼 千萬不能重覆
<ingredient id="57" count="2100" enchant="0"/> <<需要第一項物品編號57數量2100
<ingredient id="21" count="1" enchant="0"/> <<需要第二項物品編號21數量1
<production id="22" count="1" enchant="0"/> <<換取物品編號22數量1
</item>
以此累推
<!-- [wooden_breastplate] for [leather_shirt]+[adena];5400 -->
<item id="2"> <<記得編號要按照順序改下來不能有重複的
<ingredient id="57" count="5400" enchant="0"/>
<ingredient id="22" count="1" enchant="0"/>
<production id="23" count="1" enchant="0"/>
</item>
....

</list>

2.檔案名稱要求有2種方法
一.依照NPC編號 如果這個NPC只有賣這些不會跟其他NPC重複的話
二.請確定XML編號有無重覆

3.給予相關NPC對應販售連結
例如:
假設妳的XML編號是001
那server\l2j\gameserver\data\html\default/12618這個檔案裡面連結需要更改如下
<a action="bypass -h npc_%objectId%_multisell 001">購買東西</a>
只要給予001做對應即可 不要用到副檔名 不然會連結失敗

详细定义装备,武器的教程


armor第一行item id 物品ID
name 自己发挥
bodypart 装备部位chest上衣 legs裤子 feet鞋 head帽子 gloves手套 underwear上衣 rear lear左右耳环 neck 项链 rfinger lfinger 左右戒指 face面具
crystallizable 是否可以结晶(强化) 写true
armor_type light轻 heavy重 magic法 面具写none
weight 重量 自己发挥
material 看着办 写gold金的吧
crystal_type d c b a s s80
avoid_modify 0
duration -1
p_def 物理防御 自己发挥
m_def 魔防 同上
mp_bonus 装备后增加MAXMP的值 自己发挥
price 价钱 商店交易价格 自己发挥
sellable dropable destroyable tradeable 第一个是能否出售 能否掉落 能否被毁坏 能否交易 true 可以 false不可以
item_skill_id 装备后所带技能ID
item_skill_lvl 装备后所带技能级别
races 不知道额。 写-1
classes 对职业装备的限制。写职业ID 多个的话用英文逗号隔开 没有-1
sex 性别限制 没有-1
套装arorsets
ID 序号 别重 按顺序来
CHEST 装备的上衣ID
LEGS 装备的裤子ID 如果是连身的就写0
HEAD 帽子
GLOVES 手套
FEET 鞋子
SKILL_ID 同时在以上部位装备以上物品时获得的技能ID
SKILLSET_ID 3006
SHIELD 盾牌.
SHIELD_SKILL_ID 装备盾牌额外获得技能ID.
ENCHANT6SKILL 全套强化加6以后获得技能ID.

物品(不算武器装备首饰面具)etcitem
item_id ID
name 发挥
crystallizable 是否可以结晶(强化) 写false
item_type 写none就可以了
weight 重量 发挥下.
consume_type normal
material 材料 写glod
crystal_type none
durtion NONE
price 卖店价格
crystal_count 结晶数量0
四个ABLEsellable dropable destroyble tradeable 上面说过..
old name 自己发挥
old type none


weapon表 武器
weapontype bow弓 pole矛 etc(我晕 等等 都出来)其他.(如古书什么的) NONE 盾牌 dagger匕首 sword 剑 blunt 钝器 bigsword 双手剑 dual 2刀流

剩下的都差不多
bodyparty lrhand 双手 lhand左 rhand右
soulshots 灵魂弹消耗
spiritshots 魔灵弹消耗
p_dam 物理伤害
rnd_dam 不清楚 写10吧
on cast_skill_id 是几率技能
oncritskill_id 致命时附加技能 没有写0


XML
L2SoM-Server-Utopia\l2server\data\stats ARMOR装备 weapon武器
这就是一个衣服
<item id='10207' name="Enhanced Striped Scale Shirt">
<for>
<add val='26(增加的物理防御)' order='0x10' stat='pDef'/>
<enchant val='0' order='0x0C' stat='pDef'/>
</for>
</item>

武器
<item id='10212' name="npc Only (Bow)">
<for>
<set val='0' order='0x08' stat='pAtk'/>物理攻击
<set val='0' order='0x08' stat='mAtk'/>魔攻
<set val='10' order='0x08' stat='rCrit'/>致命率
<set val='325' order='0x08' stat='pAtkSpd'/>物理速度
<enchant val='0' order='0x0C' stat='pAtk'/>强化武器的每级物理攻击
<enchant val='0' order='0x0C' stat='mAtk'/>强化魔攻 以上数据与数据库冲突时以XML为住.
</for>
</item>

XML代码
注意 抗性 <mul stat="WaterVuln" value="0.9" order="0x30" /> 抗水 +10%
命中率 accCombat
回避率 rEvas
致命率 rCrit
致命威力 cAtk
魔法致命率 mCritRate
物攻速度 pAtkSpd
施法速度 mAtkSpd
物攻 pAtk
魔攻 mAtk
HP最大 maxHp
MP最大 maxMp
CP最大 maxCp
普防 pDef
魔防 mDef
盾防 sDef
回血速度 regHp
回蓝速度 regMp
回CP速度 regCp
充蓝 gainMp
充血 gainHp
盾格挡率 rShld
盾防角度 shldAngle
经验率 rExp

抗出血 bleedVuln
抗冲击 stunVuln
抗沉默术 muteVuln
抗毒 poisonVuln
抗固定 rootVuln
抗麻痹 paralyzeVuln
抗催眠 sleepVuln
抗混乱 confusionVuln
抗沉默 muteVuln
抗减速 movementVuln
抗地属性 earthVuln
抗风属性 windVuln
抗火属性 fireVuln
抗水属性 waterVuln
抗神圣 holyVuln
抗黑暗 darkVuln
抗剑 swordWpnVuln
抗钝 bluntWpnVuln
抗匕 daggerWpnVuln
抗拳 fistWpnVuln
抗弓 bowWpnVuln
抗枪 poleWpnVuln
抗双刀 dualWpnVuln
抗双手武器 dualFistWpnVuln
抗拳头? noneWpnVuln
抗其他 etcWpnVuln
移动 runSpd
移动 movement
魔法恢复率 mReuse
技能回复率 atkReuse
普通反射 reflectDam
reflectStance
吸血怒击 absorbDam
痛苦转移 transDam
攻击中断 cancel
普通攻击距离 pAtkRange
魔法攻击距离 mAtkRange
枪类攻击角度 poleAngle
肺活量 breath
性向 aggression
性向率 aggressionRes
weakness
出血 bleed
毒 poison
休克 stun
固定 root
混乱 confusion
睡眠 sleep
火 fire
风 wind
水 water
地 earth
神圣 holy
黑暗 dark
克不死 pAtk-undead
抗不死 pDef-undead
克植物 pAtk-plants
克虫子 pAtk-insects
克动物 pAtk-animals
克怪物 pAtk-monsters
克龙 pAtk-dragons


HTML文件夹说明


teleporter 守门人
siege 传令
wedding 结婚
wyvernmanager 未知
warehouse 仓库
villagemaster 宗师
urn 未知石头(跟提炼有关)
symbolmaker 纹身
seven_signs 七封印
SepulcherNpc 四大陵墓
petmanager 宠物管理员
olympiad 奥林匹克
petition 请愿
admin GM菜单
mods 修改改造&tvt
observation 中继塔
merchant 商店
mercmanager 雇佣佣兵管理
help 帮助
guard 警卫
fortress 森林
fortManager 城堡管理
fisherman 钓鱼
doormen 城堡门人管理
custom 习惯(人物习惯方面)
default 默认NPC
CommunityBoard 布告栏
common 普遍应用(技能强化,武器技能,幻影武器等)
classmaster 转职
clanHallManager 血盟小屋管理
chamberlain 城堡内侍管理(种子等)
castlewarehouse 城堡仓库管理
castleteleporter 城堡守门人
castlemagician 城堡魔术师(护身符相关兑换)
auction 根据地管理
castleblacksmith 城堡铁匠
adventurer_guildsman 冒险工会
另外有关GM,玩家登陆信,领地信息,决斗场,默认NPC等



批量修改一键完成之常用的Sql语句及L2J中应用范例


相比其他网游模拟器,L2J的数据库很庞大,有的时候修改起来会特别的麻烦,
这里介绍一些常用的Sql语句,大家认真看完这个教材以后修改东西必定会事半功倍.
注意每条语句每个单词之间是有空格的,如果想运行这些语句,使用Navicat连接到数据库按下F6输入即可
语句中所用到的标点符号均是半角英文输入状态下的符号,下面先开始介绍语句,其实对于常用的修改,只要学会两大类语句即可
更新与删除.
1.更新语句:
格式: update 表名 set 字段名 = 值(或运算公式);
L2J中应用的举例说明:
例1: 我想要游戏中所有的NPC血量都变成10000,
sql : update npc set hp = 10000;
分析: npc 是表名, hp就是我们要修改的字段,这样运行后的结果就是所有npc的血量都变成10000了
例2: 我想要游戏中所有NPC的血量都变成原有值的2倍,
sql : update npc set hp = hp * 2;
分析: 这里对字段hp做的是乘法运算,将hp翻倍后在重新赋值给hp字段
例3: 我想要游戏中的NPC的血量都变成原有数值的1.5倍
sql : update npc set hp = hp * 3 / 2;
分析: 出现小数运算了,这里不推荐直接乘以小数值,建议使用先乘后除的运算
例4: 我想要游戏中所有的boss类型的NPC血量变更为2倍
sql : update npc set hp = hp * 2 where type = 'L2RaidBoss';
分析: 同样是运算,这里出现了一些条件限制,条件限制我们可以用where来处理,其中type字段决定了npc的类型,而type的数据类型属于字符串,所以type中的值要用引号来括起来.
例5: 我想要游戏中ID从1000到2000的NPC的血量翻倍
sql: update npc set hp = hp * 2 where id >999 and id < 2000;
分析: 条件约束出现了要约束一个区间的情况,这个时候可以用where 与 and 合作来完成

2,删除语句:
格式: delete from 表明 where 字段名条件;
L2J中的举例应用说明:
例1:我想要删除出了金币以外所有物品的掉落信息
sql : delete from droplist where itemId <> 57;
分析: droplist 是掉落信息的表, itemId 是物品的id ,当id不等于57即金币时,那么记录就会倍删掉,这样执行后的结果怪物只会掉落金币
例2: 我想删除某几个物品在所有怪物身上的掉落信息.
sql : delete from droplist where itemId in (A,B,C,D,.....);
分析: 无论是哪个怪物itemId为A,B,C,D...的物品掉落信息全被删掉了,其他掉落信息完全保留

好啦,教材到这里就结束了,sql语句应用起来并不困难,希望大家能够学会举一反三灵活应用,另外错别字无视吧!



怪物控单系统使用指南


L2J系统写的一个有趣的小模块,可以编组控制NPC(或SPC),可以设置跟随或者攻击目标或队伍

L2J-SoM-1.x版本可以在GM菜单主页点击"怪物控单"开启怪物控单

===============================================

进入这个选单后,虽然都经过汉化了,但是还是不知如何去使用它!
按下指示后,出现英文说明档慢慢详读字字都懂,但是还是不会用它,爬文找不到答案,也没人愿意分享使用心得更没有详细的教学,总觉的有点缺陷有些遗憾。

下方的英文说明档是每个求问人所得到相同的答案,看到以下的说明档后,打退堂鼓的人包括小弟在内。


//mobgroup_create [groupId] [npcId] [number]
Creates a group with [number] mobs of type [npcId], in the group [groupId].
There is no visual effect using this command, and the members of this group need to be spawned to become active.

//mobgroup_remove [groupId]
Removes/deletes the group [groupId], subsequently unspawning any group members still alive.

//mobgroup_spawn [groupId] [locx] [locy] [locz]
Spawns the members of group [groupId]. If a location isn't specified, the group will be spawned around the GM.
By default, mobs are in an idle state, and await further commands.
//mobgroup_unspawn [groupId]
Unspawns the members of group [groupId]. The group is not deleted and can be invoked by the use of //mobgroup_spawn once more.
//mobgroup_list ([groupId])
Lists all created monster groups. If [groupId] is specified, then a list of the members of that group is displayed.
Other Commands //mobgroup_follow [groupId] - The group [groupId] will follow the GM.
//mobgroup_return [groupId] - The group [groupId] will return to the GM.
//mobgroup_teleport [groupId] ([playerName]) - The group [groupId] will be teleport to and follow the specified player (or the GM if none specified).
//mobgroup_attack [groupId] - The group [groupId] will attack the GM's current target (if any).
//mobgroup_rnd [groupId] - The group [groupId] will attack a randomly selected targets.
//mobgroup_attackgrp [groupId1] [groupId2] - The group [groupId1] will attack the members in [groupId2].
//mobgroup_casting [groupId] - The group [groupId] mobs will only use their skills to attack.
//mobgroup_nomove [groupId] [on/off] - Toggle the mobs of group [groupId] to no longer move. Interesting when used with casting-only mode.
//mobgroup_invul [groupId] [on/off] - Toggle the mobs of group [groupId] to be invulnerable.
//mobgroup_idle [groupId] - Return the mobs in group [groupId] to an idle (waiting) state.
//mobgroup_kill [groupId] - Kills all alive mobs in group [groupId].


好的,请不要放弃原文,反而有很多指令在选单方块上是办不到,必须要亲自下指令才行。


本文开始:

我把选单和指令一并讲解,你只要吸收一次,就可举一反三了。

一、
//mobgroup_create [groupId] [npcId] [number]
Creates a group with [number] mobs of type [npcId], in the group [groupId].
There is no visual effect using this command, and the members of this group need to be spawned to become active.

1.下指令的语法是://mobgroup_create 5 6 7
2.选单-怪物控制参数内自填5(空格)6(空格)7 按下建立团体。
两个方式所得到的效果是一样的,你选择一种来使用即可。

说明:建立一个团体,叫第5队、NPC使用id=6(兽人弓箭手)、7只相同的NPC所组成。

做好第一步只是让系统先准备,并且在讯息中你会看见系统告知你团队5建立

二、
下一步,就是叫出来
1.//mobgroup_spawn 5
2.选单-怪物控制参数内填5 按下召唤团体。
两个方式所得到的效果是一样的,你选择一种来使用即可。
说明:无。看图就明白了。看不清点图放大来看。



这七只小怪物就是我召出来的。用Shift + 鼠左key 看到讯息,怪物群:5
就是它们的部队编号。不管你的团队是小兔子还是大boss即不还手更不会被石化都是乖乖让你打到死。

其实,前面两个步骤就是精华所在,后面的控制会的人就会如法泡制自己玩下去了,写到这应该就没东西可写下去了。

但是图截的太多了自已花了不少时间在测试,有空的朋友就再接着看下去吧!哈!

首先,叫出100只善良可爱的小兔子(id=2),让它们跟着我到处乱跑。



跟随:Follow

别忘了,这支部队是我创的五号喔!所以要在指令上或是参数上打上个5,这样它们就Follow you。


攻击: Attack

说明:部队就会以你所指定的目标进行攻击。

因为部队打门卫,所以门卫冲出去反击。

叫出狩猎首领来测试,图片上有小说明。


接下来叫出两只活巴温组在一起部队番号给2号。跟随在我身旁好像两只大门神一般。

有人会问到,什么是活巴温?
Ans:巴温在资料库中有两种,一种是石像巴温,另一就是我说的活巴温(id=12372)。

注:C6版本巴温ID号为:29025(石像) 29020

要告诉大家只要属于GM人物都可以控制怪物团队,不管那一个帐号内的人物。

在这我要说四件事
第一、我的五号部队有七只怪,但是不一定会全体一起攻击,不管你下的是攻击目标还是团体攻击(这个按钮没用,系统会告诉你错误),总是有几只呆呆的不想动,被门卫清掉几只后,或许发呆的几只就接着开始攻击门卫了,这点我就不是很清楚可能和怪物的AI或是内部攻击顺序有关吧!请有经验的朋友一起讨论。
第二、你没有办法操控它使用何种攻击,换句话说你就只能帮打、补HP或是在旁看戏。
第三、你想让你的部队无敌状态,就必要下指令,选单的参数没法接受。//mobgroup_invul [groupId] [on/off]
on = 使用 off =不使用
此例://mobgroup_invul 5 on
第四、你召出来部队可以攻击门卫,门卫也有所反应来反击,并且你的部队是可以杀死门卫,但是指定野外的怪物对方没有仇恨度也不会损血更不会死亡,好像在杀隐型怪一样。

再来介绍好用的指令。
//mobgroup_list
显示出所有的怪物团队




各种进游戏出错以及解决方法


各种进游戏出错以及解决方法...
运行游戏时出现以下提示:“the game may not be consistant because AGP is deactivated please activate AGP for consistancy”' 这个问题的原因可能是由于您的显示卡的驱动或者主板的显示芯片组的驱动不是最新。或您虽然已经更新了您的显示卡的驱动程序,但是跟显示有关的硬件不仅仅是显示卡,还需要主板的chipset支持,只有将主板的chipset也更新到最新,才能充分发挥显卡的功能。  出现这个提示,最可能的原因是您没有打开AGP功能从而另显卡的效能无法发挥,此现象多发生在安装操作系统后没有更新主办芯片组的情况,请您到官方网站下载最新的主板芯片组驱动程序。
------------------------------------------------------------------------------------
运行游戏时出现这样的错误提示
OS: Windows XP 5.1 (Build: 2600):  
CPU: GenuineIntel Unknown processor @ 2002 MHz with 255MB RAM
 Vide NVIDIA GeForce2 MX/MX 400 (6693)3 M\"
 Insufficient Memory.
 Please check the Virtual Memory Option and avilable hard drive space.
You can check them by going to : Control Panel->System->Advanced->erformance->Settings->Advanced->Virtual memory.:
这是因为您的虚拟内存或者磁盘空间不够导致。在物理内存比较少的情况下,系统会将数据暂时存放在位于硬盘上的虚拟内存中,天堂2的客户端大小大约4G左右,请您确保您的硬盘可用空间及虚拟内存在4G以上。
------------------------------------------------------------------------------------

我已经从官方网站下载了DirectX9.0C并且安装了,进入游戏怎么还是提示我没有安装?; 这可能是因为您并没有真正的安装DirectX9.0C。从官方网站下载的DirectX9.0C只是一个自解压的文件,双击这个文件会根据您的要求把安装文件释放到您选择的地点,这并不表示您完成了DirectX9.0C的安装。您需要在文件释放完成之后,进入解压缩后的文件夹,双击“dxsetup.exe”开始DirectX的安装。
------------------------------------------------------------------------------------
安装好了DX9.0C,也更新了显卡驱动,但是在点击开始的时候出来图标就自动重启,或者还没进到登陆界面就黑屏,怎么办?
这个问题一般是由于您没有更新主板芯片组驱动的原因。显卡除了需要显卡的驱动程序以外,还需要主板的支持,请您按照官方网站的提示,到下载页面的最下端下载您对应主板的芯片组驱动程序,安装后一般都可解决上述问题
------------------------------------------------------------------------------------
进入游戏后,快捷方式栏和功能键都看不见,怎么了?
解决方法:进入游戏后按 Alt + X, 在弹出的系统选单中单击功能选项,然后选择游戏选项,单击原始设定即可。\"
------------------------------------------------------------------------------------
OS: Windows XP 5.1 (Build: 2600) .
CPU: GenuineIntel Unknown processor @ 2803 MHz with 510MB RAM Vide NVIDIA GeForce FX 5200 (5216) General protection fault! History: UAnimNotify_Sound::Notify1 <- UAnimNotify_Sound::Notify <- UpdateAnimation <- AActor::Tick <- TickAllActors <- ULevel::Tick <- (NetMode=0) <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop
这是使用内挂最经常出现的错误!!!

----------------------------------------------------------------------------------------

OS: Windows XP 5.1 (Build: 2600) CPU: AuthenticAMD PentiumPro-class processor @ 1992 MHz with 511MB RAM Vide NVIDIA GeForce FX 5200 (6182) General protection fault! History: FMallocWindows::Free <- FMallocWindows::Realloc <- 00005143 0 FArray <- FMallocWindows::Free <- WM_PAINT <- NCVirtualWndMain:: DispatchWndMsg <- NConsoleWnd::ConsolePostRender <- UGameEngine:: Draw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop2
可能是显示卡不支持,或者显卡驱动程序未正确安装。
---------------------------------------------------------------------------------------
OS: Windows 98 4.10 (Build: 67766446) CPU: GenuineIntel Unknown processor @ 2396 MHz with 255MB RAM Vide NVIDIA GeForce4 MX 440 with AGP8X (5216)
Failed to enter Entry: Can't find file 'Entry'
History: UGameEngine::Init <- InitEngine
这是补丁没有安装正确,请注意把补丁安装到您天堂II游戏的主目录下。

----------------------------------------------------------------------------------------
OS: Windows XP 5.1 (Build: 2600)
CPU: GenuineIntel Unknown processor @ 2002 MHz with 255MB RAM
  Vide NVIDIA GeForce2 MX/MX 400 (6693)
  Insufficient Memory.
  Please check the Virtual Memory Option and avilable hard drive space.
You can check them by going to : Control Panel->System->Advanced->erformance->Settings->Advanced->Virtual memory.
这是因为您的虚拟内存或者磁盘空间不够导致。在物理内存比较少的情况下,系统会将数据暂时存放在位于硬盘上的虚拟内存中,天堂2的客户端大小大约4G左右,请您确保您的硬盘可用空间及虚拟内存在4G以上
-----------------------------------------------------------------------------------------
OS: Windows XP 5.1 (Build: 2600) CPU: GenuineIntel Unknown processor @ 1719 MHz with 503MB RAM Vide Intel(R) 82845G/GL Graphics Controller (3055)
Assertion failed: MipmapSize <= Length [File:UnCanvas.cpp] [Line: 602]2 }
History: UL2TextureFactory::FactoryCreate <- UFactory::StaticImportObject <- UNetworkHandler::Tick <- Function Name=PledgeCrestPack <- UGameEngine::Tick <- UpdateWorld <- MainLoop
客户端不完整,建议下载安装我们的完整版客户端
----------------------------------------------------------------------------------------
OS: Windows 98 4.10 (Build: 67766446) CPU: GenuineIntel Unknown processor @ 1500 MHz with 511MB RAM Vide NVIDIA GeForce FX 5200 (4523)*
Bad name index 7215/839
History: ULinkerLoad<<FName <- (LinkerLoad Transient.LinkerLoad150 185707)) <- FObjectImport<< <- LoadImportMap <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- ULinkerLoad::VerifyImport <- ULinkerLoad::VerifyImport <- ValidateImports <- ULinkerLoad::Verify <- ULinkerLoad::ULinkerLoad <- UObject::GetPackageLinker <- UObject::StaticLoadObject <- (Engine.Level None.MyLevel 17_25.unr) <- VerifyPackages <- UGameEngine:oadMap <- LocalMapURL <- UGameEngine::Browse <- ClientTravel <- UGameEngine::Tick <- UpdateWorld <- MainLoop
因为你的客户端不完整所致,建议你下载安装我们的完整版客户端就不会出现这种情况:
---------------------------------------------------------------------------------------.
OS: Windows XP 5.1 (Build: 2600) CPU: GenuineIntel Unknown processor @ 1999 MHz with 255MB RAM Vide NVIDIA GeForce FX 5200 (7122)
Error setting display mode: CreateDevice failed (D3DERR_DEVICELOST). Please delete your Option.ini file if this error prevents you from starting the game.
History: UD3DRenderDevice::UnSetRes <- CreateDevice <- UD3DRenderDevice::SetRes <- UWindowsViewport::TryRenderDevice <- UWindowsViewport::ToggleFullscreen <- WM_SYSCOMMAND <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- UWindowsViewport::ViewportWndProc <- WWindow::StaticProc <- MessagePump <- MainLoop
显卡模式没有安装正确。


1。 OS: Windows XP 5.1 (Build: 2600)
CPU: GenuineIntel Unknown processor @ 1695 MHz with 1023MB RAM
Video: (0)
Assertion failed: RenDev [File:WinViewport.cpp] [Line: 535]
History: UWindowsViewport::OpenWindow <- UGameEngine::Init <- InitEngine
大致是因为显卡驱动安装不正确,导致找不到显卡

2。 OS: Windows XP 5.2 (Build: 3790)
CPU: GenuineIntel PentiumPro-class processor @ 1298 MHz with 502MB RAM
Video: Intel(R) 82852/82855 GM/GME Graphics Controller (3751)
Assertion failed: RenDev [File:WinViewport.cpp] [Line: 535]
History: UWindowsViewport::OpenWindow <- UGameEngine::Init <- InitEngine
一般主板集成显卡都无法正常运行游戏的.

3。 OS: Windows XP 5.1 (Build: 2600)
CPU: GenuineIntel Unknown processor @ 1802 MHz with 247MB RAM
# Z P5 W6 e\" @/ sVideo: Intel(R) 82845G Graphics Controller (3317)
You have triggered a bug in the DirectX 8.1 runtime. Please install
DirectX 8.1b (or later) for a fix. See Release Notes for instructions
on how to obtain it.

需安装DirectX 8.1b

4。 OS: Windows XP 5.1 (Build: 2600)
CPU: GenuineIntel Unknown processor @ 2609 MHz with 1023MB RAM
Video: NVIDIA GeForce FX 5600XT (5303)
Ran out of virtual memory. To prevent this condition, you must free up more space on your primary hard disk.
History: FMallocWindows::Malloc <- FMallocWindows::Realloc <- 00000000 368 FArray <- FArray::Realloc <- 92*4 <- UObject::execStructMember <- (ShadowProjector 24_12.ShadowProjector903 @ Function Engine.ShadowProjector.UpdateShadow : 012A) <- UObject:rocessEvent <- (ShadowProjector 24_12.ShadowProjector903, Function Engine.ShadowProjector.Tick) <- AActor::Tick <- TickAllActors <- ULevel::Tick <- (NetMode=0) <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop

加大虚拟内存和在主板BOIS内恢复内存的默认参数设置,不要超频内存,有时后超频后的电脑当不超频时也会减少错误的发生.

5。 OS: Windows XP 5.1 (Build: 2600)
CPU: AuthenticAMD PentiumPro-class processor @ 1842 MHz with 511MB RAM
Video: NVIDIA GeForce FX 5200 (5216)
General protection fault!
History: AActorstLoad <- UObject::ConditionalPostLoad <- (StaticMeshActor 19_21.StaticMeshActor714) <- ULevelstloadObjects <- ULevel:oad <- Load_Level <- UGameEngine::AdjustTerrain <- L2Seamless <- UGameEngine::Tick <- UpdateWorld <- MainLoop
系统错误,重装系统或是升级显卡。

6。OS: Windows XP 5.1 (Build: 2600)
CPU: AuthenticAMD PentiumPro-class processor @ 2007 MHz with 511MB RAM
Video: 世盟 GeForce FX 5200 (4523)
Assertion failed: appStricmp( *rt, TEXT(\"None\") ) [File2NetHandler.cpp] [Line: 253]
History: User::GetClassName <- UNetworkHandler::Tick <- Function Name=NpcInfoPacket <- UGameEngine::Tick <- UpdateWorld <- MainLoop

文件连接错误或者是找不到部分文件 可能你的客户端少点东西或者文件在连接错误 你就出错了

^PS:操作系统差不多,错误意思就是这些 )

那天有个朋友发的那个错误是由于下私服的补丁,导致登陆文件损坏,必须得重装下了 ,更新下有的时候好象不行... 尽量不要下太多的私服,或先备份下system文件架 再装私服
研究外挂的朋友谢绝留言

win2k 无法找到动态链接库d3d8.dll的朋友 请更新下驱动 或修复下系统 建议xp

OS: Windows XP 5.1 (Build: 2600)
CPU: AuthenticAMD Unknown processor @ 2068 MHz with 1023MB RAM
Video: NVIDIA GeForce 7600 GS (9147)
Assertion failed: GObjBeginLoadCount==0 [File:.\\UnObj.cpp] [Line: 1762]
History: UObject::StaticTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop

需要重新更新游戏,或重新装下\"

OS: Windows XP 5.1 (Build: 2600)
CPU: GenuineIntel Unknown processor @ 3081 MHz with 511MB RAM
Video: NVIDIA G73 (8426)
Assertion failed: st.pSrcTerrainInfo && st.pDesTerrainInfo && pDesTInfo [File:.\\UnGameSW.cpp] [Line: 586]
History: GetTerrainInfo <- Shift_Terrain <- UGameEngine::AdjustTerrain <- L2Seamless <- UGameEngine::Tick <- UpdateWorld <- MainLoop

是文件:ungamesw.cpp 错误 需要更新或重新装下




综合攻城战管理(原创)


/*
* Copyright (C) 2004-2013 L2J Server
*
* This file is part of L2J Server.
*
* L2J Server 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 3 of the License, or
* (at your option) any later version.
*
* L2J Server 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, see <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.model.actor.instance;

import com.l2jserver.gameserver.instancemanager.CastleManager;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
import com.l2jserver.gameserver.model.entity.Castle;
import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.network.serverpackets.SiegeInfo;

/*
* @author 白色浪漫
*/
public class L2CastleManageInstance extends L2NpcInstance
{        
        public L2CastleManageInstance(int objectId, L2NpcTemplate template)
        {
                super(objectId, template);
        }

        @Override
        public void onBypassFeedback(L2PcInstance player, String command)
        {
                if(player == null )  return;
                if (!canTarget(player))
                        return;

                else if (command.startsWith("siege_"))
                {
                        int castleId = 0;

                        if (command.startsWith("siege_gludio"))
                                castleId = 1;
                        else if (command.startsWith("siege_dion"))
                                castleId = 2;
                        else if (command.startsWith("siege_giran"))
                                castleId = 3;
                        else if (command.startsWith("siege_oren"))
                                castleId = 4;
                        else if (command.startsWith("siege_aden"))
                                castleId = 5;
                        else if (command.startsWith("siege_innadril"))
                                castleId = 6;
                        else if (command.startsWith("siege_goddard"))
                                castleId = 7;
                        else if (command.startsWith("siege_rune"))
                                castleId = 8;
                        else if (command.startsWith("siege_schuttgart"))
                                castleId = 9;

                        Castle castle = CastleManager.getInstance().getCastleById(castleId);
                        if(castle != null && castleId != 0)
                                player.sendPacket(new SiegeInfo(castle));
                }
        }

        @Override
        public void showChatWindow(L2PcInstance player)
        {
                player.sendPacket(ActionFailed.STATIC_PACKET);

                NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());        
                html.setFile(player.getHtmlPrefix(), "data/html/mods/CastleManager.htm");
                html.replace("%objectId%", String.valueOf(getObjectId()));
                player.sendPacket(html);

        }
}

L2CastleManageInstance.zip


天堂Ⅱ单机创立角色加入自定技能的方法


用Navicat的用于MySQL或phpadmin打开数据库l2jdb的skill_tree数据表

分析skill_tree数据表

标识码是代表所属的职业编号
所屬的職業編號可以在數據庫的class_list找到,有了職業編號就可以幫全部種族加上自定技能.

skill_id也是代表技能编号
技能编号可在skill_tree用技能名称搜查。

水平是代表技能等级
这是可以自定学习技能等级。但不能超过该技能最高的等级。

名字是代表技能名称
打什么都可以,当然最好用回完本技能的名字,方便记认。

SP是代表所须要的技能点数
这个没限制0以上都可以。

min_level是代表最少学习等级
最少学习该技能的人物等级1以上。

例如,想把所有创立角色加入回归术

范例:人类战士加入回归术等级1

新增一行数据资料

标识码=0,skill_id也=1050,水平=1,名称=回归术,SP =0,min_level=1

储存好重开服务端就完成,现在可以入游戏测试看看。



天堂2技能各种属性修改
帖子  由 天堂之手 ? 2018-03-24 19:37

<mul val='1.35' order='0x40' stat='maxHp' /> 最大HP值增加35%
<mul val='1.45' order='0x40' stat='maxMp' / > 最大MP值增加45%
<mul val='1.75' order='0x40' stat='maxCp' / > 最大CP值增加75%


<mul val='1.05' order='0x40' stat='pDef' / > 物理防御力增加5%
<mul val='1.05' order='0x40' stat='mDef' / > 魔法防御力增加5%
<mul val='1.10' order='0x40' stat='pAtk' / > 物理攻击力增加10%
<mul val='1.10' order='0x40' stat='mAtk' / > 魔法攻击力增加10%


<mul val='1.15' order='0x40' stat='pAtkSpd' / > 物理攻击速度增加15%
<mul val='1.15' order='0x40' stat='mAtkSpd' / > 魔法攻击速度增加15%
<mul val='1.20' order='0x40' stat='accCombat' / > 命中力增加20%
<mul val='1.10' order='0x08' stat='rCrit' / >致命机率增加10%
<mul val='1.15' order='0x40' stat='cAtk' / >致命威力增加15%


<mul val='0.80' order='0x40' stat='atkReuse' / > 恢复耗时降至80%
<mul val='0.75' order='0x08' stat='MpConsume' / >MP消耗降至0.75%


<add val='10' order='0x10' stat='INT' / > INT增加10点
<add val='10' order='0x10' stat='WIT' / > WIT增加10点
<add val='10' order='0x10' stat='MEN' / > MEN增加10点
<add val='10' order='0x10' stat='DEX' / > DEX增加10点
<add val='10' order='0x10' stat='CON' / > CON增加10点
<add val='10' order='0x10' stat='STR' / > STR增加10点


<add val='1.5' order='0x40' stat='regHp' / > HP恢复速度+50%的效果
<add val='1.5' order='0x40' stat='regMp' / > MP恢复速度+50%的效果


<add val='10' order='0x40' stat='runSpd' / > 移动速度+10点
<add val='10' order='0x10' stat='rEvas' / > 回避力+10点


<add val="15" order="0x40" stat="reflectDam" />将近距离一般物理攻击的15%的伤害的反还对方
<add val='15' order='0x01' stat='absorbDam' / > 可恢复同近距离一般物理攻击给敌人伤害的15%的HP
<mul val='10' order='0x10' stat='maxLoad' / > 负重限制提高10倍


======================================================================
<mul val='1.10' order='0x40' stat='sDef' / > 盾牌防御力加10%
<mul val='1.10' order='0x40' stat='rShld' / >盾牌格挡率加10%
<mul val='1.15' order='0x40' stat='mCritRate' / >魔法致命攻击概率增加15%
<add val='45' order='0x10' stat='pAtkAngle' / >加45攻击范围(枪的幅度)
<add val='95' order='0x10' stat='pAtkRange' / >加95攻击距离(弓或者枪的远程距离)
======================================================================


<add val='50' order='0x40' stat='muteRes' / >沉默抗性增加50%
<add val='50' order='0x40' stat='confusionRes' / >混乱抗性增加50%
<add val='50' order='0x40' stat='sleepRes' / >催眠抗性增加50%
<add val='50' order='0x40' stat='stunRes' / >冲击抗性增加50%
<add val='50' order='0x40' stat='rootRes' / >固定抗性增加50%
<add val='50' order='0x40' stat='paralyzeRes' / >麻痹抗性增加50%
<add val='50' order='0x40' stat='movementRes' / >迟缓抗性增加50%
<add val='50' order='0x40' stat='bleedRes' / >出血抗性增加50%
<add val='50' order='0x40' stat='poisonRes' / >中毒抗性增加50%
<add val='50' order='0x40' stat='darkRes' / >黑暗属性增加50%
<add val='50' order='0x40' stat='holyRes' / >神圣属性增加50%
<add val='50' order='0x40' stat='fireRes' / >火属性增加50%
<add val='50' order='0x40' stat='windRes' / >风属性增加50%
<add val='50' order='0x40' stat='waterRes' / >水属性增加50%
<add val='50' order='0x40' stat='earthRes' / >土属性增加50%
<sub val='25' order='0x30' stat='cancel' / >魔法中断几率减少25%


==========================================================
<add val='50' order='0x40' stat='swordWpnRes' / >抗剑器属性增加50%
<add val='50' order='0x40' stat='bluntWpnRes' / >抗钝器属性增加50%
<add val='50' order='0x40' stat='daggerWpnRes' / >抗匕首属性增加50%
<add val='50' order='0x40' stat='fistWpnRes' / >抗拳套属性增加50%
<add val='50' order='0x40' stat='bowWpnRes' / >抗弓箭属性增加50%
<add val='50' order='0x40' stat='poleWpnRes' / >抗枪戟属性增加50%
<add val='50' order='0x40' stat='dualWpnRes' / >抗双刀属性增加50%
笨 貓 →(117507555) 23:49:16
这个是比较全的装备属性附加代码
<add val='18000' order='0x40' stat='maxHp'/> 最大HP值增加18000
<add val='18000' order='0x40' stat='maxMp'/> 最大MP值增加18000
<add val='18000' order='0x40' stat='maxCp'/> 最大CP值增加18000
<mul val='1.80' order='0x40' stat='pDef'/> 物理防御力增加80%
<mul val='1.80' order='0x40' stat='mDef'/> 魔法防御力增加80%
<mul val='1.80' order='0x40' stat='pAtk'/> 物理攻击力增加80%
<mul val='1.80' order='0x40' stat='mAtk'/> 魔法攻击力增加80%
<mul val='1.80' order='0x40' stat='pAtkSpd'/> 物理攻击速度增加80%
<mul val='1.80' order='0x40' stat='mAtkSpd'/> 魔法攻击速度增加80%
<mul val='1.80' order='0x40' stat='accCombat'/> 命中增加80%
<mul val='1.80' order='0x08' stat='rCrit'/> 致命机率增加80%
<mul val='1.80' order='0x40' stat='cAtk'/> 致命威力增加85%
<mul val='0.80' order='0x40' stat='atkReuse'/> 恢复耗时降至80%
<mul val='0.75' order='0x08' stat='MpConsume'/> MP消耗降至75%
<add val='50' order='0x10' stat='INT'/> INT增加50点
<add val='50' order='0x10' stat='WIT'/> WIT增加50点
<add val='50' order='0x10' stat='MEN'/> MEN增加50点
<add val='50' order='0x10' stat='DEX'/> DEX增加50点
<add val='50' order='0x10' stat='CON'/> CON增加50点
<add val='50' order='0x10' stat='STR'/> STR增加50点
<add val='1.50' order='0x40' stat='regHp'/> HP恢复速度+50%的效果
<add val='1.50' order='0x40' stat='regMp'/> MP恢复速度+50%的效果
<add val='1.50' order='0x40' stat='regCp'/> CP恢复速度+50%的效果
<add val='100' order='0x40' stat='runSpd'/> 移动速度+10点
<add val='50' order='0x10' stat='rEvas'/> 回避+10点
<add val="20" order="0x40" stat="reflectDam"/> 将近距离一般物理攻击的20%的伤害的反还对方
<add val='20' order='0x01' stat='absorbDam'/> 可恢复近距离一般物理攻击给敌人伤害的20%的HP
<mul val='50' order='0x10' stat='maxLoad'/> 负重限制提高50倍
<add val='5' order='0x50' stat='breath'/> 肺活量增加
<mul val='1.50' order='0x40' stat='sDef'/ > 盾牌防御力加50%
<mul val='1.50' order='0x40' stat='rShld'/> 盾牌格挡率加50%
<mul val='1.50' order='0x40' stat='mCritRate'/> 魔法致命攻击概率增加50%
<add val='50' order='0x10' stat='pAtkAngle'/> 加50攻击范围(枪的幅度)
<add val='100' order='0x10' stat='pAtkRange'/> 加100攻击距离(弓或者枪的远程距离)
<add val='80' order='0x40' stat='muteRes'/> 沉默抗性增加80%
<add val='80' order='0x40' stat='confusionRes'/> 混乱抗性增加80%
<add val='80' order='0x40' stat='sleepRes'/> 催眠抗性增加80%
<add val='80' order='0x40' stat='stunRes'/> 冲击抗性增加80%
<add val='80' order='0x40' stat='rootRes'/> 固定抗性增加80%
<add val='80' order='0x40' stat='paralyzeRes'/> 麻痹抗性增加80%
<add val='80' order='0x40' stat='movementRes'/> 迟缓抗性增加80%
<add val='80' order='0x40' stat='bleedRes'/> 出血抗性增加80%
<add val='80' order='0x40' stat='poisonRes'/> 中毒抗性增加80%
<add val='80' order='0x40' stat='darkRes'/> 黑暗属性增加80%
<add val='80' order='0x40' stat='holyRes'/> 神圣属性增加80%
<add val='80' order='0x40' stat='fireRes'/> 火属性增加80%
<add val='80' order='0x40' stat='windRes'/> 风属性增加80%
<add val='80' order='0x40' stat='waterRes'/> 水属性增加80%
<add val='80' order='0x40' stat='earthRes'/> 土属性增加80%
<sub val='80' order='0x30' stat='cancel'/> 魔法中断几率减少80%
<add val='80' order='0x40' stat='swordWpnRes'/> 抗剑器属性增加80%
<add val='80' order='0x40' stat='bluntWpnRes'/> 抗钝器属性增加80%
<add val='80' order='0x40' stat='daggerWpnRes'/> 抗匕首属性增加80%
<add val='80' order='0x40' stat='fistWpnRes'/> 抗拳套属性增加80%
<add val='80' order='0x40' stat='bowWpnRes'/> 抗弓箭属性增加80%
<add val='80' order='0x40' stat='poleWpnRes'/> 抗枪戟属性增加80%
<add val='80' order='0x40' stat='dualWpnRes'/> 抗双刀属性增加80%
<mul stat="cancelVuln" val="0.5" order="0x30"/> 提高50%抵抗被消除辅助状态的耐性
<mul order="0x30" stat="debuffVuln" val="0.5"/> 提高50%抵抗负面状态的耐性


<set name="weaponsAllowed" val="16"/> 仅匕首类武器可使用
<set name="weaponsAllowed" val="32"/> 仅弓类武器可使用
<set name="weaponsAllowed" val="64"/> 仅枪类武器可使用
<set name="weaponsAllowed" val="512"/> 仅二刀流类武器可使用
<set name="weaponsAllowed" val="128"/> 仅拳套类武器可使用
<set name="weaponsAllowed" val="16392"/> 仅钝器类武器可使用
<set name="weaponsAllowed" val="18444"/> 仅剑类武器可使用


<cond msg="An equipped hand-to-hand combat weapon is required to use this skill.">
<using kind="Fist, Dual Fist"/>
</cond>


power 攻击.
mpConsume MP消耗.
target 攻击范围. TARGET_ONE(单体攻击) TARGET_SELF(自己技能) TARGET_PARTY(队伍范围) TARGET_CLAN(血盟范围) TARGET_AREA(区域攻击) TARGET_PET(宠物)
element 技能效果. 6黑暗 5神圣 4风 3水 2火 1土
hitTime 技能使用时间.
skilltype 技能属性类型. BUFF(状态) POISON(毒) PARALYZE(麻痹) MDAM(魔法伤害) HEAL(治疗)PDAM(物理攻击) WEAKNESS(弱化) SOULSHOT(灵魂蛋用) SQKt}
operate type 主,被动. OP_ACTIVE(主动) OP_PASSIVE (被动)
isMagic 是否是魔法. true
castRang 攻击距离. 射程.. 被动-1
effectRang. 范围被动-1
skillRadius 攻击角度.是配合某一类型技能的效果范围,应该和effectRange类似
reuseDelay 再使用时间.
magicLvl 魔法技能等级.1-99 .
weaponsAllowed 武器需要 512(双刀) 16(匕首) 18444(刀剑/顿器) 32(弓) 2(盾牌) 1024(拳套) 64(矛) ;
nextDanceCost 再使用技能的MP消耗(MP附加消耗)
isDance 是否是舞.
aggroPoints 会引起主动攻击怪物注意的范围.
isSong 是不是歌 true
itemConsumeId 技能消耗物品ID
itemConsumeId 技能消耗物品数量
ignoreShld 是否可以被盾牌防御
overHit 就是overHit true
mpInitialConsume MP持续消耗值
hpInitialConsume HP持续消耗值
absorbPart 吸血百分比
1秒=1000
附加语句:
<for>
<add order="0x40" stat="pDef" val="20">
<and>
<using kind="Heavy"/>
<not>
<using kind="Magic,Light"/>
</not>
</and>
</add>
</for> 这个句子是说: 当 穿全套重装(<using kind="Heavy"/>) 而不用轻,法时(<not><using kind="Magic,Light"/></not>)
有PDEF(物理防御)加20点的效果.(<add order="0x40" stat="pDef" val="20">)
<AND>后面表示要求.</AND>要求结束. </ADD> 添加效果结束. </FOR>效果设定结束.
注意这里每一句的开头位置.


<mul val='1.10' order='0x30' stat='maxHp'>
<and> qrORP3D@
<using slotitem="10415;16;4"/> 在16号位置(双刀位置) 装备10415 强化值为4. 的时候 有<MUL>后面的效果.11表示裤,6:头,10:鞋,9:手 8:盾牌,12表示上衣
</and>
</mul>
STAT效果代码:
命中 accCombat
回避率 rEvas
物理攻击致命率 rCrit
致命攻击力 cAtk
魔法致命机率 mCritRate
物理攻击速度 pAtkSpd
魔法攻击速 mAtkSpd
物理攻力 pAtk
魔法攻力 mAtk
HP最大值 maxHp
MP最大值 maxMp
CP最大值 maxCp
物理防御力 pDef
魔法防御力 mDef
盾牌防御力 sDef
回血速度 regHp
回蓝速度 regMp
回CP速度 regCp
受到的恢复MP技能效果增加 gainMp
受到的恢复HP技能效果增加 gainHp
盾格挡率 rShld
盾牌防御角度 shldAngle
经验倍数 rExp
移动速度 runSpd/Spd
魔法恢复时间 mReuse
技能回复时间 atkReuse
物理攻击反射 reflectDam/reflectStance
吸血效果 absorbDam
痛苦转移 transDam
攻击中断 cancel
普通攻击距离 pAtkRange
魔法攻击距离 mAtkRange
枪类攻击角 poleAngle
负重最大限 maxLoad

抗剑 swordWpnVuln
抗钝 bluntWpnVuln
抗匕 daggerWpnvuln
抗拳 fistWpnVuln
抗弓 bowWpnVuln
抗枪 poleWpnVuln
抗双刀 dualWpnVuln
抗细剑 rapierWpnVuln
抗弩 crossbowWpnVuln
抗双手武器 dualFistWpnVuln
致命抵抗 critVuln
魔法伤害抗性 magicDamVul CT2.3
魔法伤害反弹 reflectSkillMagic CT2.3
史诗抗性 growWpnVuln SanGo
致命闪避 critDamEvas


弱化后面可以加VULN表示抗性. 不知道可不可以加个PATK-表示客星呢?)
沉默 mute
缓速 movement
麻痹 paralyze
出血 bleed
毒 poison
休克 stun
固定 root
混乱 confusion
睡眠 sleep
火 fire
风 wind
水 water
地 earth
神圣 holy
黑暗 dark

客星系列不知道可不可以换成MATK-)
克不死 pAtk-undead
抗不死 pDef-undead
克植物 pAtk-plants
克虫子 pAtk-insects
克动物 pAtk-animals
克怪物 pAtk-monsters
克龙 pAtk-dragons


以下是转贴得来 不晓得怎么用:
道具栏 inventoryLimit
仓库 whLimit
仓库 FreightLimit
出售位置 PrivateSellLimit
购买位置 PrivateBuyLimit
矮人制作 DwarfRecipeLimit
普通制作 CommonRecipeLimit
肺活量 breath
性向 aggression
性向率 aggressionRes


<skill id='1168' lvl='7' chance='1000'/>
<skill id='1170' lvl='13' chance='1000'/>
<skill id='3070' lvl='3' chance='1000'/>
<skill id='3022' lvl='7' chance='1000'/>
<skill id='1064' lvl='14' chance='1000'/>
<skill id='1056' lvl='12' chance='1000'/>
<skill id='3586' lvl='1' chance='1000'/>
<skill id='3592' lvl='1' chance='1000'/>


介绍一下L2JCN的传送师写法


L2JCN的传送师使用起来非常简单,之前似乎发过类似贴子,现在重新整理说明

L2JCN传送师功能可以使用在任何一种NPC身上,比如L2Npc L2Teleporter L2Merchant 等等等等..当然怪物是不行的..
L2JCN传送师的方法可以直接使用,内核中已经定义好,但是其他服务端是完全不能用的,需要你自己再定义

html中action部分的写法

范例:
action="bypass -h CCTP 12981 -248446 -9578 1 0 0 1"
其中CCTP表示要执行传送功能,紧接着后面的3个数字12981,-248446,-9578,是传送目的地的xyz坐标,要获取坐标在游戏里输入
/位置即可获取
紧接着后面的4个数字分别表示:传送需要的金币数量,是否是vip玩家专用,是否是组队专用,传送后是否有无敌保护
启用某种功能填写1,不启用填写0
如果设置传送金额为5000,并且是vip专用而且有无敌保护那么就可以这样写
5000 1 0 1
如果这是为传送金额为1000,并且是组队传送,而且有无敌保护
1000 0 1 1
单纯的传送:
1000 0 0 0

灵活运用后3位数字可以组合出多种传送模式

教材结束....



XMl 句法整理.更新添加中


power       攻击
mpConsume   MP消耗.
target      攻击范围.   TARGET_ONE(单体攻击) TARGET_SELF(自己技能) TARGET_PARTY(队伍范围) TARGET_CLAN(血盟范围) TARGET_AREA(区域攻击) TARGET_PET(宠物)
element     技能效果.   6黑暗 5神圣 4风 3水 2火 1土
hitTime     技能使用时间
skilltype   技能属性类型. BUFF(状态) POISON(毒) PARALYZE(麻痹) MDAM(魔法伤害) HEAL(治疗)PDAM(物理攻击) WEAKNESS(弱化) SOULSHOT(灵魂蛋用)
operate type 主,被动.    OP_ACTIVE(主动) OP_PASSIVE (被动)
isMagic     是否是魔法. true
castRang    攻击距离. 射程.. 被动-1
effectRang. 范围被动-1
skillRadius 攻击角度.是配合某一类型技能的效果范围,应该和effectRange类似
reuseDelay  再使用时间
magicLvl    魔法技能等级.1-99
weaponsAllowed 武器需要 512(双刀) 16(匕首) 18444(刀剑/顿器) 32(弓) 2(盾牌) 1024(拳套) 64(矛)
nextDanceCost 再使用技能的MP消耗(MP附加消耗)
isDance     是否是舞. true
aggroPoints 会引起主动攻击怪物注意的范围
isSong      是不是歌 true
itemConsumeId 技能消耗物品ID
itemConsumeId 技能消耗物品数量
ignoreShld  是否可以被盾牌防御true
overHit    就是overHit true
mpInitialConsume MP持续消耗值
hpInitialConsume HP持续消耗值
absorbPart       吸血百分比
附加语句
<for>
   <add order="0x40" stat="pDef" val="20">
     <and>   
        <using kind="Heavy"/>   
        <not>
          <using kind="Magic,Light"/>  
        </not>   
      </and>   
    </add>   
  </for>  这个句子是说: 当 穿全套重装(<using kind="Heavy"/>) 而不用轻,法时(<not><using kind="Magic,Light"/></not>)
有PDEF(物理防御)加20点的效果.(<add order="0x40" stat="pDef" val="20">)
<AND>后面表示要求.</AND>要求结束. </ADD> 添加效果结束. </FOR>效果设定结束
注意这里每一句的开头位置
<mul val='1.10' order='0x30' stat='maxHp'>  
     <and>
<using slotitem="10415;16;4"/> 在16号位置(双刀位置) 装备10415 强化值为4. 的时候 有<MUL>后面的效果.11表示裤,6:头,12:鞋,9:手 8:盾牌,10表示上衣
</and>
   </mul>
STAT效果代码
命中                        accCombat   
回避率                      rEvas   
物理攻击致命率              rCrit  
致命攻击力                  cAtk   
魔法致命机率                mCritRate   
物理攻击速度                pAtkSpd     
魔法攻击速                  mAtkSpd   
物理攻力                    pAtk   
魔法攻力                    mAtk   
HP最大值                    maxHp  
MP最大值                    maxMp  
CP最大值                    maxCp   
物理防御力                  pDef  
魔法防御力                  mDef   
盾牌防御力                  sDef   
回血速度                    regHp  
回蓝速度                    regMp   
回CP速度                    regCp
受到的恢复MP技能效果增加    gainMp
受到的恢复HP技能效果增加    gainHp   
盾格挡率                    rShld
盾牌防御角度                shldAngle  
经验倍数                    rExp  
移动速度                    runSpd/Spd
魔法恢复时间                mReuse
技能回复时间                atkReuse      
物理攻击反射                reflectDam/reflectStance
吸血效果                    absorbDam  
痛苦转移                    transDam        
攻击中断                    cancel
普通攻击距离                pAtkRange  
魔法攻击距离                mAtkRange   
枪类攻击角                  poleAngle   
负重最大限                  maxLoad
抗剑                        swordWpnvuln 3lT>  
抗钝                        bluntWpnvuln   
抗匕                        daggerWpnvuln  
抗拳                        fistWpnvuln  
抗弓                        bowWpnvuln   
抗枪                        poleWpnvuln   
抗双刀                      dualWpnvuln  
抗双手武器                  dualFistWpnvuln
弱化后面可以加VULN表示抗性. 不知道可不可以加个PATK-表示客星呢?)
沉默          mute  
缓速          movement   
麻痹          paralyze   
出血          bleed  
毒            poison   
休克          stun   
固定          root   
混乱          confusion   
睡眠          sleep   
火            fire   
风            wind   
水            water   
地            earth   
神圣          holy   
黑暗          dark  
客星系列不知道可不可以换成MATK-)  
克不死        pAtk-undead   
抗不死        pDef-undead   
克植物        pAtk-plants   
克虫子        pAtk-insects  
克动物        pAtk-animals  
克怪物        pAtk-monsters  
克龙          pAtk-dragons
以下是转贴得来 不晓得怎么用:   
道具栏    inventoryLimit   
仓库      whLimit   
仓库      FreightLimit
出售位置  PrivateSellLimit  
购买位置  PrivateBuyLimit  
矮人制作  DwarfRecipeLimit   
普通制作  CommonRecipeLimit
肺活量    breath  
性向      aggression  
性向率    aggressionRes



100%强化npc编写教程


這腳本修改於安定強化師  

可以利用某道具 每次執行提升1點強化值 沒有爆的機率 每次都是100%  

不喜這功能腳本的人 或許可以把強化道具條件設難一點! 因為是 100%的ˇˇ  

測試過可執行啦!  


和安定值強化師不同的地方是 我這腳本可以點超過安定值!  

安定強化師是點一下直接到安定值! 我是執行一次武器就多+1!  

其強化條件是 1個可樂 + 10張祝武! S80為20張祝武! S84為30張祝武!  

破滅國境所有新裝 都可以強化!  

s84! 包含雙必首! 符印都可以強化! ^^


特別注意事項! 這腳本無視於CONFIG裡的強化上限! 也無視你CONFIG所設的安定值! 也無視你CONFIG所設的白武祝武機率!  

判斷完全是依照這腳本上的數值 最多(上限)就是強化到 65535 ! (我是設65535)  

強化成功率就是固定100% ! 強化之後 +20變+21 +21變+22 依此類推!  

強化所需要條件: (我自已預設的)  

D武 D防 : 一個可樂+10張D祝武或祝防  
C武 C防 : 一個可樂+10張C祝武或祝防  
B武 B防 : 一個可樂+10張B祝武或祝防  
A武 A防 : 一個可樂+10張A祝武或祝防  
S武 S防 : 一個可樂+10張S祝武或祝防  
S80武 S80防 : 一個可樂+20張S祝武或祝防  
S84武 S84防 : 一個可樂+30張S祝武或祝防  

如果需要設定上限的話! 請將下面腳本! 所有看到65535的地方修改到您要強化的上限值即可!  

或是自已宣告個MAX = xxxx <==您要強化的上限值  

再將MAX 對應到 65535的地方 會比較方便你們修改





import sys
from net.sf.l2j.gameserver.model.quest                       import State
from net.sf.l2j.gameserver.model.quest                       import QuestState
from net.sf.l2j.gameserver.model.quest.jython                import QuestJython as JQuest
from net.sf.l2j.gameserver.model.base                        import Experience

qn = "5201314_Emily"

SmithNpc = 520006      #這裡可以修改你要進行完美強化的NPC編號 我NPC是自訂的 L2裡沒有 520006 這個NPC 請自已修改或自訂
QuestId = 5201314
QuestDesc = "custom"

COLA = 3434         #完美強化時所需要的道具  可以自行在這修改要強化所需的道具編號ID  預設為可樂
COLANUMBER = 1      #完美強化時所需要的道具數量  可以自行在這修改要強化所需道具的數量  預設可樂的數量1個
MAX = 65535         #提供給玩家的完美強化上限值  可以自行在這修改提供給玩家的強化上限  預設為65535

acceptableArmorTypes  = ['Light','Heavy','Magic','Shield','Sigil']
acceptableWeaponTypes = ['Sword','Blunt','Dagger','Bow','Pole','Etc','Fist','Dual Sword','Dual Fist','Big Sword','Big Blunt','Ancient','Crossbow','Rapier','Dual Dagger']
acceptableJewelTypes  = ['None']

HTMLSTART = "00.htm"
HTMLGRATZ = "11.htm"
HTMLCHEAT = "22.htm"
HTMLNOSOP = "33.htm"

class Quest (JQuest) :

  def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

  def onEvent (self,event,st) :
    if event == "YES" :
                st.playSound("ItemSound.quest_finish")
      st.giveItems(57,1000)
      return "YES.htm"

    if event == "NO" :
                st.playSound("ItemSound.quest_finish")
      st.takeItems(57,1000000)
      st.getPlayer().getStat().removeExpAndSp(0,100000)
      return "NO.htm"

    if event == "choose_item_enchant" :
      st.playSound("ItemSound.quest_accept")
      htmltext = ""
      price = ""
      for Item in st.getPlayer().getInventory().getItems() :
        itemType = Item.getItem().getItemType().toString()
        itemGrade = Item.getItem().getCrystalType()
        itemEnchant = Item.getEnchantLevel()
        if (itemGrade > 0 and not Item.isEquipped()) :

          if (itemType in acceptableWeaponTypes and itemEnchant < MAX) or (itemType in acceptableArmorTypes and itemEnchant < MAX) or (itemType in acceptableJewelTypes and itemEnchant < MAX) :

            if itemType in acceptableArmorTypes or itemType in acceptableJewelTypes :

              if itemGrade == 1 :                #D 防具
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 2 :              #C 防具
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 3 :              #B 防具
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 4 :              #A 防具
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 5 :              #S 防具
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 6 :              #S80 防具
                price = 10 * 2                   #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 7 :              #S84 防具
                price = 10 * 3                   #安全強化+1 祝福武防所需要的數量

            elif itemType in acceptableWeaponTypes :

              if itemGrade == 1 :                #D 武器
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 2 :              #C 武器
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 3 :              #B 武器
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 4 :              #A 武器
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 5 :              #S 武器
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 6 :              #S80 武器
                price = 10 * 2                   #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 7 :              #S84 武器
                price = 10 * 3                   #安全強化+1 祝福武防所需要的數量

            htmltext += "<a action=\"bypass -h Quest 5201314_Emily enchantItem_" + str(Item.getObjectId()) +"\">" + "我要將 +" + str(Item.getEnchantLevel()) + " " + Item.getItem().getName() + " 100% 完美強化<br1> ( 請給我 " + str(COLANUMBER) + " 個<font color=\"FFFF00\">可口可樂</font>及 "+ str(price) + " 張同等的<font color=\"FFFF00\">祝福武防</font>卷 )</a><br1>"
      if htmltext == "" :
        htmltext = "<html><title>綜合管理員</title><body><br><br><br>謎之聲:<br>您的身上道具欄內已經沒有可以強化的物品了</body></html>"
      htmltext = "<html><title>綜合管理員</title><body><br><br><img src=\"L2UI.SquareBlank\" width=293 height=0><br>請您在下列挑選一件想強化的物品唷!<br><br><br><br>" + htmltext + "</body></html>"
    elif event.startswith("enchantItem_") :
      amount = ""

      objId = int(event.replace("enchantItem_", ""))

      Item = st.getPlayer().getInventory().getItemByObjectId(objId)
      if Item and not Item.isEquipped() :

        itemType = Item.getItem().getItemType().toString()
        itemGrade = Item.getItem().getCrystalType()
        itemEnchant = Item.getEnchantLevel()

        if itemGrade > 0 :

          if (itemType in acceptableWeaponTypes and itemEnchant < MAX) or (itemType in acceptableArmorTypes and itemEnchant < MAX) or (itemType in acceptableJewelTypes and itemEnchant < MAX) :

            if itemType in acceptableArmorTypes or itemType in acceptableJewelTypes :

              if itemGrade == 1 :                #D 防具
                Scroll = 6576                    #祝福的防具強化卷軸-D級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 2 :              #C 防具
                Scroll = 6574                    #祝福的防具強化卷軸-C級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 3 :              #B 防具
                Scroll = 6572                    #祝福的防具強化卷軸-B級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 4 :              #A 防具
                Scroll = 6570                    #祝福的防具強化卷軸-A級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 5 :              #S 防具
                Scroll = 6578                    #祝福的防具強化卷軸-S級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 6 :              #S80 防具
                Scroll = 6578                    #祝福的防具強化卷軸-S級
                price = 10 * 2                   #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 7 :              #S84 防具
                Scroll = 6578                    #祝福的防具強化卷軸-S級
                price = 10 * 3                   #安全強化+1 祝福武防所需要的數量

            elif itemType in acceptableWeaponTypes :

              if itemGrade == 1 :                #D 武器
                Scroll = 6575                    #祝福的武器強化卷軸-D級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 2 :              #C 武器
                Scroll = 6573                    #祝福的武器強化卷軸-C級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 3 :              #B 武器
                Scroll = 6571                    #祝福的武器強化卷軸-B級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 4 :              #A 武器
                Scroll = 6569                    #祝福的武器強化卷軸-A級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 5 :              #S 武器
                Scroll = 6577                    #祝福的武器強化卷軸-S級
                price = 10                       #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 6 :              #S80 武器
                Scroll = 6577                    #祝福的武器強化卷軸-S級
                price = 10 * 2                   #安全強化+1 祝福武防所需要的數量
              elif itemGrade == 7 :              #S84 武器
                Scroll = 6577                    #祝福的武器強化卷軸-S級
                price = 10 * 3                   #安全強化+1 祝福武防所需要的數量

            if st.getQuestItemsCount(Scroll) >= price and st.getQuestItemsCount(COLA) >= COLANUMBER :
              Item.setEnchantLevel(itemEnchant + 1)
              st.takeItems(Scroll,price)
              st.playSound("ItemSound.quest_finish")
              st.takeItems(COLA,COLANUMBER)
              htmltext = HTMLGRATZ
            else :
              htmltext = HTMLNOSOP
          else :
            htmltext = HTMLCHEAT
        else :
          htmltext = HTMLCHEAT
      else :
        htmltext = HTMLCHEAT
    return htmltext

  def onTalk (self,npc,player) :
    htmltext = "<html><title>綜合管理員</title><body><br><br><br>謎之聲:<br>您找錯人了唷!</body></html>"
    st = player.getQuestState(qn)
    if not st : return htmltext
    npcId = npc.getNpcId()
    if npcId == SmithNpc :
       htmltext = HTMLSTART
    return htmltext

QUEST = Quest(QuestId,qn,QuestDesc)

QUEST.addStartNpc(SmithNpc)
QUEST.addTalkId(SmithNpc)

-----------------------------------------------------------------------------------------------------------------------------------
itemEnchant 指的是 取得玩家裝備已經+到多少的資料  

Item.setEnchantLevel(itemEnchant + 1) 整句的意思就是取得玩家的強化數值之後 再+1
-----------------------------------------------------------------------------------------------------------------------------------
    if event == "YES" :  
                st.playSound("ItemSound.quest_finish")  
      st.giveItems(57,1000)  
      return "YES.htm"  

    if event == "NO" :  
                st.playSound("ItemSound.quest_finish")  
      st.takeItems(57,1000000)  
      st.getPlayer().getStat().removeExpAndSp(0,100000)  
      return "NO.htm"  

這一段的htm是可以不寫的
我寫的 yes (繼續強化)會回饋給玩家 1000金幣! no (結束強化)會倒扣金幣與sp...所以用不到的人...可以刪掉...

我想自己寫htm應該沒問題吧0.0
這腳本改至安定強化師爆爆王
不會寫的可以參考安定強化師的htm來寫


服务器的各项说明
帖子  由 天堂之手 ? 2018-03-14 16:12

l2j-gameserver\config目录里的全是端的设置文件.自己对照中文改就行了.记得改好后端要重启下.
里面的"#"号后面的文字为说明文件是对应下面的英文设置.不要说看不懂

----------------------------------------

<端的启动顺序>

先装java 装服务端目录下的那个jre.exe

启动1 数据库启动 \mysql\bin\mysqld-nt.exe
启动2 登陆器启动 \l2jangel-loginserver\l2angel-gameserver.exe
启动3 服务端启动 \l2jangel-gameserver\l2angel-loginserver.exe

-----------------------------------

<数据库在哪/要如何备份>

\mysql\data\AngeL_sCT5

整个目录为数据库目录.记得时时备份

-----------------------------------------------

如何改玩家出生地

char_templates 数据库.打开后把所有数据的X y Z设成要出生地方的坐标就行了.

---------------------------------------------------------------

端里各设置文件的说明.设置文件的目录是config

chat修改全服喊话
administration修改GM权限,上线相关设置,名字颜色,玩家注册上线是否GM
versionning未知
filters聊天惩罚,屏蔽
network联网设置
mods自定义设置
announcer.properties 公告管理员管理
banking.properties 银行管理
buffer.properties 价钱等设置
champion_mobs.properties 精英怪物管理
classmaster.properties 转职/座龙升级
craftmanager.properties 商店结晶化系统
fun_events.properties TVT系统等修改
jail.properties 监禁系统修改聊天等
level_changer.properties 降级功能师修改
protector.properties 保护NPC设置
wedding.properties 结婚系统设置
main主要设置
altgame.properties 搜魂石/召唤/矮人制造系统/玩家移动速度/英雄武器出售/死亡损失经验/XP,SP奖励/宠物相关/玩家行为相关
areas.properties 地区设置
clans.properties 血盟设置 加入/解散/创建血盟天数,级别,仓库使用等 血盟LV5升级人数设定
communityboard.properties 布告栏系统
custom.properties 玩家进入服务器/公告/推荐/速度限制/新手/副职/等级/负重/PVP/狩猎/宠物速度/传送费用/MOD AI/魔法攻击设置
developer.properties 发展人员设置
drops.properties 物品掉落/掉率/等级差掉率/物品栏已满后获得物品设置
dynamic_extensions.properties 空白
enchant.properties 武器/装备/首饰强化设置
entities.properties 猜测是血盟小屋等设置 魔法/HP/MP/经验再生 装饰功能/固定装饰物/等级等设置
equipment.properties 装备设置 城堡/阿沛拉/血盟誓言/王冠/头饰等装备
grandboss.properties 终极BOSS设定
grid.properties 地图分格系统/GEODATA/地上物品管理设置
id_factory.properties ID管理
inventory.properties 详细目录/存货清单 捡起物品模式/物品栏空间/抛弃物品等设置
manor.properties 庄园系统种子管理设置
nicks.properties 人物等级名字颜色设置
options.properties 服务器状态/区域/玩家无效任务/试穿装备/钓鱼/服务器版权信息/数据保存设置
other_settings.properties 新手出生钱/逃脱时间/上线保护时间/租借飞龙/座龙的npc/死亡获得后遗症几率设置
party.properties 组队经验配置/级别差等
permissions.properties 受诅咒武器/奖券/船/警卫攻击主动怪/钓鱼/货运系统设置
petitions.properties 怪物竞赛系统设置
pvp_settings.properties PVP/性向/红名玩家角色系统设置
pvtstores.properties 买卖个人商店系统买卖物品数量限制 矮人/其他职业
rates.properties 经验/暴率/任务奖励率/宠物成长率/玩家物品掉落率/红名玩家物品掉落率/草药暴率等设置
regeneration.properties 人物CP/HP/MP恢复速度 NPC HP/MP恢复速度 BOSS和他的护卫防御倍数 HP/MP恢复速率
respawns.properties 重新召唤设置 如警卫
skills.properties 技能设置 强化技能/是否需要魔法书/自动学习技能/辅助状态最大量/辅助状态时间等设置
warehouse.properties 仓库使用/仓库最大栏数/货运系统等设置
events文件夹下
castle_siege.properties 攻打城堡相关设置
fortsiege.properties 攻打要塞相关设置
lottery.properties 奖券系统设置
olympiad.properties 奥林匹克活动设置
olympiad_save.properties 奥林匹克保存设置
seven_signs.properties 七封印系统设置



warehouse.properties=仓库设置
skills.properties=技能BUFF设置
respawns.properties=守卫召唤设置
regeneration.properties=人物和普通怪恢复速率设置
rates.properties=服务器爆率设置
pvtstores.properties=商店买卖物品的最大栏同数量
pvp_settings.properties=PVP性向限制设置
petitions.properties=怪物竟技设定
permissions.properties=开启/关闭受诅咒武器等系统设置
party.properties=组队经验配置设置
other_settings.properties=设置创立新角色设置
options.properties=服务器测试设定及删除ID设置
nicks.properties=ID名字颜色设置
manor.properties=开启/关闭种子子系统
inventory.properties=捡起物品模式设置
id_factory.properties=(这个还没理解,有英文历害的翻译一下)
grid.properties=地图分格系统管理
grandboss.properties=BOSS刷新等设置
equipment.properties=特殊装备选择设置
entities.properties=辅助BUFF支持设置
enchant.properties=强化成功率设置
dynamic_extensions.properties=(没用的设置)
drops.properties=物品掉落倍率计算设置
developer.properties=(没看懂,改天再查词典)
custom.properties=进入游戏设置(有攻击速度\副职设置等)
communityboard.properties=布告栏BBS设置
clans.properties=血盟设置
areas.properties=这个应该是几个狩猎区域的设置
altgame.properties=NPC设定项目


--------------------------------------------------------------




<玩家初生时如何带上回城卷>

因技能有限制.回城技能要一定等才能学的.所以不能用在初生玩家.
现可在初生玩家身上带上奇岩的回城卷就行了.具体如休操作

打开数据库char_creation_items

第一个为职业.写-1为所有职业 第二个为物品id 第三个为个数. 最后一个是物品放在哪. false为物品栏 true为装备


----------------------------------------------------------------------------


<如何修改物品为.出售/交易/丢弃/破坏>

打开数据库找到

armor装备数据库
weapon武器数据库
etcitem物品数据库.

打开后找到要改的物品id.在物品后面表里找
sellable(能否出售)
dropable(能否丢弃)
destroyable(能否破坏)
tradeable(能否交易)
改成true(能) 或 false(不能就行了)

----------------------------------------------------------------------

<如何设置玩家初生时的钱数>

l2jangel-gameserver\config\Character.properties

# 设置创立新角色所给的钱
# default = 0
StartingAdena = 500000 --------------------这个设多少就是初生时有多少钱了

------------------------------------------------

<重新开服.要清哪几个数据库呢>

打开数据库.在要清的数据库上点右键就有个清空数据库选项了.点确定就会清了.记得备份了.清了就还原不了了

accounts 账号表.主要管理账号的账号和密码和是否被封号. (重开服要清的数据库)
characters 角色表.在这里你可以改角色的名字啊 (重开服要清的数据库)
character_friends 角色的朋友列表 (重开服要清的数据库)
character_hennas 角色使用的染料列表(也就是纹身列表) (重开服要清的数据库)
character_macroses 角色的宏按钮列表 (重开服要清的数据库)
character_quests 角色接受 或者已经完成的任务列表 (重开服要清的数据库)
character_quests_item 角色身上的任务物品列表 (重开服要清的数据库)
character_raidpoints 角色狩猎过的BOSS列表 (重开服要清的数据库)
character_recipebook 人物制作的数据库列表?由于没数据无法判断 (重开服要清的数据库)
character_recommends 未知表 (重开服要清的数据库)
character_shortcuts 角色的快捷键列表 (重开服要清的数据库)
character_skills 角色技能列表 (重开服要清的数据库)
character_skills_save 角色副职业技能列表? (重开服要清的数据库)
character_stats 未知表 (重开服要清的数据库)
character_subclasses 角色副职业列表.在这里你可以新添加副职业 (重开服要清的数据库)
items 角色身上的物品列表 (重开服要清的数据库)

以上这些清掉就可以重新开服了

----------------------------------------------------------

<其它几个比较重要的数据库说明>

armor 装备数据库
armorsets 套装属性设置数据库
droplist 怪物掉宝数据库
etcitem 物品数据库
npc 怪物/npc数据库
npcskills 怪物技能数据库
skill_trees 技能数据库
spawnlist 刷怪数据库
teleport 传送数据库
weapon 武器数据库


-----------------------------------
<其它各表说明>

access_levels GM权限等级分类和名字颜色.感觉是没什么作用的表.

---------------------------------------------------------------------------------------------
accounts 账号表.主要管理账号的账号和密码和是否被封号. (重开服要清的数据库)
---------------------------------------------------------------------------------------------

admin_command_access_rights 权限等级需求表.规定每一个命令需要多少等级的GM
---------------------------------------------------------------------------------------------
armor 防具表.规定防具防止的位置和重量等一些信息.不规定属性.
armorsets 套装表.这里你可以规定一个套装.你可以随意组合你喜欢的套装和技能.
---------------------------------------------------------------------------------------------
auction 拍卖处的城堡和要塞列表
auction_bid 拍卖有关系表.作用暂时不明
auction_watch 拍卖有关系表.作用暂时不明
augmentations 未知表.表中无数据.无法判断作用
auto_announcements 游戏中循环出现的公告
auto_chat 游戏中会自动说话的NPC
auto_chat_text NPC自动说话的内容
buff_templates 新手教师给加的BUFF列表
castle 城堡数据
castle_door 城门数据
castle_doorupgrade 城堡门守卫数据?作用不明
castle_functions 未知表
castle_manor_procure 未知表
castle_manor_production 未知表
castle_siege_guards 攻城战守卫数据 ?作用不明

---------------------------------------------------------------------------------------------
characters 角色表.在这里你可以改角色的名字啊 (重开服要清的数据库)
---------------------------------------------------------------------------------------------

characters_custom_data 自定义角色表.你可以在这里修改角色是不是英雄 贵族 VIP

---------------------------------------------------------------------------------------------
character_friends 角色的朋友列表 (重开服要清的数据库)
character_hennas 角色使用的染料列表(也就是纹身列表) (重开服要清的数据库)
character_macroses 角色的宏按钮列表 (重开服要清的数据库)
character_quests 角色接受 或者已经完成的任务列表 (重开服要清的数据库)
character_quests_item 角色身上的任务物品列表 (重开服要清的数据库)
character_raidpoints 角色狩猎过的BOSS列表 (重开服要清的数据库)
character_recipebook 人物制作的数据库列表?由于没数据无法判断 (重开服要清的数据库)
character_recommends 未知表 (重开服要清的数据库)
character_shortcuts 角色的快捷键列表 (重开服要清的数据库)
character_skills 角色技能列表 (重开服要清的数据库)
character_skills_save 角色副职业技能列表? (重开服要清的数据库)
character_stats 未知表 (重开服要清的数据库)
character_subclasses 角色副职业列表.在这里你可以新添加副职业 (重开服要清的数据库)
---------------------------------------------------------------------------------------------

char_templates 职业表.在这里你可以修改出生位置和6围.非常关键的一个表
clanhall 血盟大厅数据库列表
clanhall_functions 未知表
clan_data 血盟数据列表
clan_privs 血盟根据地列表?
clan_skills 血盟技能列表
clan_subpledges 未知表
clan_wars 血盟战争列表
class_list 小猫的对话列表.好像没作用了?
connection_test_table 根据字面上的翻译为.测试连接表
couples 结婚数据表
ctf 活动数据表.作用不明
ctf_teams 活动数据表.作用不明
dm 活动数据表.作用不明
cursed_weapons 受诅咒武器持有者列表.

-----------------------------------------------------------
custom_armor 自定义装备列表
custom_armorsets 自定义套装列表
custom_droplist 自定义npc的掉宝列表
custom_etcitem 自定义物品列表
custom_merchant_buylists 自定义商店列表
custom_merchant_shopids 自定义商店ID列表
custom_npc 自定义npc的列表
custom_npcskills 自定义npc的技能列表
custom_spawnlist 自定义npc的刷怪列表
custom_teleports 自定义移动列表
custom_weapon 自定义武器列表
-------------------------------------------------------------------------------

droplist 怪物死亡掉落的物品列表
enchant_skill_trees 强化技能列表.在这里你可以改成功率和要求之类的东西
---------------------------------------------------------------------------------------------
etcitem 道具表.这里可以改道具是否可以叠加和是否是任务道具和重量(没有武器和防具)
---------------------------------------------------------------------------------------------
fish 可以掉到的鱼列表
fishing_skill_trees 掉鱼技能树.你可以在这里添加需要物品才能学习的技能
fort 要塞数据列表
fortsiege_clans 要塞属于哪个血盟列表
fort_door 要塞的门数据列表
fort_doorupgrade 要塞城门守卫数据
fort_functions 未知表
fort_siege_guards 未知表
fort_spawnlist 要塞刷怪列表?oh my god我一看就应该是要塞刷出来的警卫列表.
forums 论坛数据.未知表
four_sepulchers_spawnlist 4圣杯刷怪列表
games 未知表
gameservers server的hexid列表
global_tasks 表中有seven_signs_update 和 olympiad_save 相信大家都知道是什么吧
gm_audit GM使用命令的日志.记得清理掉
grandboss_intervallist 未知表
grandboss_spawnlist 狩猎首领的刷怪数据.
henna 染料数据库.在这里你可以修改染料增加的属性(不管你怎么改最高一项加5点)
henna_trees 就是职业染料列表.规定什么职业可以纹什么样子的染料
heroes 游戏中的英雄列表.在这里添加可以在纪念碑上看到你的名字.用//sethero就不会看到

---------------------------------------------------------------------------------------------
items 角色身上的物品列表 (重开服要清的数据库)
---------------------------------------------------------------------------------------------

items_on_ground 地面掉落的物品数据库列表.需要在config开启才会写入
jail_spawnlist 监狱刷出来的怪物列表.作用是给送进监狱的人打.打够那么多就可以出监狱
lastimperialtomb_spawnlist 未知表
lvlupgain 据说是升级属性换算.未知表
merchants 商店npc对应地区
merchant_buylists 商店购买物品列表
merchant_shopids 商店ID列表
minions 狩猎首领带的小怪.
npc NPC和怪物的数据列表.可以修改他们的模型和HP MP 6围 攻击 防御 魔法攻击 魔法防御
npcskills NPC会使用的技能列表.这不能代替AI.因为在这里添加只会让NPC盲目使用.而不像AI那样根据情况来使用.
npc_buffer NPC 可以加的buff列表(就是奇岩城的加加师)
obj_restrictions 未知表
olympiad_nobles 参加奥林匹克的贵族列表
petitions 未知表
pets 角色的宠物数据列表
pets_skills 宠物的技能列表
pets_stats 宠物每一个等级的基本数据
pledge_skill_trees 血盟技能需求列表
posts 未知表
quest_global_data 任务回报列表
raidboss_spawnlist 狩猎首领刷出位置列表
random_spawn 也就是说有一定的几率会出现的NPC?
random_spawn_loc 上面一个表的NPC刷出位置
record 游戏纪录列表.无特殊作用.也就是一个日志纪录多少时间有多少个玩家在线.
seven_signs 七封引数据列表.不参加的话这个表就没用了
seven_signs_festival 黑暗祭典?未知表
seven_signs_status 和七封引有关系的未知表
siege_clans 参加攻城的血盟列表
skill_learn 强化技能师列表.如要把所有的强化都加在一个npc身上就要改这个
skill_spellbooks 学习技能需要的魔法书.需要在config开启
skill_trees 技能树.你可以在等级多少学习到什么技能就要在这里修改
spawnlist 游戏中的NPC和怪物的刷出位置和重新刷新时间列表
teleport 传送到的位置列表
temporaryobjecttable 临时模板存放表
topic 未知表
transform_skill_trees 变身角色的技能表
tvt 和tvt有关系的未知表
tvt_teams TVT的三个阵营
vanhalter_spawnlist 范浩特的刷怪列表
vipinfo VIP信息 无用的表
walker_routes 未知表
---------------------------------------------------------------------------------------------
weapon 武器表.在这里你可以修改武器的重量和一些其他的设定.不能修改武器的属性
---------------------------------------------------------------------------------------------

<如何设置怪物的掉宝>

打开数据库droplist可以看到各表
mobid 怪物id
itemid 要掉的物品
min 掉的最小个数
max 掉的最大个数
category 掉的物品种类(可分成1-10种类.自行随意设置)
chance 物品爆率(不要超过100万)

------------------------

<如何设置传送点>

打开一个传送的对话.\l2j-gameserver\data\html\teleporter\90000.htm
90000为奇岩的全能传送师
打开后可看到各传送说明.
例如
<td><button value="村庄与城镇" action="bypass -h npc_%objectId%_Link common/tel/30080-1.htm" width=95 height=20 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df"></td><br>

bypass -h npc_%objectId%_Link common/tel/30080-1.htm语句代表跳到common/tel/30080-1.htm的对话页面.

再打开/30080-1.htm 是村庄与城镇的传送..

看下面说明
<a action="bypass -h npc_%objectId%_goto 19" msg="811;奇岩城镇"> 奇 岩 城 镇 - 6800 金币</a><br1>

是传送到奇 岩 城 镇

<a action="bypass -h npc_%objectId%_goto 19"这句代表.关联到数据库teleport里id为19的传送.

我们打开数据库teleport 找到19的那行 可以看到下面的说明

description id loc_X loc_y loc_Z price fornoble
19 19 -116791 45691 341 0 0

description 代表在数据库里的说明..用编号就好.
id 传送的id.关联html里的
loc_X 游戏里的三个坐标之一
loc_y 游戏里的三个坐标之一
loc_Z 游戏里的三个坐标之一
price 传送的价格
fornoble 这个应该是贵族的传送价格(新加的功能)

改的话只要改loc_X loc_y loc_Z 三个坐标就好了

---------------------------------------------------------------------

<如何知道自己的坐标呢.>

很简单.用管理号进游戏.然后你人物跑到要传送的地点处.比如你要传到奇岩.那么你跑到奇岩.的某地..
在对话框处打入
/位置
就可以看到一个X Y Z 的坐标. 然后把这个坐标加到teleport数据库里就可以传送到奇岩了

----------------------------------------------------------------

<如何查看玩家的属性>

用管理员号.在游戏里按ALT+G 就会多一个框出来.在框里打入要查的人物名再点相应查的东西就行了

或者在数据库characters找相应的角色名.查他的各项数据也行

----------------------------------------------------

<如何设/取消Gm号>

打开数据库编辑..找到数据库AngeL_sCT5
然后再找 characters 打开..选你要做GM的角色名.然后在他的后面找到accesslevel表.设成200就是GM号了.同样设0就是普通号

注意:
设之前.角色要先下线.并大退..设好再上就是管理员了

------------------------------------------------------

<循环公告>

在数据库auto_announcements里.打开.自行改就行了 改好端要重启

-----------------------------------------

<如何设进服玩家为普通玩家>
打开 l2j-gameserver\config\General.properties

# 进入游戏时是否拥有管理员权限.
EverybodyHasAdminRights = false
false改成true

调好后记得重启端 这样进游戏的玩家就是普通号了..如果以前开服时设置的是true.那么在数据库里要把已经建好的角色里的accesslevel表设成0,.不然以前建的角色还是GM号 记得人物不能在线

---------------------------------------------------

<如何设爆率/sp/回收率>
打开 l2j-gameserver\config\rates.properties
里面有各爆率说明.自己写.
注意.物品爆率不要超过5,不然东西会爆很多个的 建议在2-3就行了

调好后记得重启端

----------------------------------------------------

<如何设物品的强化成功率>
打开 l2j-gameserver\config\Character.properties
里面有写成功率说明.自己看
下面是对照说明

# 强化武器/装备/首饰成功率
# 强化武器成功率
EnchantChanceWeapon = 68
# 强化装备成功率
EnchantChanceArmor = 52
# 强化首饰成功率
EnchantChanceJewelry = 54
# 强化武器 开/关
EnchantBreakWeapon = true
# 强化装备 开/关
EnchantBreakArmor = true
# 水晶施法卷轴 开/关
EnchantBreakJewelry = true

# Crystal Enchant Scroll
# 强化首饰 开/关
AllowCrystalScroll = true
# 强化武器结晶成功率
EnchantChanceWeaponCrystal = 75
# 强化装备结晶成功率
EnchantChanceArmorCrystal = 75
# 强化首饰结晶成功率
EnchantChanceJewelryCrystal = 54
# 强化武器结晶 开/关
EnchantBreakWeaponCrystal = true
# 强化装备结晶 开/关
EnchantBreakArmorCrystal = true
# 强化首饰结晶 开/关
EnchantBreakJewelryCrystal = true

# Blessed Enchant Scroll
# 强化武器祝福成功率
EnchantChanceWeaponBlessed = 95
# 强化装备祝福成功率
EnchantChanceArmorBlessed = 95
# 强化首饰祝福成功率
EnchantChanceJewelryBlessed = 94
# 强化武器祝福成功率 开/关
EnchantBreakWeaponBlessed = true
# 强化装备祝福成功率 开/关
EnchantBreakArmorBlessed = true
# 强化首饰祝福成功率 开/关
EnchantBreakJewelryBlessed = true

# 强化上限 [默认 = 0 (无限制)]
# default = unlimited
# 武器强化上限
EnchantMaxWeapon = 10
# 装备强化上限
EnchantMaxArmor = 10
# 首饰强化上限
EnchantMaxJewelry = 10

# 如果EnchantSafeMax被设定为'8' 那么物品就可以按全加到 '8'
# 强化成功率(默认 = 3 普通强化卷轴, 默认 = 4 祝福强化卷轴)
# EnchantSafeMaxFull 是用于设定强化连身衣甲 (上下连身)
# 必须 > 0
EnchantSafeMax = 3
EnchantSafeMaxFull = 4



------------------------------------

<管理员命令>
//admin
其它的有中文菜单说明自己对

----------------------------------

<调物品>
//admin
在菜单最上面的框里写上要调的物品id 然后点{直接制造} 这样物品就会直接在你的物品栏里.如果要调多个的话.选{制造物品} 一样.前面是id 后面是物品数量.点制造就行了
要注意的是.调之前要选点要给物品的人的名字.比如你要给自己就点自己.要给某人.就点某人的名字就行了

------------------------------------------

<给装备调等级>
跟调物品一样.先点要调的人的名字..当然首先那个调的装备/武器要穿在身上才行.然后选{强化选单}
进入后.上面的框写强化等级.下面点要强化哪个部份


--------------------------------------------------------

<如何修改/查看怪/npc的属性>
按shift+鼠标右键点怪.就可以看到

del开头的是删除这个刷怪.慎用.删了这个怪就没了.重启端也是一样的

dro开头的是怪的掉宝 进去后.
第1个框.物品的id.
第2个框.最小掉的个数.
第3个框.最大掉的个数.
第4个框.掉的类型(随便就行)
第5个框.掉宝爆(不要超过100万不然会出错)

----------------------------------------------------

<如何刷怪>
按shift+鼠标右键点怪.可以看到怪的id.然后可以点del把这个怪删掉.然后你人物先跑到要刷怪的地方.打//admin
在上面的框里写上要刷的id然后选{直接刷怪} 这样怪就会刷在你站的地方了.

npc也一样方法刷

注意.小安/火龙/巴温三个不要刷哦.因有系统控制的.乱刷到时会出错的

-----------------------------------------------------------------

<如何把英文的对话汉成中文>

端因是时时更新.所以有些英文对话比较多.不过都是些不重要的.如果你实在想汉化的话.按下面的步骤来

1 对话基本全在l2j-gameserver\data\html下
2 打开各目录.会看到按id排列的的各种html文件.
3 你看要汉哪个npc的对话.在游戏里按shift+鼠标右键点npc就可以看到npc的id了.
4 然后在html目录里打相应的html文件.用记事本打开.汉成中文的.
5 汉好后保存为utf-8格式. 最后在游戏里//admin选重读html就行了,对话就会变中文了.

注意 "<" 这个符号中间的东西不要动哦.是任务的关联 ">"

--------------------------------------------------

<端里部份目录的说明>

l2j-gameserver\data\html\admin 管理员菜单
l2j-gameserver\data\html\adventurer_guildsman 冒险家菜单
l2j-gameserver\data\html\auction 竟标师的菜单
l2j-gameserver\data\html\chamberlain 城堡税率管理菜单
l2j-gameserver\data\html\clanHallManager 城堡管理菜单
l2j-gameserver\data\html\default 主要对话菜单.(基本npc对话全在这里)
l2j-gameserver\data\html\doormen 守门人的菜单
l2j-gameserver\data\html\fisherman 钓鱼公会会员的菜单
l2j-gameserver\data\html\guard 任务npc对话菜单(基本所有任务关联都在这里)
l2j-gameserver\data\html\help 游戏里的帮助对话菜单
l2j-gameserver\data\html\l2emu_mods 特别npc的菜单(各种活动npc的对话)
l2j-gameserver\data\html\manor 庄园种子的菜单
l2j-gameserver\data\html\merchant 各商店的npc对话菜单(所有的商店对话全在这里)
l2j-gameserver\data\html\olympiad 奥林匹克比赛的菜单
l2j-gameserver\data\html\seven_signs 七封印的菜单
l2j-gameserver\data\html\symbolmaker 纹身师的菜单
l2j-gameserver\data\html\teleporter 传送菜单(各城传送师的对话菜单)
l2j-gameserver\data\html\villagemaster 各教师和转职师的对话菜单
l2j-gameserver\data\html\warehouse 各仓库的管理菜单

-----------------------

<商店数据修改>
l2jangel-gameserver\data\multisell
是商店的数据(全能商店里的商店数据按商店id排列)

下面举列说明

<item id="1"> ----------------为物品的排列编号
<ingredient id="57" count="1000"/> ------------换此物品所需要的物品."1000" 为物品的数量
<production id="9547" count="1"/> ------------能换到的物品."1" 为数量
</item> ------脚本的格式不能动

<item id="2"> ----------------为物品的排列编号
<ingredient id="57" count="1000"/> ------------换此物品所需要的物品."1000" 为物品的数量
<production id="9547" count="1"/> ------------能换到的物品."1" 为数量
</item> ------脚本的格式不能动

那么如何改这个商店呢..我们找全能商店师 他的id是50002
然后在l2jangel-gameserver\data\html\merchant\找到50002.htm
打开可以看到各商店的对话数据

例如:
<td><a action="bypass -h npc_%objectId%_multisell 1000000">
<font color="FFFFFF">新手武器</font></a></td>
就是id为1000000的商店.我们就可以在
l2j-gameserver\data\multisell
打到1000000的商店 然后修改就行了 修改好后用管理员菜单//admin 然后选重读multisell就行了.改之前记得备份原文件

如果不想要这个商店的话.把
<td><a action="bypass -h npc_%objectId%_multisell 1000000">
<font color="FFFFFF">新手武器</font></a></td>
这整个对话删掉.然后管理员菜单//admin 重启html


--------------------

<特色活动修改>
l2jangel-gameserver\data\scripts\custom
本端的所有物色功能和脚本目录 __init__.py为脚本(用记事本打开改) html为对话

-----------------------

<任务脚本修改>
l2jangel-gameserver\data\scripts\quests
本端的所有任务对话和脚本目录.按任务的id排列__init__.py为脚本(用记事本打开改) html为对话

----------------------

<转职/职业脚本修改>
l2jangel-gameserver\data\scripts\village_master
转职的对话和脚本目录__init__.py为脚本(用记事本打开改) html为对话

-------------------

<装备属性修改>
l2jangel-gameserver\data\stats\armor
装备的属性目录.按装备的id排的

----------------

<技能属性修改>
l2jangel-gameserver\data\stats\skills
技能的属性目录.按技能id排列

-------------------

<武器属性修改>
l2jangel-gameserver\data\stats\weapon
武器的属性目录.按武器的id排列


---------------------

<活动修改>
l2jangel-gameserver\data\faenor
为活动目录.就是全世界收集物品的活动
文件为zip格式.可解压.然后用记事本修改xml文件

---------------下面是举列说明:

<Event ID="1234" Active="24 Dec 2006-26 Dec 2008">
<Droplist>
<AllDrop Items="6393,6392" Count="1,1" Chance="70%" />
</Droplist>
<Message Type="OnJoin" Msg="闪耀勋章: 闪耀勋章收集后可到奇岩兑换物品" />
<EventEnd>
<Take From="AllPlayers">
<Item ItemID="6393-6392"></Item>
</Take>
</EventEnd>
</Event>

---------
ID="1234"是活动的编号.跟zip文件同名

Active="24 Dec 2006-26 Dec 2008"> 为活动的时间 如把2008改成2007那么这个活动就不会出现了. 等于过期了

Msg="闪耀勋章: 闪耀勋章收集后可到奇岩兑换物品" /> 进服里活动的说明

Items="6393,6392" 为物品id 如多个可用,号分开

Count="1,1" 为爆的数量 如多个可用,号分开

Chance="70%" 为物品爆率

<Item ItemID="6393-6392"> 为物品id 跟上面物品id要一样

其它的就不要改了 改好后保存.并把改好的文件拉到zip里覆盖就行了.记得不要改文件名..然后重启端就可以了

-----------------------------

<进服公告>

\l2j-gameserver\data\announcements.txt记事本打开修改 记得存为utf-8格式.改好后重启端就行了


--------------------------------

<boss管理器动画开启>

奇岩

神殿旁边有boss专用传点.结界的心脏. 度量点. 克莱恩. 席琳的石像

1.结界的心脏?安塔瑞斯管理器
需要 传送石 id3865 全能商店有卖任务道具
可能还要跑到安塔瑞斯出场地方附近.才看的到动画. 等5分钟动画开启

2.度量点?巴温管理器-
需要 染血的布 id4295 全能商店有卖任务道具
传送完.奔跑去.点选巴温的石像.动画开启

3. 巴拉卡斯监视者-克莱恩?巴拉卡斯管理器
需要 1次性浮游石id7267 全能商店有卖任务道具
传送到众神火炉上层.往火焰回廊奔跑到 火山的心藏 id31385.
传送到巴拉卡斯巢穴.继续奔跑.往下跳.
在213143 -115035 -1064 位置等1-5分钟火龙飞天喷火动画开启


4.席琳的石像?塞壬管理器

修改l2jangel-gameserver\config\ 里面grandboss.properties

=======================================================
塞壬
=======================================================

# 是否开启允许玩家单独进入.
EnableSinglePlayer = false<==改为ture

需要 卡扎克 id8784 全能商店有卖任务道具

传送完.等几分钟.伶盗龙?暴龙?塞壬 依续刷出
-------------------------------------------------------------------------------------------------
5.弗林迪萨管理器?gm传送->5章地区->最后的皇陵 等1分钟~5分钟
要先打影像.画像.
20.版可以打到第3阶段.才莫明传出去
21版打的死.有掉项鍊.狩猎积分

6.安德雷亚斯范浩特管理器
需要 参观者的标章 id8064 找卢云神殿.神官爱丽斯接任务
需要 邪教的标章 id8067 完成任务或全能商店有卖
需要 黑暗钥匙 id8275 打开黑暗之门.邪教神殿怪会掉或gm刷出道具
打掉 黑暗之门~祭檀的门内.所.有.特里殴的启示
打掉 祭檀的门~祭物的门内.所.有.安德雷亚斯范浩特的亲卫队长
通过 祭物的门 动画开启

祭物的门必需照流程开启.否则会没动画&安德雷亚斯范浩特无敌化

7.巴尔勒管理器 不明 官服条件…小boss没看到


勿开gm无敌.可能会判断无玩家进入boss场景

------------------------------------

如何设置永久英雄

打开表heroes 然后按characters里的内容填写........
后面两个全写1和1
设之前玩家要先下线.设好再上就是永久的英雄了


自己整理的CONFIG下所有文件的解释


chat修改全服喊话
administration修改GM权限,上线相关设置,名字颜色,玩家注册上线是否GM
versionning未知
filters聊天惩罚,屏蔽
network联网设置
mods自定义设置
announcer.properties 自定义公告管理员管理
banking.properties 银行管理
buffer.properties 价钱等设置
champion_mobs.properties 精英怪物管理
classmaster.properties 转职/座龙升级
craftmanager.properties 商店结晶化系统
fun_events.properties TVT系统等修改
jail.properties 监禁系统修改聊天等
level_changer.properties 降级功能师修改
protector.properties 保护NPC设置
wedding.properties 结婚系统设置
main主要设置
altgame.properties 搜魂石/召唤/矮人制造系统/玩家移动速度/英雄武器出售/死亡损失经验/XP,SP奖励/宠物相关/玩家行为相关
areas.properties 地区设置
clans.properties 血盟设置 加入/解散/创建血盟天数,级别,仓库使用等 血盟LV5升级人数设定
communityboard.properties 布告栏系统
custom.properties 玩家进入服务器/公告/推荐/速度限制/新手/副职/等级/负重/PVP/狩猎/宠物速度/传送费用/MOD AI/魔法攻击设置
developer.properties 发展人员设置
drops.properties 物品掉落/掉率/等级差掉率/物品栏已满后获得物品设置
dynamic_extensions.properties 空白
enchant.properties 武器/装备/首饰强化设置
entities.properties 猜测是血盟小屋等设置 魔法/HP/MP/经验再生 装饰功能/固定装饰物/等级等设置
equipment.properties 装备设置 城堡/阿沛拉/血盟誓言/王冠/头饰等装备
grandboss.properties 终极BOSS设定
grid.properties 地图分格系统/GEODATA/地上物品管理设置
id_factory.properties ID管理
inventory.properties 详细目录/存货清单 捡起物品模式/物品栏空间/抛弃物品等设置
manor.properties 庄园系统种子管理设置
nicks.properties 人物等级名字颜色设置
options.properties 服务器状态/区域/玩家无效任务/试穿装备/钓鱼/服务器版权信息/数据保存设置
other_settings.properties 新手出生钱/逃脱时间/上线保护时间/租借飞龙/座龙的npc/死亡获得后遗症几率设置
party.properties 组队经验配置/级别差等
permissions.properties 受诅咒武器/奖券/船/警卫攻击主动怪/钓鱼/货运系统设置
petitions.properties 怪物竞赛系统设置
pvp_settings.properties PVP/性向/红名玩家角色系统设置
pvtstores.properties 买卖个人商店系统买卖物品数量限制 矮人/其他职业
rates.properties 经验/暴率/任务奖励率/宠物成长率/玩家物品掉落率/红名玩家物品掉落率/草药暴率等设置
regeneration.properties 人物CP/HP/MP恢复速度 NPC HP/MP恢复速度 BOSS和他的护卫防御倍数 HP/MP恢复速率
respawns.properties 重新召唤设置 如警卫
skills.properties 技能设置 强化技能/是否需要魔法书/自动学习技能/辅助状态最大量/辅助状态时间等设置
warehouse.properties 仓库使用/仓库最大栏数/货运系统等设置
events文件夹下
castle_siege.properties 攻打城堡相关设置
fortsiege.properties 攻打要塞相关设置
lottery.properties 奖券系统设置
olympiad.properties 奥林匹克活动设置
olympiad_save.properties 奥林匹克保存设置
seven_signs.properties 七封印系统设置


CT2.6芙蕾雅服务端的装备技能写法!!


XMl 句法整理.更新添加中
power       攻击
mpConsume   MP消耗.
target      攻击范围.   TARGET_ONE(单体攻击) TARGET_SELF(自己技能) TARGET_PARTY(队伍范围) TARGET_CLAN(血盟范围) TARGET_AREA(区域攻击) TARGET_PET(宠物)
element     技能效果.   6黑暗 5神圣 4风 3水 2火 1土
hitTime     技能使用时间
skilltype   技能属性类型. BUFF(状态) POISON(毒) PARALYZE(麻痹) MDAM(魔法伤害) HEAL(治疗)PDAM(物理攻击) WEAKNESS(弱化) SOULSHOT(灵魂蛋用)
operate type 主,被动.    OP_ACTIVE(主动) OP_PASSIVE (被动)
isMagic     是否是魔法. true
castRang    攻击距离. 射程.. 被动-1
effectRang. 范围被动-1
skillRadius 攻击角度.是配合某一类型技能的效果范围,应该和effectRange类似
reuseDelay  再使用时间
magicLvl    魔法技能等级.1-99
weaponsAllowed 武器需要 512(双刀) 16(匕首) 18444(刀剑/顿器) 32(弓) 2(盾牌) 1024(拳套) 64(矛)
nextDanceCost 再使用技能的MP消耗(MP附加消耗)
isDance     是否是舞. true
aggroPoints 会引起主动攻击怪物注意的范围
isSong      是不是歌 true
itemConsumeId 技能消耗物品ID
itemConsumeId 技能消耗物品数量
ignoreShld  是否可以被盾牌防御true
overHit    就是overHit true
mpInitialConsume MP持续消耗值
hpInitialConsume HP持续消耗值
absorbPart       吸血百分比
附加语句
<for>
   <add order="0x40" stat="pDef" val="20">
     <and>   
        <using kind="Heavy"/>   
        <not>
          <using kind="Magic,Light"/>  
        </not>   
      </and>   
    </add>   
  </for>  这个句子是说: 当 穿全套重装(<using kind="Heavy"/>) 而不用轻,法时(<not><using kind="Magic,Light"/></not>)
有PDEF(物理防御)加20点的效果.(<add order="0x40" stat="pDef" val="20">)
<AND>后面表示要求.</AND>要求结束. </ADD> 添加效果结束. </FOR>效果设定结束
注意这里每一句的开头位置
<mul val='1.10' order='0x30' stat='maxHp'>  
     <and>
<using slotitem="10415;16;4"/> 在16号位置(双刀位置) 装备10415 强化值为4. 的时候 有<MUL>后面的效果.11表示裤,6:头,12:鞋,9:手 8:盾牌,10表示上衣
</and>
   </mul>
STAT效果代码
命中                        accCombat   
回避率                      rEvas   
物理攻击致命率              rCrit  
致命攻击力                  cAtk   
魔法致命机率                mCritRate   
物理攻击速度                pAtkSpd     
魔法攻击速                  mAtkSpd   
物理攻力                    pAtk   
魔法攻力                    mAtk   
HP最大值                    maxHp  
MP最大值                    maxMp  
CP最大值                    maxCp   
物理防御力                  pDef  
魔法防御力                  mDef   
盾牌防御力                  sDef   
回血速度                    regHp  
回蓝速度                    regMp   
回CP速度                    regCp
受到的恢复MP技能效果增加    gainMp
受到的恢复HP技能效果增加    gainHp   
盾格挡率                    rShld
盾牌防御角度                shldAngle  
经验倍数                    rExp  
移动速度                    runSpd/Spd
魔法恢复时间                mReuse
技能回复时间                atkReuse      
物理攻击反射                reflectDam/reflectStance
吸血效果                    absorbDam  
痛苦转移                    transDam        
攻击中断                    cancel
普通攻击距离                pAtkRange  
魔法攻击距离                mAtkRange   
枪类攻击角                  poleAngle   
负重最大限                  maxLoad
抗剑                        swordWpnvuln 3lT>  
抗钝                        bluntWpnvuln   
抗匕                        daggerWpnvuln  
抗拳                        fistWpnvuln  
抗弓                        bowWpnvuln   
抗枪                        poleWpnvuln   
抗双刀                      dualWpnvuln  
抗双手武器                  dualFistWpnvuln
弱化后面可以加VULN表示抗性. 不知道可不可以加个PATK-表示客星呢?)
沉默          mute  
缓速          movement   
麻痹          paralyze   
出血          bleed  
毒            poison   
休克          stun   
固定          root   
混乱          confusion   
睡眠          sleep   
火            fire   
风            wind   
水            water   
地            earth   
神圣          holy   
黑暗          dark  
客星系列不知道可不可以换成MATK-)  
克不死        pAtk-undead   
抗不死        pDef-undead   
克植物        pAtk-plants   
克虫子        pAtk-insects  
克动物        pAtk-animals  
克怪物        pAtk-monsters  
克龙          pAtk-dragons
以下是转贴得来 不晓得怎么用:   
道具栏    inventoryLimit   
仓库      whLimit   
仓库      FreightLimit
出售位置  PrivateSellLimit  
购买位置  PrivateBuyLimit  
矮人制作  DwarfRecipeLimit   
普通制作  CommonRecipeLimit
肺活量    breath  
性向      aggression  
性向率    aggressionRes


天堂2 修复各种任务系统的方法


举个例子 修复转职任务 转职成为精灵巡守
1、准备工作,一份L2J模拟器必不可少,另外请准备好一份解密的NPCNAME-CN.txt,questname-cn.txt和itemname-cn.txt。如果不会解密请l留言询问,这里不再作具体说明。
2、打开questname-cn.txt找到成为精灵巡守这一任务,它的任务代码是407,进入模拟器下data\jscript\quest\407-pathtoElfscout\,打开_init_.py文件,最开头的一段是标明导入的JAVA类和执行时的目标位置,可是不理。下面一段请注意:
REORIA_LETTER2_ID = 1207
PRIGUNS_TEAR_LETTER1_ID = 1208
PRIGUNS_TEAR_LETTER2_ID = 1209
PRIGUNS_TEAR_LETTER3_ID = 1210
PRIGUNS_TEAR_LETTER4_ID = 1211
MORETTIS_HERB_ID = 1212
MORETTIS_LETTER_ID = 1214
PRIGUNS_LETTER_ID = 1215
HONORARY_GUARD_ID = 1216
REORIA_RECOMMENDATION_ID = 1217
RUSTED_KEY_ID = 1293
这里是任务物品的代码,等号右边数字是物品ID,具体请查itemname-cn.txt文件,我不一一作说明,其中1217是最后一步,大师Reisa的推荐信,GF中有了这件物品,然后找宗师Rains就可以完成转职,但是我们看到这里就差Rains的任务JS。
3、编写Rains的对话脚本,大家可以按照其它脚本的格式写,内容随便,只不过要注意存成utf-8的编码格式,文件名一定要以7228开头,因为查询npcname-cn.txt,Rains的ID是7228。这里我也给一个例子:7228-01.htm
<格式html>
<格式head>
<格式body>
Grand Master Rains:<格式br>
Welcome,hero!Now i'll change your Class to <格式font color="LEVEL">Scout<格式/font>!<格式br>May you good luck!
<格式/body>
<格式/html>
为了让文件内容能显示,所以我在必须要的内容前面都加了“格式”二字,大家写的时候自己去掉。
4、修正_init_.py文件。找到下面内容
  elif npcId == 7328 and int(st.get("cond")) and st.getQuestItemsCount(HONORARY_GUARD_ID)>0 :
    htmltext = "7328-07.htm"
    st.takeItems(HONORARY_GUARD_ID,1)
    st.giveItems(REORIA_RECOMMENDATION_ID,1)
    st.set("cond","0")
    st.setState(COMPLETED)
    st.playSound("ItemSound.quest_finish")
  return htmltext
我作一个大意解释,这里是说如果npc的id为7328也就是指你跟Reisa对话,此时你任务并没完成,同时又有物品HONORARY_GUARD_ID(名字记不太清楚了,反正是莫雷蒂给你的认证书),那么对话就显示7328-07.htm里的内容,同时把莫雷蒂的认证书收回,给你Reisa的认证书,响任务完成的音乐,任务就此结束。实际上并没有涉及到转职的内容。
将下面内容替换原文,请仔细一点不要弄错了。
  elif npcId == 7328 and int(st.get("cond")) and st.getQuestItemsCount(HONORARY_GUARD_ID)>0 :
    htmltext = "7328-07.htm"
    st.takeItems(HONORARY_GUARD_ID,1)
    st.giveItems(REORIA_RECOMMENDATION_ID,1)
    st.set("cond","9")
  elif npcId ==7228 and int(st.get("cond")) and st.getQuestItemsCount(REORIA_RECOMMENDATION_ID)>0:
    htmltext = "7228-01.htm"
    st.takeItems(REORIA_RECOMMENDATION_ID,1)
    st.player.setClassId(22)
    st.set("cond","0")
    st.setState(COMPLETED)
    st.playSound("ItemSound.quest_finish")
  return htmltext
再向下拉,看到有STARTED.addTalkId()这里,加上一行STARTED.addTalkId(7228)
保存后,一切就OK了!现在你像GF一样做任务转职了!
最后偶再补充一点点任务相关的内容,有许多朋友抱怨,一些任务物品的掉率实在太低了,不管怎么调爆率都不会掉,实际上任务物品的掉落与爆率没有关系,是在_init_.py和mysql里控制的,首先mysql里要设计有这个物品的掉率,要不我也没办法,然后就是在任务js里调整。还是以精灵巡守为例,请看下面的内容:
def onKill (self,npc,st):
  npcId = npc.getNpcId()
  if npcId == 53 :     ------------------任务目标
    st.set("id","0")   ------------------数据库里标签,可以不管
    if int(st.get("cond")) :       ---------判断任务在进行
    if st.getQuestItemsCount(PRIGUNS_TEAR_LETTER1_ID)+st.getQuestItemsCount(PRIGUNS_TEAR_LETTER2_ID)+st.getQuestItemsCount(PRIGUNS_TEAR_LETTER3_ID)+st.getQuestItemsCount(PRIGUNS_TEAR_LETTER4_ID) < 4 : ---如果任务物品总数不到4
      if st.getQuestItemsCount(PRIGUNS_TEAR_LETTER1_ID)<1 :
        st.giveItems(PRIGUNS_TEAR_LETTER1_ID,1)         ---------掉落1个
        if st.getQuestItemsCount(PRIGUNS_TEAR_LETTER1_ID)+st.getQuestItemsCount(PRIGUNS_TEAR_LETTER2_ID)+st.getQuestItemsCount(PRIGUNS_TEAR_LETTER3_ID)+st.getQuestItemsCount(PRIGUNS_TEAR_LETTER4_ID) == 4 :       -------------检查是否打够了任务物品
        st.playSound("ItemSound.quest_middle")   -----------如果够了就在游戏中响任务物品够的音乐
        st.set("cond","3")           -----------同时给任务阶段换一个标签
        else:
        st.playSound("ItemSound.quest_itemget")   -----------否则就响得到物品的音乐
以上是对物品的控制,另外还有
STARTED.addQuestDrop(7328,REORIA_LETTER2_ID,1)
STARTED.addQuestDrop(53,PRIGUNS_TEAR_LETTER1_ID,1)
STARTED.addQuestDrop(53,PRIGUNS_TEAR_LETTER2_ID,1)
STARTED.addQuestDrop(53,PRIGUNS_TEAR_LETTER3_ID,1)
STARTED.addQuestDrop(53,PRIGUNS_TEAR_LETTER4_ID,1)
STARTED.addQuestDrop(5031,RUSTED_KEY_ID,1)
STARTED.addQuestDrop(7337,MORETTIS_HERB_ID,1)
STARTED.addQuestDrop(7337,MORETTIS_LETTER_ID,1)
STARTED.addQuestDrop(7426,PRIGUNS_LETTER_ID,1)
STARTED.addQuestDrop(7337,HONORARY_GUARD_ID,1)
这些是对爆率的控制,如果没有上述两段那你可以中断任务了,因为打不出来啊!
其它的转职任务与我所讲的修正方法完全一样,只不过是换个NPCID和itemID。大家有兴趣可以自己试着修正一下。
由于现在大家手中的模拟器各不相同,有许多都是别的作者自己加以编译了的,我手上的也一样,经过偶自己和几位朋友分别重新编译,增加了一些东西,具体是什么自己都记不清了.
所以也不知道大家手中的模拟器是否有setClassId这个方法,为了使人人都能完成任务,再提供一个修正方法,注意这两种方法偶都测试通过,绝无问题.
在_init_.py文件中找到   
elif npcId == 7328 and int(st.get("cond")) and st.getQuestItemsCount(HONORARY_GUARD_ID)>0 :
    htmltext = "7328-07.htm"
直到   return htmltext       这一段,将其换为:
  elif npcId == 7328 and int(st.get("cond")) and st.getQuestItemsCount(HONORARY_GUARD_ID)>0 :
    htmltext = "7328-07.htm"
    st.takeItems(HONORARY_GUARD_ID,1)
    st.giveItems(REORIA_RECOMMENDATION_ID,1)
    st.set("cond","9")
  elif npcId == 7228 and int(st.get("cond"))>=0:
    if st.getQuestItemsCount(REORIA_RECOMMENDATION_ID)>0 :
      htmltext = "7228-01.htm"
      st.takeItems(REORIA_RECOMMENDATION_ID,1)
      st.set("cond","0")
      st.setState(COMPLETED)
      st.playSound("ItemSound.quest_finish")
    else:
      htmltext = "7228-02.htm"
  return htmltext
同样再在下面定义对话人物,加上STARTED.addTalkId(7228)表示任务中有跟7228号npc对话的内容.
然后编辑7228-01.htm为:
<html>
<head>
<body>
Grand Master Rains:<br>
Welcome,hero!I'm now changing your Class to<br><a action="bypass -h npc_%objectId%_change_class 22"><font color="LEVEL"> Scout</font></a>!<br>May you good luck!

</body>
</html>
再编写一个7228-02.htm:
<html>
<head>
<body>
Grand Master Rains:<br>
Greetings,hero!I wonder if you fit for <font color="LEVEL">Scout</font>?<br>Come back when you are ready!

</body>
</html>


请一定将格式存为utf-8,要不会出问题的!
这样即使你是最原始的l2j档都没有问题!

简单介绍一下Buff师的各种功能的Html写法
游乐论坛www.zhl5.com

首先先找一个NPC,我们就用默认的37502,也就是劳拉
在服务端目录中找到data\html\default目录,找到37502.htm文件
用记事本打开这个文件即可编辑,我们可以看到默认的代码(其中一段)



action="bypass -h 表示执行的功能
BUff指令格式(-h与指令要有一个空格)
Buff 后添加技能的ID与等级,技能ID与等级间要用半角英文逗号隔开,若要多个buff一次施加,技能之间就用空格隔开
例如 bypass -h 12,1 施加ID为12等级1的buff bypass -h 12,1 13,1 同时加2个状态给玩家
Vuff指令
Vuff 也是施加buff 用法与Buff是相同的,不同的是,Vuff只能为Vip的玩家施加,若玩家不是Vip则会返回提示信息
Puff 指令
Puff 是为召唤兽或者宠物施加,用法也与Buff相同,如果玩家没有宠物在身边,则会返回提示信息
VPuf指令
与 Vip玩家专用的宠物状态,与Puff用法相同
SumC 指令
SumC 是使用魔法的含义,这个与Buff用法略不同,后面建议只写一个魔法的ID与等级,当然ID与等级要加逗号隔开,
SumC 表示让玩家自己用魔法,那么可以利用这个技能让玩家使用一些召唤魔法,常用于召唤晶体等等
VipSumC 指令
与SumC用法相同,只不过是为VIP玩家专门准备的,其他玩家无法调用
Heal命令
用法action="bypass -h Heal" 可为玩家恢复所有HP/CP/MP
PetHeal 同理恢复宠物HP/MP
RemoveBuffs命令
用法与Heal相同,移除玩家的所有状态,包含负面状态


如何刷钱,及防止刷钱的方法!!
游乐论坛www.zhl5.com

首先,先介绍一下刷钱是如何实现的.
在目前天二的世界里, 有着如下的限制.

第一, 身上所携带的钱的总数,不能超过21亿. 超过21亿,钱就会变负.

第二, 身上钱变负后,继续增加钱,钱会由负转成正. 也就是负的21亿就为正钱.

第三, 钱变正时, 为从0起算..继续增加.. 此时,无论购买任何物品都按着当前的
价格进行交易.也就是说你理论上买了一万把神之刃, 然后钱又正转负,在转正
时.实际交易价格为十块天币, 那么, 你买下时(理论上你能拿得动) 只花十块天币.


第四, 购买一样物品的最大数量为99999 ,之结晶类, 任务物品类.弓箭类.需要输入数量的物品.

第五, 人物在交易, 够买时,没有物品格的数量限制!!!!!!!!这点请大家牢记!

第六, 人物的负重数量, 会使人物携带更多的物品.但请各位注意.我所说的是
携带的物品.并不是物品格!!!


明白了以上六点之后我来说一下刷钱的过程.

首先,购买一样物品, 从正21亿,一直买下去.买到负二十一亿.然后在继续买.
钱就会成正. 然后按缺点.买下物品. 你只花了少数的钱,就买下了.所有物品.
然后在卖掉. 整个过程为此..

刷钱的物品有许多,以最高级矮人穿最高级的增加负重衣服.加负重buffer
为默认前提!. 有刷神之刃等高价物品( 默认价格为七千八百万,是无法刷钱的)
刷晶体, 如果有S ,A B C D 任意三种晶体就可以实现刷钱. (价格重量为默认)
晶体是没有重量的, 买99999S晶,然后在买相应数量的其他晶即可.
需要注意的是.刷钱有的时候不能单买一样物品. 有时候需要够买两样.
或是两样以上的物品. 比如没有SABC 卖.只有D晶卖.
那我们至少要买最大限度的D晶,然后看看钱数, 多少.继续购买其他n多物品
直到把钱凑到42亿.

刷蛋.如果蛋价格超过28000 ,将会出现刷钱现象.

刷任务物品, 如果任务物品有价格.那就可以从其着手. 首先任务物品不要重量
每一样物品都可以买到99999 看钱数.在够买其他物品.

还有一些变象刷钱,比如一样物品卖的太便宜.比如说一把长枪卖23块.
那么矮人就可以把他直接结晶化,然后在卖晶....... .

适当的放开刷钱还是比较好的.我有空的时候就会放他们刷十五分钟.
或是把价格降低.让他们都买.之后在调到高价.让玩家卖出去.
或是留下少量物品特别便宜,把结晶数量降低, 然后让他们小范围刷钱.


以上为大致的刷钱方法.其实最基本的是看是否钱会超过42亿,然后要看你的负重能力
是否能承担42亿时的重量.

如何防止刷钱.

首先,最最基本的方法是不要改动默认价格.在默认价格下是不会出现刷钱的.

如果需要改,首先卖武器. 如果非要武器超过一亿一把的话. 那我劝你,还是不要了




服务端网络配置
游乐论坛www.zhl5.com

如果你的服务器带宽很足,平时不卡,PvP就卡,或者只有局部地区卡,那么多半是由于网络参数的配置不当。
打开服务端config/mmo.properties文档


代码: 全选

MaxSendPerPass = 12
调整为
代码: 全选

MaxSendPerPass = 24
重启服务端即可大幅改善PvP的卡顿状况。
如果仍然出现明显卡顿,可以继续尝试增长这里的数值。
如果你想知道其中原理,可以继续往下阅读...

L2J 服务端底层使用NIO,用一个主线程轮询队列中所有的客户端,根据客户端的状况来进行读写网络数据的操作
每当询问完全部客户端,主线程会休眠(Sleep)20毫秒(也就是mmo.properties中SleepTime设定的值),增加休眠时间会让出更多的cpu资源,但是会增加网络延迟,反之服务端延迟会变低,但是会占用更多的CPU和网络资源。
除此之外,所有接受/发送的包,都是先暂存在客户端自身的一个队列中。
当你在代码中使用sendPacket这类的方法时,并不是直接把包发送给客户端,而是把包放到准备发送的队列中,当主线程轮询到这个客户端时才会发送,为了保证所有客户有一定的"公平性",避免其中一个过分活跃的客户端一占用过多的资源,每个客户端默认每次只会得到最多12个包的发送,12个发送结束,不管队列中是否依然有剩余包,系统都不会处理,而是要等待到下一次轮询,当PvP时由于客户端的包队列在短时间内远远超过12个,就会导致玩家卡在那不动了。
解决的最简单的办法就是修改上面说到的数值了,让客户端可以在一次轮询中得到更多的数据发送。
当然这不是一个根本解决办法,更好的办法是想办法优化发送包的策略,比如将一些低优先级的包放到队列尾端,或者干脆想办法压缩包。
具体怎么实现,就要考验你自己的水平了。

游乐论坛-免责声明

1、游乐论坛-游乐网单-游乐单机游戏所有网单资源来源于网络,仅供学习交流之用,切勿用于商业用途.

2、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意.

3、游乐论坛游戏提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!

4、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担.

5、游乐论坛游戏所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站.

6、游乐论坛游戏使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,游乐论坛游戏不承担任何责任,本站已经进行告知义务.

7、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束.

8、游乐论坛游戏以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!

9、游乐论坛游戏如无意中侵犯了某个企业或个人的知识产权,请联系站长邮箱:zhl5@zhl5.com告之,本站将立即删除并致以最深的歉意.

0

主题

2

帖子

6

积分

偶尔光临

Rank: 1

积分
6
发表于 2024-1-17 16:37:08 | 显示全部楼层
不错不错
回复

使用道具 举报

游客
回复
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

广告
广告
广告
广告
广告
快速回复 返回顶部 返回列表