Make any NPC scriptable:

Results 1 to 11 of 11
  1. #1
    Apprentice verizon is offline
    MemberRank
    Jul 2012 Join Date
    22Posts

    Make any NPC scriptable:

    Tried to add this feature in to the MapleBlade source I'm using :s but I'm confused on where I add "SET_NPC_SCRIPTABLE(0x107), " because on MapleBlade, the SendOpCodes are typed like "LOGIN_STATUS, //0x00 and SEND_LINK, //0x01." but doesn't "//" mean "ignore/comment"??

    I've tried reading all the threads about set_npc_scriptable that I could find and I'm still confused. I still get some type of error that says something along the lines of "Check your SendOpCodes, SET_NPC_SCRIPTABLE not found."

    Any type of help would be gladly accepted and I really hope someone replies this time T.T..



    My SendOpCode without the SET_NPC_SCRIPTABLE. I just removed it so I don't mess anything up on accident.
    Spoiler:
    /*
    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/>.
    */
    package net;

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Properties;

    public enum SendOpcode implements WritableIntValueHolder {

    LOGIN_STATUS, //0x00
    SEND_LINK, //0x01
    SERVERSTATUS, //0x03
    GENDER_DONE, //0x04
    TOS, //0x05
    PIN_OPERATION, //0x06
    PIN_ASSIGNED, //0x07
    ALL_CHARLIST, //0x08
    SERVERLIST, //0x0A
    CHARLIST, //0x0B
    SERVER_IP, //0x0C
    CHAR_NAME_RESPONSE, //0x0D
    ADD_NEW_CHAR_ENTRY, //0x0E
    DELETE_CHAR_RESPONSE, //0x0F
    CHANGE_CHANNEL, //0x10
    PING, //0x11
    CHANNEL_SELECTED, //0x14
    RELOG_RESPONSE, //0x16
    MODIFY_INVENTORY_ITEM, //0x1A
    UPDATE_INVENTORY_SLOTS, //0x1B
    UPDATE_STATS, //0x1C
    GIVE_BUFF, //0x1D
    CANCEL_BUFF, //0x1E
    UPDATE_SKILLS, //0x21
    FAME_RESPONSE, //0x23
    SHOW_STATUS_INFO, //0x24
    SHOW_NOTES, //0x26
    TROCK_LOCATIONS, //0x27
    LIE_DETECTOR, //0x28
    REPORT_RESPONSE, //0x2A
    ENABLE_REPORT, //0x2C
    UPDATE_MOUNT, //0x2D
    SHOW_QUEST_COMPLETION, //0x2E
    SEND_TITLE_BOX, //0x2F
    USE_SKILL_BOOK, //0x30
    SHOW_EQUIP_EFFECT, //0x31
    FINISH_SORT, //0x32
    FINISH_SORT2, //0x33
    REPORTREPLY, //0x34
    MESO_LIMIT, //0x36
    GENDER, //0x37
    BBS_OPERATION, //0x38
    CHAR_INFO, //0x3A
    PARTY_OPERATION, //0x3B
    BUDDYLIST, //0x3C
    GUILD_OPERATION, //0x3E
    ALLIANCE_OPERATION, //0x3F
    SPAWN_PORTAL, //0x40
    SERVERMESSAGE, //0x41
    FAMILY_ACTION,//0x45
    YELLOW_TIP, //0x4A
    PLAYER_NPC, //0x4E
    MONSTERBOOK_ADD, //0x4F
    MONSTER_BOOK_CHANGE_COVER, //0x50
    ENERGY, //0x55
    SHOW_PEDIGREE, //0x57
    OPEN_FAMILY, //0x58
    FAMILY_MESSAGE, //0x59
    FAMILY_INVITE, //0x5A
    FAMILY_MESSAGE2, //0x5B
    FAMILY_SENIOR_MESSAGE, //0x5C
    FAMILY_GAIN_REP, //0x5E
    LOAD_FAMILY, //0x5D
    FAMILY_USE_REQUEST, //0x61
    CREATE_CYGNUS, //0x62
    BLANK_MESSAGE, //0x65
    AVATAR_MEGA, //0x67
    NAME_CHANGE_MESSAGE, //0x69
    UNKNOWN_MESSAGE, //0x6B
    GM_POLICE, //0x6C
    SILVER_BOX, //0x6D
    UNKNOWN_MESSAGE2, //0x6E
    SKILL_MACRO, //0x71
    WARP_TO_MAP, //0x72
    MTS_OPEN, //0x73
    CS_OPEN, //0x74
    RESET_SCREEN, //0x76
    CS_BLOCKED, //0x78
    FORCED_MAP_EQUIP, //0x79
    MULTICHAT, //0x7A
    WHISPER, //0x7B
    SPOUSE_CHAT, //0x7C
    BOSS_ENV, //0x7E
    BLOCK_PORTAL, //0x7F
    BLOCK_PORTAL_SHOP, //0x80
    MAP_EFFECT, //0x82
    GM_PACKET, //0x84
    OX_QUIZ, //0x85
    GMEVENT_INSTRUCTIONS, //0x86
    CLOCK, //0x87
    BOAT_EFFECT, //0x88
    STOP_CLOCK, //0x8E
    ARIANT_SCOREBOARD, //0x8F
    SPAWN_PLAYER, //0x91
    REMOVE_PLAYER_FROM_MAP, //0x92
    CHATTEXT, //0x93
    CHALKBOARD, //0x95
    UPDATE_CHAR_BOX, //0x96
    SHOW_SCROLL_EFFECT, //0x98
    SPAWN_PET, //0x99
    MOVE_PET, //0x9B
    PET_CHAT, //0x9C
    PET_NAMECHANGE, //0x9D
    PET_SHOW, //0x9E
    PET_COMMAND, //0x9F
    SPAWN_SPECIAL_MAPOBJECT, //0xA0
    REMOVE_SPECIAL_MAPOBJECT, //0xA1
    MOVE_SUMMON, //0xA2
    SUMMON_ATTACK, //0xA3
    DAMAGE_SUMMON, //0xA4
    SUMMON_SKILL, //0xA5
    MOVE_PLAYER, //0xA7
    CLOSE_RANGE_ATTACK, //0xA8
    RANGED_ATTACK, //0xA9
    MAGIC_ATTACK, //0xAA
    SKILL_EFFECT, //0xAC
    CANCEL_SKILL_EFFECT, //0xAD
    DAMAGE_PLAYER, //0xAE
    FACIAL_EXPRESSION, //0xAF
    SHOW_ITEM_EFFECT, //0xB1
    SHOW_CHAIR, //0xB2
    UPDATE_CHAR_LOOK, //0xB3
    SHOW_FOREIGN_EFFECT, //0xB4
    GIVE_FOREIGN_BUFF, //0xB5
    CANCEL_FOREIGN_BUFF, //0xB6
    UPDATE_PARTYMEMBER_HP, //0xB7
    CANCEL_CHAIR, //0xBB
    SHOW_ITEM_GAIN_INCHAT, //0xBC
    DOJO_WARP_UP, //0xBD
    LUCKSACK_PASS, //0xBE
    LUCKSACK_FAIL, //0xBF
    MESO_BAG_MESSAGE, //0xC0
    UPDATE_QUEST_INFO, //0xC1
    PLAYER_HINT, //0xC4
    KOREAN_EVENT, //0xC9
    CYGNUS_INTRO_LOCK, //0xCA
    CYGNUS_INTRO_DISABLE_UI, //0xCB
    CYGNUS_CHAR_CREATED, //0xCC
    COOLDOWN, //0xCE
    SPAWN_MONSTER, //0xD0
    KILL_MONSTER, //0xD1
    SPAWN_MONSTER_CONTROL, //0xD2
    MOVE_MONSTER, //0xD3
    MOVE_MONSTER_RESPONSE, //0xD4
    APPLY_MONSTER_STATUS, //0xD6
    CANCEL_MONSTER_STATUS, //0xD7
    DAMAGE_MONSTER, //0xDA
    ARIANT_THING, //0xDD
    SHOW_MONSTER_HP, //0xDE
    SHOW_DRAGGED, //0xDF
    SHOW_MAGNET, //0xE1
    CATCH_MONSTER, //0xE2
    SPAWN_NPC, //0xE3
    REMOVE_NPC, //0xE4
    SPAWN_NPC_REQUEST_CONTROLLER, //0xE5
    NPC_ACTION, //0xE6
    SPAWN_HIRED_MERCHANT, //0xEB
    DESTROY_HIRED_MERCHANT, //0xEC
    UPDATE_HIRED_MERCHANT, //0xED
    DROP_ITEM_FROM_MAPOBJECT, //0xEE
    REMOVE_ITEM_FROM_MAP, //0xEF
    KITE_MESSAGE, //0xF0
    KITE, //0xF1
    SPAWN_MIST, //0xF3
    REMOVE_MIST, //0xF4
    SPAWN_DOOR, //0xF5
    REMOVE_DOOR, //0xF6
    REACTOR_HIT, //0xF7
    REACTOR_SPAWN, //0xF9
    REACTOR_DESTROY, //0xFA
    ROLL_SNOWBALL, //0xFB
    HIT_SNOWBALL, //0xFC
    SNOWBALL_MESSAGE, //0xFD
    LEFT_KNOCK_BACK, //0xFE
    UNABLE_TO_CONNECT, //0x100
    MONSTER_CARNIVAL_START, //0x103
    MONSTER_CARNIVAL_OBTAINED_CP, //0x104
    MONSTER_CARNIVAL_PARTY_CP, //0x105
    MONSTER_CARNIVAL_SUMMON, //0x106
    MONSTER_CARNIVAL_DIED, //0x108
    ARIANT_PQ_START, //0x10B
    ZAKUM_SHRINE, //0x10D
    NPC_TALK, //0x10E
    OPEN_NPC_SHOP, //0x10F
    CONFIRM_SHOP_TRANSACTION, //0x110
    OPEN_STORAGE, //0x113
    MESSENGER, //0x117
    PLAYER_INTERACTION, //0x118
    DUEY, //0x120
    CS_UPDATE, //0x122
    CS_OPERATION, //0x123
    KEYMAP, //0x12A
    AUTO_HP_POT, //0x12B
    AUTO_MP_POT, //0x12C
    SEND_TV, //0x130
    REMOVE_TV, //0x131
    ENABLE_TV, //0x132
    MTS_OPERATION2, //0x136
    MTS_OPERATION, //0x137
    VICIOUS_HAMMER, //0x13D
    ENABLE_RECOMMENDED,
    SEND_RECOMMENDED,
    QUICK_SLOT,
    CATCH_ARIANT,
    CATCH_MOUNT,
    HPQ_MOON,
    ARIANT_SCORE,
    ARAN_COMBO,
    HIRED_MERCHANT_BOX; //0xE1



    private int code = -2;

    public void setValue(int code) {
    this.code = code;
    }

    @Override
    public int getValue() {
    return code;
    }

    public static Properties getDefaultProperties() throws FileNotFoundException, IOException {
    Properties props = new Properties();
    FileInputStream fileInputStream = new FileInputStream(System.getProperty("sendops"));
    props.load(fileInputStream);
    fileInputStream.close();
    return props;
    }

    static {
    try {
    ExternalCodeTableGetter.populateValues(getDefaultProperties(), values(), true);
    } catch (IOException e) {
    throw new RuntimeException("Failed to load sendops", e);
    }
    }
    }


  2. #2
    I'm overrated. Fraysa is offline
    MemberRank
    Apr 2008 Join Date
    4,891Posts

    Re: Make any NPC scriptable:

    The opcodes are without values because the values are appended from the sendopcodes properties file when the server loads. Just add it as a line there, and also add the value on the send opcodes properties file. Good luck!

  3. #3
    Apprentice verizon is offline
    MemberRank
    Jul 2012 Join Date
    22Posts

    Re: Make any NPC scriptable:

    sorry for the delayed reply, I've been trying to fiddle around with it before coming right back to ask another question ):

    I added it to sendops.properties (I added it as SET_NPC_SCRIPTABLE = 263)
    Spoiler:
    PHP Code:
    LOGIN_STATUS 0x00 
    SEND_LINK 
    0x01 
    SERVERSTATUS 
    0x03 
    GENDER_DONE 
    0x04 
    TOS 
    0x05 
    PIN_OPERATION 
    0x06 
    PIN_ASSIGNED 
    0x07 
    ALL_CHARLIST 
    0x08 
    SERVERLIST 
    0x0A 
    CHARLIST 
    0x0B 
    SERVER_IP 
    0x0C 
    PIC_ASSIGNED 
    0x1E 
    CHAR_NAME_RESPONSE 
    0x0D 
    ADD_NEW_CHAR_ENTRY 
    0x0E 
    DELETE_CHAR_RESPONSE 
    0x0F 

    SET_NPC_SCRIPTABLE 
    263

    CHANGE_CHANNEL 
    0x10 
    PING 
    0x11
    CHANNEL_SELECTED 
    0x14 
    RELOG_RESPONSE 
    0xFFFFF
    MODIFY_INVENTORY_ITEM 
    0x1D 
    ENABLE_RECOMMENDED 
    0xFFFFF  
    SEND_RECOMMENDED 
    0x1B
    UPDATE_INVENTORY_SLOTS 
    0x1E 
    UPDATE_STATS 
    0x1F 
    GIVE_BUFF 
    0x20 
    CANCEL_BUFF 
    0x21 
    UNKNOWN 
    0x1F 

    UPDATE_SKILLS 
    0x24 
    FAME_RESPONSE 
    0x26 
    SHOW_STATUS_INFO 
    0x27 
    SHOW_NOTES 
    0x28
    TROCK_LOCATIONS 
    0x29
    LIE_DETECTOR 
    0x2A 
    REPORT_RESPONSE 
    0x2B 
    ENABLE_REPORT 
    0x2F 
    UPDATE_MOUNT 
    0x30
    SHOW_QUEST_COMPLETION 
    0x31 
    SEND_TITLE_BOX 
    0x2F 

    USE_SKILL_BOOK 
    0x30 
    SHOW_EQUIP_EFFECT 
    0x85 
    FINISH_SORT 
    0x34 
    FINISH_SORT2 
    0x35 
    EARN_TITLE_MESSAGE 
    0x7A
    REPORTREPLY 
    0x35 
    MESO_LIMIT 
    0x36
    GENDER 
    0x3A 
    BBS_OPERATION 
    0x3B
    CHAR_INFO 
    0x3D 
    PARTY_OPERATION 
    0x3E 
    BUDDYLIST 
    0x3F 
    GUILD_OPERATION 
    0x41
    ALLIANCE_OPERATION 
    0x42 

    SPAWN_PORTAL 
    0x41 
    SERVERMESSAGE 
    0x44 
    UNKNOWN 
    0x44 
    FAMILY_ACTION 
    0x45 
    YELLOW_TIP 
    0x4D 
    PLAYER_NPC 
    0x51
    MONSTERBOOK_ADD 
    0x53

    MONSTER_BOOK_CHANGE_COVER 
    0x54
    ENERGY 
    0x55 
    SHOW_PEDIGREE 
    0x57 
    OPEN_FAMILY 
    0x58 
    FAMILY_MESSAGE 
    0x59 
    FAMILY_INVITE 
    0x5A 
    FAMILY_MESSAGE2 
    0x5B 
    FAMILY_SENIOR_MESSAGE 
    0x5C 
    FAMILY_GAIN_REP 
    0x5E 
    LOAD_FAMILY 
    0x64 

    FAMILY_USE_REQUEST 
    0x61 
    CREATE_CYGNUS 
    0x62 
    BLANK_MESSAGE 
    0x65 
    AVATAR_MEGA 
    0x6F 
    NAME_CHANGE_MESSAGE 
    0x69 
    UNKNOWN_MESSAGE 
    0x6B 
    GM_POLICE 
    0x6C 
    SILVER_BOX 
    0x6D 
    UNKNOWN_MESSAGE2 
    0x6E 

    SKILL_MACRO 
    0x7C
    WARP_TO_MAP 
    0x7D 
    MTS_OPEN 
    0x73 
    CS_OPEN 
    0x7F
    RESET_SCREEN 
    0x76  
    CS_BLOCKED 
    0x78 
    FORCED_MAP_EQUIP 
    0x85 
    MULTICHAT 
    0x86
    WHISPER 
    0x87 
    SPOUSE_CHAT 
    0x88 
    BOSS_ENV 
    0x8A
    BLOCK_PORTAL 
    0x7F 

    BLOCK_PORTAL_SHOP 
    0x80 
    MAP_EFFECT 
    0x8F 
    GM_PACKET 
    0x90 
    OX_QUIZ 
    0x91
    GMEVENT_INSTRUCTIONS 
    0x92
    CLOCK 
    0x93
    BOAT_EFFECT 
    0x94 
    STOP_CLOCK 
    0x95
    ARIANT_SCOREBOARD 
    0x96 

    SPAWN_PLAYER 
    0xA0 
    REMOVE_PLAYER_FROM_MAP 
    0xA1 
    CHATTEXT 
    0xA2 
    CHALKBOARD 
    0xA4 
    UPDATE_CHAR_BOX 
    0x95 
    SHOW_SCROLL_EFFECT 
    0xA7  
    SPAWN_PET 
    0xA8 
    MOVE_PET 
    0xAA 
    PET_CHAT 
    0xAB 
    PET_NAMECHANGE 
    0xAC 
    PET_SHOW 
    0xAD 
    PET_COMMAND 
    0xAE 

    SPAWN_SPECIAL_MAPOBJECT 
    0xAF 
    REMOVE_SPECIAL_MAPOBJECT 
    0xB0
    MOVE_SUMMON 
    0xB1  
    SUMMON_ATTACK 
    0xB2  
    DAMAGE_SUMMON 
    0xB3  
    SUMMON_SKILL 
    0xB4  
    MOVE_PLAYER 
    0xB9 
    CLOSE_RANGE_ATTACK 
    0xBA 
    RANGED_ATTACK 
    0xBB  
    MAGIC_ATTACK 
    0xBC 
    SKILL_EFFECT 
    0xBE
    CANCEL_SKILL_EFFECT 
    0xBF 
    DAMAGE_PLAYER 
    0xC0  
    FACIAL_EXPRESSION 
    0xC1 

    SHOW_ITEM_EFFECT 
    0xB0 
    SHOW_CHAIR 
    0xC4 
    UPDATE_CHAR_LOOK 
    0xC5 
    SHOW_FOREIGN_EFFECT 
    0xC6 
    GIVE_FOREIGN_BUFF 
    0xC7
    CANCEL_FOREIGN_BUFF 
    0xC8
    UPDATE_PARTYMEMBER_HP 
    0xC9 
    CANCEL_CHAIR 
    0xCD 
    SHOW_ITEM_GAIN_INCHAT 
    0xCE  
    DOJO_WARP_UP 
    0xCF 
    LUCKSACK_PASS 
    0xD0
    LUCKSACK_FAIL 
    0xD1 

    MESO_BAG_MESSAGE 
    0xD2
    UPDATE_QUEST_INFO 
    0xD3 
    PLAYER_HINT 
    0xC4 
    KOREAN_EVENT 
    0xC9 
    CYGNUS_INTRO_LOCK 
    0xDD 
    CYGNUS_INTRO_DISABLE_UI 
    0xDE 
    CYGNUS_CHAR_CREATED 
    0xCC 
    COOLDOWN 
    0xEA

    SPAWN_MONSTER 
    0xEC 
    KILL_MONSTER 
    0xED 
    SPAWN_MONSTER_CONTROL 
    0xEE 
    MOVE_MONSTER 
    0xEF 
    MOVE_MONSTER_RESPONSE 
    0xF0 
    APPLY_MONSTER_STATUS 
    0xF2 
    CANCEL_MONSTER_STATUS 
    0xF3 
    DAMAGE_MONSTER 
    0xDA 
    ARIANT_THING 
    0xDD 
    SHOW_MONSTER_HP 
    0xFA 
    SHOW_DRAGGED 
    0xDF 

    SHOW_MAGNET 
    0x9F
    CATCH_MONSTER 
    0x100 
    SPAWN_NPC 
    0x101 
    REMOVE_NPC 
    0x102 
    SPAWN_NPC_REQUEST_CONTROLLER 
    0x103 
    NPC_ACTION 
    0x104 
    SPAWN_HIRED_MERCHANT 
    0x109
    DESTROY_HIRED_MERCHANT 
    0x10A 
    UPDATE_HIRED_MERCHANT 
    0x10B
    DROP_ITEM_FROM_MAPOBJECT 
    0x10C 
    REMOVE_ITEM_FROM_MAP 
    0x10D

    KITE_MESSAGE 
    0xF0 
    KITE 
    0xF1 
    SPAWN_MIST 
    0x111  
    REMOVE_MIST 
    0x112  
    SPAWN_DOOR 
    0x113  
    REMOVE_DOOR 
    0x114  
    REACTOR_HIT 
    0x115 
    REACTOR_SPAWN 
    0x117
    REACTOR_DESTROY 
    0x118
    ROLL_SNOWBALL 
    0xFB 
    HIT_SNOWBALL 
    0xFC 
    SNOWBALL_MESSAGE 
    0xFD 
    LEFT_KNOCK_BACK 
    0xFE 

    UNABLE_TO_CONNECT 
    0x100 
    MONSTER_CARNIVAL_START 
    0x103 
    MONSTER_CARNIVAL_OBTAINED_CP 
    0x104 
    MONSTER_CARNIVAL_PARTY_CP 
    0x105 
    MONSTER_CARNIVAL_SUMMON 
    0x106 
    MONSTER_CARNIVAL_DIED 
    0x108 
    ARIANT_PQ_START 
    0x10B 
    ZAKUM_SHRINE 
    0x10D 
    NPC_TALK 
    0x130 
    OPEN_NPC_SHOP 
    0x131 

    CONFIRM_SHOP_TRANSACTION 
    0x132
    OPEN_STORAGE 
    0x135
    MESSENGER 
    0x139  
    PLAYER_INTERACTION 
    0x13A  

    DUEY 
    0x120  
    CS_UPDATE 
    0x144  
    CS_OPERATION 
    0x145 
    KEYMAP 
    0x14F 
    AUTO_HP_POT 
    0x12B  
    AUTO_MP_POT 
    0x12C  

    SEND_TV 
    0x155 
    REMOVE_TV 
    0x156 
    ENABLE_TV 
    0x157 
    MTS_OPERATION2 
    0x136 
    MTS_OPERATION 
    0x137 
    VICIOUS_HAMMER 
    0x13D 
    QUICK_SLOT 
    0x9F 
    CATCH_ARIANT 
    0xFF
    CATCH_MOUNT 
    0xFF
    HPQ_MOON 
    0xFF
    ARIANT_SCORE 
    0xFF
    ARAN_COMBO 
    0xE1
    HIRED_MERCHANT_BOX 
    0x32 
    but I still get an error

    By the way, thanks a bunch for your reply.

    Spoiler:
    PHP 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/>.
     */
    package net;

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Properties;

    public 
    enum SendOpcode implements WritableIntValueHolder {

        
    LOGIN_STATUS//0x00
        
    SEND_LINK//0x01
        
    SERVERSTATUS//0x03
        
    GENDER_DONE//0x04
        
    TOS//0x05
        
    PIN_OPERATION//0x06
        
    PIN_ASSIGNED//0x07
        
    ALL_CHARLIST//0x08
        
    SERVERLIST//0x0A
        
    CHARLIST//0x0B
        
    SERVER_IP//0x0C
        
    CHAR_NAME_RESPONSE//0x0D
        
    ADD_NEW_CHAR_ENTRY//0x0E
        
    DELETE_CHAR_RESPONSE//0x0F
        
    CHANGE_CHANNEL//0x10
        
    PING//0x11
        
    CHANNEL_SELECTED//0x14
        
    RELOG_RESPONSE//0x16
        
    MODIFY_INVENTORY_ITEM//0x1A
        
    UPDATE_INVENTORY_SLOTS//0x1B
        
    UPDATE_STATS//0x1C
        
    GIVE_BUFF//0x1D
        
    CANCEL_BUFF//0x1E
        
    UPDATE_SKILLS//0x21
        
    FAME_RESPONSE//0x23
        
    SHOW_STATUS_INFO//0x24
        
    SHOW_NOTES//0x26
        
    TROCK_LOCATIONS//0x27
        
    LIE_DETECTOR//0x28
        
    REPORT_RESPONSE//0x2A
        
    ENABLE_REPORT//0x2C
        
    UPDATE_MOUNT//0x2D
        
    SHOW_QUEST_COMPLETION//0x2E
        
    SEND_TITLE_BOX//0x2F
        
    USE_SKILL_BOOK//0x30
        
    SHOW_EQUIP_EFFECT//0x31
        
    FINISH_SORT//0x32
        
    FINISH_SORT2//0x33
        
    REPORTREPLY//0x34
        
    MESO_LIMIT//0x36
        
    GENDER//0x37
        
    BBS_OPERATION//0x38
        
    CHAR_INFO//0x3A
        
    PARTY_OPERATION//0x3B
        
    BUDDYLIST//0x3C
        
    GUILD_OPERATION//0x3E
        
    ALLIANCE_OPERATION//0x3F
        
    SPAWN_PORTAL//0x40
        
    SERVERMESSAGE//0x41
        
    FAMILY_ACTION,//0x45
        
    YELLOW_TIP//0x4A
        
    PLAYER_NPC//0x4E
        
    MONSTERBOOK_ADD//0x4F
        
    MONSTER_BOOK_CHANGE_COVER//0x50
        
    ENERGY//0x55
        
    SHOW_PEDIGREE//0x57
        
    OPEN_FAMILY//0x58
        
    FAMILY_MESSAGE//0x59
        
    FAMILY_INVITE//0x5A
        
    FAMILY_MESSAGE2//0x5B
        
    FAMILY_SENIOR_MESSAGE//0x5C
        
    FAMILY_GAIN_REP//0x5E
        
    LOAD_FAMILY//0x5D
        
    FAMILY_USE_REQUEST//0x61
        
    CREATE_CYGNUS//0x62
        
    BLANK_MESSAGE//0x65
        
    AVATAR_MEGA//0x67
        
    NAME_CHANGE_MESSAGE//0x69
        
    UNKNOWN_MESSAGE//0x6B
        
    GM_POLICE//0x6C
        
    SILVER_BOX//0x6D
        
    UNKNOWN_MESSAGE2//0x6E
        
    SKILL_MACRO//0x71
        
    WARP_TO_MAP//0x72
        
    MTS_OPEN//0x73
        
    CS_OPEN//0x74
        
    RESET_SCREEN//0x76
        
    CS_BLOCKED//0x78
        
    FORCED_MAP_EQUIP//0x79
        
    MULTICHAT//0x7A
        
    WHISPER//0x7B
        
    SPOUSE_CHAT//0x7C
        
    BOSS_ENV//0x7E
        
    BLOCK_PORTAL//0x7F
        
    BLOCK_PORTAL_SHOP//0x80
        
    MAP_EFFECT//0x82
        
    GM_PACKET//0x84
        
    OX_QUIZ//0x85
        
    GMEVENT_INSTRUCTIONS//0x86
        
    CLOCK//0x87
        
    BOAT_EFFECT//0x88
        
    STOP_CLOCK//0x8E
        
    ARIANT_SCOREBOARD//0x8F
        
    SPAWN_PLAYER//0x91
        
    REMOVE_PLAYER_FROM_MAP//0x92
        
    CHATTEXT//0x93
        
    CHALKBOARD//0x95
        
    UPDATE_CHAR_BOX//0x96
        
    SHOW_SCROLL_EFFECT//0x98
        
    SPAWN_PET//0x99
        
    MOVE_PET//0x9B
        
    PET_CHAT//0x9C
        
    PET_NAMECHANGE//0x9D
        
    PET_SHOW//0x9E
        
    PET_COMMAND//0x9F
        
    SPAWN_SPECIAL_MAPOBJECT//0xA0
        
    REMOVE_SPECIAL_MAPOBJECT//0xA1
        
    MOVE_SUMMON//0xA2
        
    SUMMON_ATTACK//0xA3
        
    DAMAGE_SUMMON//0xA4
        
    SUMMON_SKILL//0xA5
        
    MOVE_PLAYER//0xA7
        
    CLOSE_RANGE_ATTACK//0xA8
        
    RANGED_ATTACK//0xA9
        
    MAGIC_ATTACK//0xAA
        
    SKILL_EFFECT//0xAC
        
    CANCEL_SKILL_EFFECT//0xAD
        
    DAMAGE_PLAYER//0xAE
        
    FACIAL_EXPRESSION//0xAF
        
    SHOW_ITEM_EFFECT//0xB1
        
    SHOW_CHAIR//0xB2
        
    UPDATE_CHAR_LOOK//0xB3
        
    SHOW_FOREIGN_EFFECT//0xB4
        
    GIVE_FOREIGN_BUFF//0xB5
        
    CANCEL_FOREIGN_BUFF//0xB6
        
    UPDATE_PARTYMEMBER_HP//0xB7
        
    CANCEL_CHAIR//0xBB
        
    SHOW_ITEM_GAIN_INCHAT//0xBC
        
    DOJO_WARP_UP//0xBD
        
    LUCKSACK_PASS//0xBE
        
    LUCKSACK_FAIL//0xBF
        
    MESO_BAG_MESSAGE//0xC0
        
    UPDATE_QUEST_INFO//0xC1
        
    PLAYER_HINT//0xC4
        
    KOREAN_EVENT//0xC9
        
    CYGNUS_INTRO_LOCK//0xCA
        
    CYGNUS_INTRO_DISABLE_UI//0xCB
        
    CYGNUS_CHAR_CREATED//0xCC
        
    COOLDOWN//0xCE
        
    SPAWN_MONSTER//0xD0
        
    KILL_MONSTER//0xD1
        
    SPAWN_MONSTER_CONTROL//0xD2
        
    MOVE_MONSTER//0xD3
        
    MOVE_MONSTER_RESPONSE//0xD4
        
    APPLY_MONSTER_STATUS//0xD6
        
    CANCEL_MONSTER_STATUS//0xD7
        
    DAMAGE_MONSTER//0xDA
        
    ARIANT_THING//0xDD
        
    SHOW_MONSTER_HP//0xDE
        
    SHOW_DRAGGED//0xDF
        
    SHOW_MAGNET//0xE1
        
    CATCH_MONSTER//0xE2
        
    SPAWN_NPC//0xE3
        
    REMOVE_NPC//0xE4
        
    SPAWN_NPC_REQUEST_CONTROLLER//0xE5
        
    NPC_ACTION//0xE6
        
    SPAWN_HIRED_MERCHANT//0xEB
        
    DESTROY_HIRED_MERCHANT//0xEC
        
    UPDATE_HIRED_MERCHANT//0xED
        
    DROP_ITEM_FROM_MAPOBJECT//0xEE
        
    REMOVE_ITEM_FROM_MAP//0xEF
        
    KITE_MESSAGE//0xF0
        
    KITE//0xF1
        
    SPAWN_MIST//0xF3
        
    REMOVE_MIST//0xF4
        
    SPAWN_DOOR//0xF5
        
    REMOVE_DOOR//0xF6
        
    REACTOR_HIT//0xF7
        
    REACTOR_SPAWN//0xF9
        
    REACTOR_DESTROY//0xFA
        
    ROLL_SNOWBALL//0xFB
        
    HIT_SNOWBALL//0xFC
        
    SNOWBALL_MESSAGE//0xFD
        
    LEFT_KNOCK_BACK//0xFE
        
    UNABLE_TO_CONNECT//0x100
        
    MONSTER_CARNIVAL_START//0x103
        
    MONSTER_CARNIVAL_OBTAINED_CP//0x104
        
    MONSTER_CARNIVAL_PARTY_CP//0x105
        
    MONSTER_CARNIVAL_SUMMON//0x106
        
    MONSTER_CARNIVAL_DIED//0x108
        
    ARIANT_PQ_START//0x10B
        
    ZAKUM_SHRINE//0x10D
        
    NPC_TALK//0x10E
        
    OPEN_NPC_SHOP//0x10F
        
    CONFIRM_SHOP_TRANSACTION//0x110
        
    OPEN_STORAGE//0x113
        
    MESSENGER//0x117
        
    PLAYER_INTERACTION//0x118
        
    DUEY//0x120
        
    CS_UPDATE//0x122
        
    CS_OPERATION//0x123
        
    KEYMAP//0x12A
        
    AUTO_HP_POT//0x12B
        
    AUTO_MP_POT//0x12C
        
    SEND_TV//0x130
        
    REMOVE_TV//0x131
        
    ENABLE_TV//0x132
        
    MTS_OPERATION2//0x136
        
    MTS_OPERATION//0x137
        
    VICIOUS_HAMMER//0x13D
        
    ENABLE_RECOMMENDED,
        
    SEND_RECOMMENDED,
        
    QUICK_SLOT,
        
    CATCH_ARIANT,
        
    SET_NPC_SCRIPTABLE,
        
    CATCH_MOUNT,
        
    HPQ_MOON,
        
    ARIANT_SCORE,
        
    ARAN_COMBO,
        
    HIRED_MERCHANT_BOX//0xE1
        
        
        
        
    private int code = -2;

        public 
    void setValue(int code) {
            
    this.code code;
        }

        @
    Override
        
    public int getValue() {
            return 
    code;
        }

        public static 
    Properties getDefaultProperties() throws FileNotFoundExceptionIOException {
            
    Properties props = new Properties();
            
    FileInputStream fileInputStream = new FileInputStream(System.getProperty("sendops"));
            
    props.load(fileInputStream);
            
    fileInputStream.close();
            return 
    props;
        }

        static {
            try {
                
    ExternalCodeTableGetter.populateValues(getDefaultProperties(), values(), true);
            } catch (
    IOException e) {
                throw new 
    RuntimeException("Failed to load sendops"e);
            }
        }

    in case my sendopcodes are required. I also added it there :x

  4. #4
    I'm overrated. Fraysa is offline
    MemberRank
    Apr 2008 Join Date
    4,891Posts

    Re: Make any NPC scriptable:

    Keep it in format,

    Code:
    SET_NPC_SCRIPTABLE = 0x263
    And not,

    Code:
    SET_NPC_SCRIPTABLE = 263

  5. #5
    Apprentice verizon is offline
    MemberRank
    Jul 2012 Join Date
    22Posts

    Re: Make any NPC scriptable:

    Thank you so much! The SET_NPC_SCRIPTABLE error went away, but when I click on the NPC I tried to script with this,
    PHP Code:
    function start() { 
        
    cm.sendOk("test"); 

    I get the following error/s: Any insight on what I'm doing wrong please ):

    Spoiler:
    PHP Code:
    Listening on port 8484
    Channel 1
    Listening on port 7575
    World
    0 Channel1 is online.
    Channel 2Listening on port 7576
    World
    0 Channel2 is online.
    Channel 3Listening on port 7577
    World
    0 Channel3 is online.
    Channel 4Listening on port 7578
    World
    0 Channel4 is online.
    Channel 5Listening on port 7579
    World
    0 Channel5 is online.
    IoSession with /25.207.61.93:52514 opened.
    IoSession with /25.209.124.196:50191 opened.
    IoSession with /25.207.61.93:52519 opened.
    IoSession with /25.209.124.196:50192 opened.
    javax.script.ScriptExceptionsun.org.mozilla.javascript.internal.EvaluatorExcep
    tion
    illegal character (<Unknown source>#1) in <Unknown source> at line number
    1
            at com
    .sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
            
    at javax.script.AbstractScriptEngine.eval(Unknown Source)
            
    at scripting.AbstractScriptManager.getInvocable(AbstractScriptManager.ja
    va
    :61)
            
    at scripting.npc.NPCScriptManager.start(NPCScriptManager.java:58)
            
    at net.channel.handler.NPCTalkHandler.handlePacket(NPCTalkHandler.java:6
    0
    )
            
    at net.MapleServerHandler.messageReceived(MapleServerHandler.java:121)
            
    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.runWorker(Unknown Source)
            
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            
    at java.lang.Thread.run(Unknown Source)
    Caused bysun.org.mozilla.javascript.internal.EvaluatorExceptionillegal chara
    cter 
    (<Unknown source>#1)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.runtimeError
    (Unknown Source)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.error(Unknow
    n Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.TokenStream.getToken(Unknown Sour
    ce
    )
            
    at sun.org.mozilla.javascript.internal.Parser.peekToken(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.name(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.primaryExpr(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.memberExpr(Unknown Source)

            
    at sun.org.mozilla.javascript.internal.Parser.unaryExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.mulExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.addExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.shiftExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.relExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.eqExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.bitAndExpr(Unknown Source)

            
    at sun.org.mozilla.javascript.internal.Parser.bitXorExpr(Unknown Source)

            
    at sun.org.mozilla.javascript.internal.Parser.bitOrExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.andExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.orExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.condExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.assignExpr(Unknown Source)

            
    at sun.org.mozilla.javascript.internal.Parser.expr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.nameOrLabel(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statementHelper(Unknown So
    urce
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statement(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Context.compileImpl(Unknown Sourc
    e
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.evaluateReader(Unknown So
    urce
    )
            ... 
    27 more
    javax
    .script.ScriptExceptionsun.org.mozilla.javascript.internal.EvaluatorExcep
    tion
    illegal character (<Unknown source>#1) in <Unknown source> at line number
    1
            at com
    .sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
            
    at javax.script.AbstractScriptEngine.eval(Unknown Source)
            
    at scripting.AbstractScriptManager.getInvocable(AbstractScriptManager.ja
    va
    :61)
            
    at scripting.npc.NPCScriptManager.start(NPCScriptManager.java:58)
            
    at net.channel.handler.NPCTalkHandler.handlePacket(NPCTalkHandler.java:6
    0
    )
            
    at net.MapleServerHandler.messageReceived(MapleServerHandler.java:121)
            
    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.runWorker(Unknown Source)
            
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            
    at java.lang.Thread.run(Unknown Source)
    Caused bysun.org.mozilla.javascript.internal.EvaluatorExceptionillegal chara
    cter 
    (<Unknown source>#1)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.runtimeError
    (Unknown Source)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.error(Unknow
    n Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.TokenStream.getToken(Unknown Sour
    ce
    )
            
    at sun.org.mozilla.javascript.internal.Parser.peekToken(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.name(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.primaryExpr(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.memberExpr(Unknown Source)

            
    at sun.org.mozilla.javascript.internal.Parser.unaryExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.mulExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.addExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.shiftExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.relExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.eqExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.bitAndExpr(Unknown Source)

            
    at sun.org.mozilla.javascript.internal.Parser.bitXorExpr(Unknown Source)

            
    at sun.org.mozilla.javascript.internal.Parser.bitOrExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.andExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.orExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.condExpr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.assignExpr(Unknown Source)

            
    at sun.org.mozilla.javascript.internal.Parser.expr(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.nameOrLabel(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statementHelper(Unknown So
    urce
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statement(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Context.compileImpl(Unknown Sourc
    e
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.evaluateReader(Unknown So
    urce
    )
            ... 
    27 more
    IoSession with 
    /25.209.124.196:50196 opened


    on line 58, I have this
    PHP Code:
     if (iv == null) {
                    
    iv getInvocable("npc/" npc ".js"c);
                } 
    and on line 60 I have,
    PHP Code:
    NPCScriptManager.getInstance().start(cnpc.getId(), nullnull);
                } 

  6. #6
    I'm overrated. Fraysa is offline
    MemberRank
    Apr 2008 Join Date
    4,891Posts

    Re: Make any NPC scriptable:

    Are you sure you correctly saved the script as the NPC's ID with a javascript extension? For example:

    PHP Code:
    function start() { 
        
    cm.sendOk("Testing!"); 
        
    cm.dispose(); 

    Would be saved as 9200001.js, if the NPC ID is 9200001.

  7. #7
    Apprentice verizon is offline
    MemberRank
    Jul 2012 Join Date
    22Posts

    Re: Make any NPC scriptable:

    Spoiler:
    PHP Code:
    Listening on port 8484
    Channel 1
    Listening on port 7575
    World
    0 Channel1 is online.
    Channel 2Listening on port 7576
    World
    0 Channel2 is online.
    IoSession with /25.207.61.93:53056 opened.
    Channel 3Listening on port 7577
    World
    0 Channel3 is online.
    Channel 4Listening on port 7578
    World
    0 Channel4 is online.
    Channel 5Listening on port 7579
    World
    0 Channel5 is online.
    IoSession with /25.207.61.93:53082 opened.
    ErrorNPC 9000010.
    javax
    .script.ScriptExceptionsun.org.mozilla.javascript.internal.EvaluatorExcep
    tion
    missing before statement (<Unknown source>#1) in <Unknown source> at lin
    e number 1
            at com
    .sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
            
    at javax.script.AbstractScriptEngine.eval(Unknown Source)
            
    at scripting.AbstractScriptManager.getInvocable(AbstractScriptManager.ja
    va
    :61)
            
    at scripting.npc.NPCScriptManager.start(NPCScriptManager.java:58)
            
    at net.channel.handler.NPCTalkHandler.handlePacket(NPCTalkHandler.java:6
    0
    )
            
    at net.MapleServerHandler.messageReceived(MapleServerHandler.java:121)
            
    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.runWorker(Unknown Source)
            
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            
    at java.lang.Thread.run(Unknown Source)
    Caused bysun.org.mozilla.javascript.internal.EvaluatorExceptionmissing bef
    ore statement 
    (<Unknown source>#1)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.runtimeError
    (Unknown Source)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.error(Unknow
    n Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.reportError(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.reportError(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.reportError(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.autoInsertSemicolon(Unknow
    n Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statementHelper(Unknown So
    urce
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statement(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Context.compileImpl(Unknown Sourc
    e
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.evaluateReader(Unknown So
    urce
    )
            ... 
    27 more
    javax
    .script.ScriptExceptionsun.org.mozilla.javascript.internal.EvaluatorExcep
    tion
    missing before statement (<Unknown source>#1) in <Unknown source> at lin
    e number 1
            at com
    .sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
            
    at javax.script.AbstractScriptEngine.eval(Unknown Source)
            
    at scripting.AbstractScriptManager.getInvocable(AbstractScriptManager.ja
    va
    :61)
            
    at scripting.npc.NPCScriptManager.start(NPCScriptManager.java:58)
            
    at net.channel.handler.NPCTalkHandler.handlePacket(NPCTalkHandler.java:6
    0
    )
            
    at net.MapleServerHandler.messageReceived(MapleServerHandler.java:121)
            
    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.runWorker(Unknown Source)
            
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            
    at java.lang.Thread.run(Unknown Source)
    Caused bysun.org.mozilla.javascript.internal.EvaluatorExceptionmissing bef
    ore statement 
    (<Unknown source>#1)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.runtimeError
    (Unknown Source)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.error(Unknow
    n Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.reportError(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.reportError(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.reportError(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.autoInsertSemicolon(Unknow
    n Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statementHelper(Unknown So
    urce
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statement(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Context.compileImpl(Unknown Sourc
    e
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.evaluateReader(Unknown So
    urce
    )
            ... 
    27 more
    javax
    .script.ScriptExceptionsun.org.mozilla.javascript.internal.EvaluatorExcep
    tion
    missing before statement (<Unknown source>#1) in <Unknown source> at lin
    e number 1
            at com
    .sun.script.javascript.RhinoScriptEngine.eval(Unknown Source)
            
    at javax.script.AbstractScriptEngine.eval(Unknown Source)
            
    at scripting.AbstractScriptManager.getInvocable(AbstractScriptManager.ja
    va
    :61)
            
    at scripting.npc.NPCScriptManager.start(NPCScriptManager.java:58)
            
    at net.channel.handler.NPCTalkHandler.handlePacket(NPCTalkHandler.java:6
    0
    )
            
    at net.MapleServerHandler.messageReceived(MapleServerHandler.java:121)
            
    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.runWorker(Unknown Source)
            
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            
    at java.lang.Thread.run(Unknown Source)
    Caused bysun.org.mozilla.javascript.internal.EvaluatorExceptionmissing bef
    ore statement 
    (<Unknown source>#1)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.runtimeError
    (Unknown Source)
            
    at sun.org.mozilla.javascript.internal.DefaultErrorReporter.error(Unknow
    n Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.addError(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.reportError(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.reportError(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.reportError(Unknown Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.autoInsertSemicolon(Unknow
    n Source
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statementHelper(Unknown So
    urce
    )
            
    at sun.org.mozilla.javascript.internal.Parser.statement(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Parser.parse(Unknown Source)
            
    at sun.org.mozilla.javascript.internal.Context.compileImpl(Unknown Sourc
    e
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.compileReader(Unknown Sou
    rce
    )
            
    at sun.org.mozilla.javascript.internal.Context.evaluateReader(Unknown So
    urce
    )
            ... 
    27 more 


    Yup. I tried with the NPC and script you posted and I just keep getting that error.

    P.S. I've tried to restart if that makes any difference ):

  8. #8
    Nae-un <33 Thane Krios is offline
    MemberRank
    Jun 2012 Join Date
    CaliforniaLocation
    568Posts

    Re: Make any NPC scriptable:

    Restarting has nothing to do with NPC files. They're independent of restarts.

  9. #9
    I'm overrated. Fraysa is offline
    MemberRank
    Apr 2008 Join Date
    4,891Posts

    Re: Make any NPC scriptable:

    Code:
    javax.script.ScriptException: sun.org.mozilla.javascript.internal.EvaluatorExcep 
    tion: missing ; before statement (<Unknown source>#1) in <Unknown source> at lin 
    e number 1
    The error says it all. Also, like the post above said - NPC Scripts are compiled everytime you click on them, so you don't have to restart the server when you apply changes to scripts.

  10. #10
    Account Upgraded | Title Enabled! StripedCow is offline
    MemberRank
    Jun 2011 Join Date
    813Posts

    Re: Make any NPC scriptable:

    add:

    function action(m,t,s) {
    }


    if you are using Java 7 even if you are not using it in the NPC.

  11. #11
    Account Upgraded | Title Enabled! ngnam87 is offline
    MemberRank
    Mar 2013 Join Date
    666Posts

    Re: Make any NPC scriptable:

    illegal character happen when you save the script with encoding UTF-8 (or what ever)
    try to use notepad++ then change encoding to ANSI



Advertisement