大笨猪 发表于 2012-7-18 09:07:11

冒险岛js文件分析,希望能帮助玩单机的友友。

本帖最后由 大笨猪 于 2012-7-20 15:15 编辑

   最近在玩冒险岛v101的单机打发时间,但是有一些任务要求至少要2人以上才可以进行。好奇心的驱使,我越发的想解决这个问题。下面是我收集的一些js文件的东东。

声明:这个是收集来的,不是我分析的,所以不是我的功劳。




[    post]全部代码前锹
cm.

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

dispose
下一句关闭对话框
用法:cm.dispose();

sendNext
下一句显示有的对话框
用法:cm.sendNext("[内容]");

sendPrev
下一句显示有的对话框
用法:cm.sendPrev("[内容]");

sendNextPrev
下一句显示有的对话框
用法:cm.sendNextPrev("[内容]");

sendOk
下一句显示有的对话框
用法:cm.sendOk("[内容]");

sendYesNo
下一句显示有的对话框
用法:cm.sendYesNo("[内容]");

sendAcceptDecline
下一句显示有的对话框
用法:cm.sendAcceptDecline("[内容]");

sendSimple
下一句显示普通内容的对话框
How to use:cm.sendAcceptSimple("[内容]");

warp
传送玩家到mapid
用法: cm.warp();

openShop
打开shopid
用法:cm.openShop();

haveItem
检查玩家是否有装备或携带itemid
用法:cm.haveItem();

gainItem
给与玩家itemid/没收itemid
用法:cm.gainItem(,[数量]); //如果要没收[数量]换到[-数量]

changeJob
更换玩家职业
用法: cm.changeJob();

getJob
检查玩家什么职业
用法:cm.getJob();

startQuest
开始任务
用法:cm.startQuest([任务代码]);

completeQuest
完成任务
用法:cm.completeQuest([任务代码]);

forfeitQuest
忘记任务
用法:cm.forfeitQuest([任务代码]);

getMeso
检查玩家的金钱
用法:cm.getMeso();

gainMeso
给与或者没收金钱[用法同道具]
用法: cm.gainMeso([数量]); // use- to take mesos.

gainExp
给与玩家经验[用法同上]
用法: cm.gainExp([数量]);// use - to take exp.

getLevel
检查玩家等级
用法:cm.getLevel();

teachSkill
给与玩家学习技能
用法:cm.teachSkill([技能id],[技能等级],[多少级满]);

isGM
检查玩家是否是GM
How to use:cm.isGM();

get
检查玩家属性点
How to use:cm.get();


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

这里是1转Rogue职业示范:


