[Help] Scripting with Item stat editing Dojo points

Results 1 to 11 of 11
  1. #1
    Account Upgraded | Title Enabled! natkemon is offline
    MemberRank
    Jul 2008 Join Date
    424Posts

    [Help] Scripting with Item stat editing Dojo points

    I've changed the script around quite a bit compared to last one. Now i'm just having trouble with the part when i click on the belt, it takes me no where. how should i fix it?

    Code:
    /*
    	This file is part of the OdinMS Maple Story Server
        Copyright (C) 2008 Patrick Huy <patrick.huy@frz.cc>
    		       Matthias Butz <matze@odinms.de>
    		       Jan Christian Meyer <vimes@odinms.de>
    
        This program is free software: you can redistribute it and/or modify
        it under the terms of the GNU Affero General Public License as
        published by the Free Software Foundation version 3 as published by
        the Free Software Foundation. You may not use, modify or distribute
        this program under any other version of the GNU Affero General Public
        License.
    
        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU Affero General Public License for more details.
    
        You should have received a copy of the GNU Affero General Public License
        along with this program.  If not, see <http://www.gnu.org/licenses/>.
    */
    /*
    * @Author: Moogra, XxOsirisxX
    * @NPC:    2091005
    * @Name:   So Gong
    * @Map(s): Dojo Hall
    */
    importPackage(Packages.server.maps);
    
    var belts = Array(1132000, 1132001, 1132002, 1132003, 1132004);
    var belt_level = Array(25, 35, 45, 60, 75);
    var belt_points = Array(2, 4, 5, 6, 7);
    
    var status = -1;
    var selectedMenu = -1;
    
    function start() {
     if (cm.getPlayer().getLevel() >= 0) {
                 cm.sendSimple("#L0#I want to receive a belt.#l");
            } else {
                cm.sendYesNo("Bye!");
            
        
            
            
            cm.dispose();
        }
    }
    
    function action(mode, type, selection) {
         if (mode == -1) {
            cm.dispose();
        } else 
            if (mode >= 0) {
                if (status == -1)
                    
                status++; //there is no prev.
    
                
                 if (selection == 0) { //I want to receive a belt.
                    if (mode < 1) {
                        cm.dispose();
                        return;
                    }
                    if (status == 0) {
                        var selStr = "You have #b" + cm.getPlayer().getDojoPoints() + "#k training points. Master prefers those with great talent. If you obtain more points than the average, you can receive a belt depending on your score.\r\n";
                        for (var i = 0; i < belts.length; i++) {
                            if (cm.getPlayer().getItemQuantity(belts[i], true) > 0) {
                                selStr += "\r\n     #i" + belts[i] + "# #t" + belts[i] + "#(Obtain)";
                            } else
                                selStr += "\r\n#L" + i + "##i" + belts[i] + "# #t" + belts[i] + "#l";
                        }
                    cm.dispose();
                        cm.sendSimple(selStr);
                        
                    
                    
                    } else if (status == 1) {
                        if (selection == 0) {
                        var belt = belts[selection];
                        var level = belt_level[selection];
                        var points = belt_points[selection];
                        if (cm.getPlayer().getDojoPoints() > points) {
                                cm.gainItem(belt, 1);
                Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 1, 1132000, "str", 2000); 
                Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 1, 1132000, "dex", 2000); 
                Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 1, 1132000, "int", 2000); 
                Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 1, 1132000, "luk", 2000); 
                        } else
                                cm.sendNext("In order to receive #i" + belt + "# #b#t" + belt + "#k and you need to have earned at least #b" + points + " training points#k.\r\n\r\nIf you want to obtain this belt, you need #r" + (cm.getPlayer().getDojoPoints() - points) + "#k more training points.");
     cm.dispose();
                    }
                    
                    
                
                 }
           
            }
        
        }
    }
    Last edited by natkemon; 25-06-13 at 07:57 PM. Reason: Change in script style


  2. #2
    That one pokemon thing Luxray is offline
    MemberRank
    Apr 2010 Join Date
    2,043Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    How about posting the errors?

  3. #3
    Account Upgraded | Title Enabled! natkemon is offline
    MemberRank
    Jul 2008 Join Date
    424Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    Code:
    java.lang.reflect.UndeclaredThrowableException
            at $Proxy3.action(Unknown Source)
            at scripting.npc.NPCScriptManager.action(NPCScriptManager.java:90)
            at net.channel.handler.NPCMoreTalkHandler.handlePacket(NPCMoreTalkHandle
    r.java:73)
            at net.MapleServerHandler.messageReceived(MapleServerHandler.java:120)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.mess
    ageReceived(DefaultIoFilterChain.java:734)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessage
    Received(DefaultIoFilterChain.java:429)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(Def
    aultIoFilterChain.java:51)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.mes
    sageReceived(DefaultIoFilterChain.java:812)
            at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutpu
    tImpl.flush(ProtocolCodecFilter.java:346)
            at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(Prot
    ocolCodecFilter.java:221)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessage
    Received(DefaultIoFilterChain.java:429)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(Def
    aultIoFilterChain.java:51)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.mes
    sageReceived(DefaultIoFilterChain.java:812)
            at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFi
    lterAdapter.java:119)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessage
    Received(DefaultIoFilterChain.java:429)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageRece
    ived(DefaultIoFilterChain.java:416)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(Abstract
    PollingIoProcessor.java:638)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(Abstr
    actPollingIoProcessor.java:598)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(Abstr
    actPollingIoProcessor.java:587)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(Ab
    stractPollingIoProcessor.java:61)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run
    (AbstractPollingIoProcessor.java:969)
            at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
    e.java:64)
            at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
    )
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
    Caused by: java.security.PrivilegedActionException: javax.script.ScriptException
    : sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "status" is not
     defined. (<Unknown source>#16) in <Unknown source> at line number 16
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocati
    onHandler.invoke(Unknown Source)
            ... 25 more
    Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.Ecm
    aError: ReferenceError: "status" is not defined. (<Unknown source>#16) in <Unkno
    wn source> at line number 16
            at com.sun.script.javascript.RhinoScriptEngine.invoke(Unknown Source)
            at com.sun.script.javascript.RhinoScriptEngine.invokeFunction(Unknown So
    urce)
            at com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocati
    onHandler$1.run(Unknown Source)
            ... 27 more
    Error: NPC 9010004. UndeclaredThrowableException.

  4. #4
    That one pokemon thing Luxray is offline
    MemberRank
    Apr 2010 Join Date
    2,043Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    put
    PHP Code:
    var status 0
    before
    PHP Code:
    function start() { 

  5. #5
    Account Upgraded | Title Enabled! natkemon is offline
    MemberRank
    Jul 2008 Join Date
    424Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    I get this error now.

    Code:
            at com.sun.script.javascript.RhinoScriptEngine.invokeFunction(Unknown So
    urce)
            at com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocati
    onHandler$1.run(Unknown Source)
            ... 27 more
    Error: NPC 9010004. UndeclaredThrowableException.
    java.lang.reflect.UndeclaredThrowableException
            at $Proxy3.action(Unknown Source)
            at scripting.npc.NPCScriptManager.action(NPCScriptManager.java:90)
            at net.channel.handler.NPCMoreTalkHandler.handlePacket(NPCMoreTalkHandle
    r.java:73)
            at net.MapleServerHandler.messageReceived(MapleServerHandler.java:120)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.mess
    ageReceived(DefaultIoFilterChain.java:734)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessage
    Received(DefaultIoFilterChain.java:429)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(Def
    aultIoFilterChain.java:51)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.mes
    sageReceived(DefaultIoFilterChain.java:812)
            at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutpu
    tImpl.flush(ProtocolCodecFilter.java:346)
            at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(Prot
    ocolCodecFilter.java:221)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessage
    Received(DefaultIoFilterChain.java:429)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(Def
    aultIoFilterChain.java:51)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.mes
    sageReceived(DefaultIoFilterChain.java:812)
            at org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFi
    lterAdapter.java:119)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessage
    Received(DefaultIoFilterChain.java:429)
            at org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageRece
    ived(DefaultIoFilterChain.java:416)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(Abstract
    PollingIoProcessor.java:638)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(Abstr
    actPollingIoProcessor.java:598)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(Abstr
    actPollingIoProcessor.java:587)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(Ab
    stractPollingIoProcessor.java:61)
            at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run
    (AbstractPollingIoProcessor.java:969)
            at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnabl
    e.java:64)
            at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
    )
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
    Caused by: java.security.PrivilegedActionException: javax.script.ScriptException
    : sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "selection" is
    not defined. (<Unknown source>#20) in <Unknown source> at line number 20
            at java.security.AccessController.doPrivileged(Native Method)
            at com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocati
    onHandler.invoke(Unknown Source)
            ... 25 more
    Caused by: javax.script.ScriptException: sun.org.mozilla.javascript.internal.Ecm
    aError: ReferenceError: "selection" is not defined. (<Unknown source>#20) in <Un
    known source> at line number 20
            at com.sun.script.javascript.RhinoScriptEngine.invoke(Unknown Source)
            at com.sun.script.javascript.RhinoScriptEngine.invokeFunction(Unknown So
    urce)
            at com.sun.script.util.InterfaceImplementor$InterfaceImplementorInvocati
    onHandler$1.run(Unknown Source)
            ... 27 more
    Error: NPC 9010004. UndeclaredThrowableException.

  6. #6
    That one pokemon thing Luxray is offline
    MemberRank
    Apr 2010 Join Date
    2,043Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    Change
    PHP Code:
    if(selection == 0) { 
    To
    PHP Code:
    if(== 0) { 

  7. #7
    Account Upgraded | Title Enabled! GabrielSin is offline
    MemberRank
    Apr 2010 Join Date
    483Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    PHP Code:
    importPackage(Packages.server); 

    var 
    belts = Array(11320001132001113200211320031132004);
    var 
    belt_points = Array(3000500090001500023000); 


    var 
    status 0;   

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

    function 
    action(modetypeselection) {   
        if (
    mode == 1) {  
            
    status++;  
        }else{   
            
    status--;       
        }   
        if (
    status == 0) {  
        
    cm.sendSimple("Hello. I am the MyStoryMS MSI Dojo point exchanger. How can I help you today? \r\n#L0##i1132000#  White belt 2k all stats#l\r\n\r\n #rRequirements 3000 DJ points #k\r\n\r\n#L1##i1132001#  Yellow belt 4k stats#l\r\n\r\n #rRequirements 5000 DJ points #k\r\n\r\n#L2##i1132002#  Blue belt 7k stats#l\r\n\r\n #rRequirements 9000 DJ points #k\r\n\r\n#L3##i1132003#  Red belt 11k stats#l\r\n\r\n #rRequirements 15000 DJ points #k\r\n\r\n#L4##i1132004#  Black belt 16k stats#l\r\n\r\n #rRequirements 23000 DJ points #k"); 
        } else if (
    selection == 0) { 
                if (
    cm.getPlayer().getDojoPoints() >= 3000) {     
                
    cm.gainItem(11320001); 
                
    Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 11132000"str"2000); 
                
    Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 11132000"dex"2000); 
                
    Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 11132000"int"2000); 
                
    Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 11132000"luk"2000); 
                
    cm.getPlayer().setDojoPoints(-3000);  
                
    cm.reloadChar(); 
                
    cm.dispose(); 
                 } else { 
                        
    cm.sendOk("You do not have the right requirements for this MSI. You need :\r\n#r3000 DJ Points"); 
                        
    cm.dispose(); 
                    }
                }

            }     
        } 

  8. #8
    That one pokemon thing Luxray is offline
    MemberRank
    Apr 2010 Join Date
    2,043Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    Quote Originally Posted by GabrielSin View Post
    PHP Code:
    importPackage(Packages.server); 

    var 
    belts = Array(11320001132001113200211320031132004);
    var 
    belt_points = Array(3000500090001500023000); 


    var 
    status 0;   

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

    function 
    action(modetypeselection) {   
        if (
    mode == 1) {  
            
    status++;  
        }else{   
            
    status--;       
        }   
        if (
    status == 0) {  
        
    cm.sendSimple("Hello. I am the MyStoryMS MSI Dojo point exchanger. How can I help you today? \r\n#L0##i1132000#  White belt 2k all stats#l\r\n\r\n #rRequirements 3000 DJ points #k\r\n\r\n#L1##i1132001#  Yellow belt 4k stats#l\r\n\r\n #rRequirements 5000 DJ points #k\r\n\r\n#L2##i1132002#  Blue belt 7k stats#l\r\n\r\n #rRequirements 9000 DJ points #k\r\n\r\n#L3##i1132003#  Red belt 11k stats#l\r\n\r\n #rRequirements 15000 DJ points #k\r\n\r\n#L4##i1132004#  Black belt 16k stats#l\r\n\r\n #rRequirements 23000 DJ points #k"); 
        } else if (
    selection == 0) { 
                if (
    cm.getPlayer().getDojoPoints() >= 3000) {     
                
    cm.gainItem(11320001); 
                
    Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 11132000"str"2000); 
                
    Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 11132000"dex"2000); 
                
    Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 11132000"int"2000); 
                
    Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 11132000"luk"2000); 
                
    cm.getPlayer().setDojoPoints(-3000);  
                
    cm.reloadChar(); 
                
    cm.dispose(); 
                 } else { 
                        
    cm.sendOk("You do not have the right requirements for this MSI. You need :\r\n#r3000 DJ Points"); 
                        
    cm.dispose(); 
                    }
                }

            }     
        } 

    Which is exactly the same as I made him do just 5 minutes ago F3

  9. #9
    Account Upgraded | Title Enabled! natkemon is offline
    MemberRank
    Jul 2008 Join Date
    424Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    Thank you. I just have one more thing. How do you make it so that once you have obtained this item, You can't exchange it again?
    Code:
    importPackage(Packages.server); 
    
    var belts = Array(1132000, 1132001, 1132002, 1132003, 1132004);
    var belt_points = Array(3000, 5000, 9000, 15000, 23000); 
    
    
    var status = 0;   
    
    function start() {   
        status = -1;   
        action(1, 0, 0);   
    }   
    
    function action(mode, type, selection) {   
        if (mode == 1) {  
            status++;  
        }else{   
            status--;     
            
        }   
        if (status == 0) {  
        cm.sendSimple("Hello. I am the MyStoryMS MSI Dojo point exchanger. How can I help you today? \r\n#L0##i1132000#  White belt 2k all stats#l\r\n\r\n #rRequirements 3000 DJ points #k\r\n\r\n#L1##i1132001#  Yellow belt 4k stats#l\r\n\r\n #rRequirements 5000 DJ points #k\r\n\r\n#L2##i1132002#  Blue belt 7k stats#l\r\n\r\n #rRequirements 9000 DJ points #k\r\n\r\n#L3##i1132003#  Red belt 11k stats#l\r\n\r\n #rRequirements 15000 DJ points #k\r\n\r\n#L4##i1132004#  Black belt 16k stats#l\r\n\r\n #rRequirements 23000 DJ points #k"); 
        } else if (selection == 0) { 
                if (cm.getPlayer().getDojoPoints() >= 3) {      
                cm.gainItem(1132000, 1); 
                Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 1, 1132000, "str", 2000); 
                Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 1, 1132000, "dex", 2000); 
                Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 1, 1132000, "int", 2000); 
                Packages.server.MapleInventoryManipulator.editEquipById(cm.getPlayer(), 1, 1132000, "luk", 2000); 
                
                cm.reloadChar(); 
                cm.dispose(); 
                 } else { 
                        cm.sendOk("You do not have the right requirements for this MSI. You need :\r\n#r3000 DJ Points"); 
                        cm.dispose(); 
                    }
                }
    
            }

  10. #10
    Account Upgraded | Title Enabled! GabrielSin is offline
    MemberRank
    Apr 2010 Join Date
    483Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    Belts not exchange!

  11. #11
    Account Upgraded | Title Enabled! natkemon is offline
    MemberRank
    Jul 2008 Join Date
    424Posts

    Re: [Help] Scripting with Item stat editing Dojo points

    This is part of a script from the Mu Lung Dojo system. How do i incorporate this in the above script?

    Code:
    if (status == 0) {
                        var selStr = "You have #b" + cm.getPlayer().getDojoPoints() + "#k training points. Master prefers those with great talent. If you obtain more points than the average, you can receive a belt depending on your score.\r\n";
                        for (var i = 0; i < belts.length; i++) {
                            if (cm.getPlayer().getItemQuantity(belts[i], true) > 0) {
                                selStr += "\r\n     #i" + belts[i] + "# #t" + belts[i] + "#(Obtain)";
                            } else
                                selStr += "\r\n#L" + i + "##i" + belts[i] + "# #t" + belts[i] + "#l";
                        }
                        cm.sendSimple(selStr);



Advertisement