if (cm.getJob().equals(net.s f【把左边的s f中空格去掉.【】的内容和"【】"去掉】.odinms.client.MapleJob.BEGINNER)) {
    if (cm.getLevel() >= 10 && cm.getChar().getDex() >= 25) {
      cm.sendNext("So you decided to become a #rThief#k?");
      } else {
            cm.sendOk("Train a bit more and I can show you the way of

the #rThief#k.")
            cm.dispose();
      }
} else if (status == 1) {
    cm.sendNextPrev("It is an important and final choice. You will not

be able to turn back.");
    } else if (status == 2) {
      cm.sendYesNo("Do you want to become a #rThief#k?");
    } else if (status == 3) {
      if (cm.getJob().equals(net.s f.odinms.client.MapleJob.BEGINNER))

{
            cm.changeJob(net.s f.【把左边的s f中空格去掉.【】的内容和"【】"去掉】odinms.client.MapleJob.THIEF);
            cm.sendOk("So be it! Now go, and go with pride.");
            cm.dispose();
      }
    }
}

                           
________________________________________________________________________

MapleJob.代码


BEGINNER
WARRIOR
FIGHTER
CRUSADER
HERO
PAGE
WHITEKNIGHT
PALADIN
SPEARMAN
DRAGONKNIGHT
DARKKNIGHT
MAGICIAN
FP_WIZARD
FP_MAGE
FP_ARCHMAGE
IL_WIZARD
IL_MAGE
IL_ARCHMAGE
CLERIC
PRIEST
BISHOP
BOWMAN
HUNTER
RANGER
BOWMASTER
CROSSBOWMAN
SNIPER
CROSSBOWMASTER
THIEF
ASSASSIN
HERMIT
NIGHTLORD
BANDIT
CHIEFBANDIT
SHADOWER
GM
SUPERGM




示范

    if(cm.getJob().equals(net.s f.【把左边的s f中空格去掉.【】的内容和"【】"去掉】odinms.client.MapleJob.SUPERGM))

{
cm.sendNext("Hi, GM!");
}                              


______________________________________________________________________

NPC 文字 代码

#n            = 先是普通字体/移除加黑
#b            = 蓝色字体
#g            = 青色字体
#d            = 紫色字体
#r            = 红色字体
#k            = 黑色字体
#e            = 字体加黑
#c#      = 显示有多少在玩家inventory
#l            = Selection close. [不知道=.=||]
#m#      = 显示地图名字
#o#          = 显示怪物名字【先把m o b i d 各空格去掉】
#p#      = 显示NPC名字
#q#      = 显示技能名字
#t#      = 显示道具名字[和#Z冲突名字,多数用这个]
#z#      - 显示道具名称
#h #            = 显示玩家名字
#f#    = 显示在.wz文件夹里面的图案
#i#      = 显示道具图片
#s#      = 显示技能图片
#v#          = 显示道具图片
#x            = Returns "0%" [未知]{好像是exp返回0%}
#B[%]#            = Shows a 'progress' bar.[不知道]
\r\n            = 换行




由上面的一些分析我得到启发在服务端的NPC的JS文件上动手脚解决任务的要求。
步骤如下,
1打开服务端,
找到scripts 并打开。
2找到NPC文件并打开。
3找到NPC的代码,比如副本的那个NPC就叫佳佳,代码是9001100 找到这个代码的JS文件,右击,编辑。(有些副本要传送去跟别的NPC对话才可以,比如进阶扎昆要和利拉对话,那就找利拉的代码)
4找到你要修改的任务,比如进阶扎昆,这个任务至少要3人。找到利拉的代码2032003,右击编辑会出现如下

var status;

var minPlayers = 3;
var maxPlayers = 6;

function start() {
        status = -1;
        action(1, 0, 0);
}

function action(mode, type, selection) {
        if (mode == 1)
                status++;
        else {
                cm.dispose();
                return;
        }
       
        if (status == 0) {
                  if (cm.getPlayer().getClient().getChannel() != 1 ){
                                cm.sendOk("进阶扎昆大怪物只能在 1 频道召唤!");
                                cm.dispose();
                  }else if (cm.getPlayer().getParty() == null) {
                                cm.sendOk("#e<组队任务:进阶扎昆组队BOSS挑战任务>#n\r\n你想和你的队员们一起努力,打败扎昆大怪物吗?\r\n那么请开启组队,组上3~6个队员在来找我说话吧。");
                    cm.dispose();
                        } else if (!cm.isLeader()) {
                                cm.sendOk("想挑战进阶扎昆大怪物的话,请叫你的队长来和我谈话!");
                                cm.dispose();
                        } else {
                                cm.sendYesNo("#d你确定你们已经准备好进去对抗进阶扎昆大怪物了吗?准备好了的话我这就送你们进去!");
                        }
        }
        else if (status == 1) {
                        var party = cm.getParty().getMembers();
                                var inMap = cm.partyMembersInMap();
                                if (inMap < minPlayers || inMap > maxPlayers) {
                                        cm.sendOk("队伍人数没有达到要求的最低 "+minPlayers+"人, 最多 "+maxPlayers+"人!");
                                        cm.dispose();
                                } else {
                                var em = cm.getEventManager("Zakumjj");
                                var map = net.sf.odinms.net.channel.ChannelServer.getInstance(cm.getC().getChannel()).getMapFactory().getMap(280030001);
                          var playercount = map.getCharacters().toArray().length;
                          if (playercount < 1)
                          {
                           em.setProperty("ZakumjjOpen" , "true");
                          }
                                        if (em == null) {
                                                cm.sendOk("本任务暂未开放.");
                                                cm.dispose();
                                        }else if (cm.getPlayer().getBossLog("vipjjzk") >= 20) {
                  cm.sendOk("每天只能进5次 【进阶扎昆】!明天再来吧!");
                  cm.dispose();
            
                }   else if (em.getProperty("ZakumjjOpen").equals("true")) {
cm.getChar().setBossLog('vipjjzk');
var zakumMap = cm.getC().getChannelServer().getMapFactory().getMap(280030001);
                        zakumMap.resetReactors();

                                                em.startInstance(cm.getParty(), cm.getPlayer().getMap());
                                                em.setProperty("ZakumjjOpen" , "false");
                                                cm.serverNotice("[副本公告]:勇敢的玩家 ["+ cm.getChar().getName() +"] 带领着远征军团挑战进阶扎昆,为它们加油吧!");//系统发出蓝色提示;
                                                cm.dispose();
                                        } else {
                                                cm.sendNext("已经有队伍正在对抗进阶扎昆大怪物,请稍后在尝试!");
                                                cm.dispose();
找到var minPlayers = 3;
var maxPlayers = 6; 这2个。意思是至少组队人数3人,最多6人。 把3改成1就可以了。
注意,有些任务的代码中要求人数的不是这个两个代码。比如佳佳这个NPC中的副本中的大王蜈蚣任务。party.size() < 1 意思是至少1人.

几个可以帮助我们玩游戏的代码,party.size() 人数
else if (cm.getPlayer().getBossLog("vipszwble") >= 50) {
                  cm.sendOk("每天只能进50次
!cm.haveItem(4001355, 1)需要4001355物品一个才可以进行任务、



另外,NPC代码可以用MapleStoryDB 查询。湾里有我就不上传了。
感谢大家看我的帖子,希望对大家有帮助。

这个是下载js文件编辑器的地址   http://115.com/file/e72omqy2#
下载完后压解出来吧后缀名改为XX.exe再点击运行。然后右击目标文件右击编辑就可以了。

大笨猪 发表于 2012-7-18 09:09:21

对了。御龙魔这个任务好像是挑战不了的。没有传送去。卡在自由市场那里。唯一的办法是退出游戏。

cgndxmg 发表于 2012-7-18 14:33:50

支持一下。

adder399 发表于 2012-7-18 16:16:48

牛叉:

习惯有妳/aiq 发表于 2012-7-18 20:05:34

顶顶,多谢分享

as1010588 发表于 2012-7-19 18:39:22

菜鸟还是看不懂=。=

as1010588 发表于 2012-7-20 11:29:27

对了LZ , 那个JS文件用什么东西去修改啊?!求了

as1010588 发表于 2012-7-20 15:21:48

谢了LZ

as1010588 发表于 2012-7-20 15:25:45

弱弱的问下能不能修改NPC兑换元宝的:

﹎°尛公鉒.¤° 发表于 2012-7-25 22:53:53

有黑龙王门口那个干龙的代码么!!我找好久了没找到!!:

大笨猪 发表于 2012-7-28 22:11:40

﹎°尛公鉒.¤° 发表于 2012-7-25 22:53 static/image/common/back.gif
有黑龙王门口那个干龙的代码么!!我找好久了没找到!!

NPC代码可以用MapleStoryDB 查询。湾里有.

ningyuanwoai 发表于 2012-7-28 22:16:05

随便看看

℡簡噯 发表于 2012-10-31 11:23:38

呵呵 明白了

剑霸锋寒 发表于 2013-3-22 14:18:12

苦恼好久,原来可以这样解决啊。看看能不能单挑这些boss

想费的鱼 发表于 2013-5-2 21:22:02

很好很强大,受教了,谢谢!!!!!!!!!!

Maplayleaf 发表于 2014-10-16 15:46:54

062版的群宠任务怎么改?有bug做不了。。。

(り_、小博. 发表于 2014-10-19 16:33:49

好难啊,楼主能教教么?
页: [1]
查看完整版本: 冒险岛js文件分析,希望能帮助玩单机的友友。

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明