Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var GLOBAL_VARIABLES = []
- var viponly = 0
- var staffonly = 0
- //old chat method:
- var chatData = "0:FFFFFF::1,1:9CCAFD::1,2:00E1FF:Elite:1,3:FF8000:Legendary:1,4:95FF00:Support:1,60:FF0000:Administrator:1,65:FF0000:Owner:1,40:FFCC33:Moderator:1"
- //var chatData = "0:FFFFFF::1,1:9CCAFD::1,2:00E1FF:Elite:1,3:FF8000:Legendary:1,4:95FF00:Support:1,60:FFCC33:Moderator:1,65:FFCC33:Moderator:1,40:FFCC33:Moderator:1";
- var dbase
- var zone
- var _scheduler = Packages.it.gotoandplay.smartfoxserver.util.scheduling
- var scheduler = new _scheduler.Scheduler()
- var taskHandler
- var handlerObj = {}
- handlerObj.count = 0
- var worldItems = new java.util.HashMap()
- var worldClasses = new java.util.HashMap()
- var worldSkills = new java.util.HashMap()
- var worldPassives = new java.util.HashMap()
- var worldAuras = new java.util.HashMap()
- var worldShops = new java.util.HashMap()
- var worldMaps = new java.util.HashMap()
- var wolrdQuests = new java.util.HashMap()
- var worldMonsters = new java.util.HashMap()
- var worldHairs = new java.util.HashMap()
- var worldHairShops = new java.util.HashMap()
- var worldGuilds = new java.util.HashMap()
- var enhInfo = new Object()
- var arrRanks = []
- var arrLevels = []
- var rateCP = 1
- var rateGold = 1
- var rateExp = 1
- var maxLevel = 30
- var maxGold = 3000000
- var monRespawnTime = 10000
- var maxFFAScore = 10
- //Skill stacks:
- var doTestStacks1 = 0;
- var prefmessages = []
- prefmessages["bParty~true"] = ["server", "Accepting party invites."]
- prefmessages["bParty~false"] = ["warning", "Ignoring party invites."]
- prefmessages["bGoto~true"] = ["server", "Accepting goto requests."]
- prefmessages["bGoto~false"] = ["warning", "Blocking goto requests."]
- prefmessages["bFriend~true"] = ["server", "Accepting Friend requests."]
- prefmessages["bFriend~false"] = ["warning", "Ignoring Friend requests."]
- prefmessages["bWhisper~true"] = ["server", "Accepting PMs."]
- prefmessages["bWhisper~false"] = ["warning", "Ignoring PMs."]
- prefmessages["bDuel~true"] = ["server", "Accepting duel invites."]
- prefmessages["bDuel~false"] = ["warning", "Ignoring duel invites."]
- function init()
- {
- __out.println(" -------------------------------------")
- __out.println("| |")
- __out.println("| Elite Quest Worlds |")
- __out.println("| (c) 2009-2014 EliteQuestWorlds |")
- __out.println("| by Xyo|")
- __out.println("| |")
- __out.println(" -------------------------------------")
- zone = _server.getCurrentZone()
- dbase = _server.getDatabaseManager()
- initVariables()
- initScheduler()
- scheduler.startService()
- taskHandler = new _scheduler.ITaskHandler(handlerObj)
- scheduler.addScheduledTask(new _scheduler.Task({name:"Promo"}), 600, true, taskHandler)
- scheduler.addScheduledTask(new _scheduler.Task({name:"Rest Players"}), 3, true, taskHandler)
- scheduler.addScheduledTask(new _scheduler.Task({name:"ReloadVars"}), 10, true, taskHandler)
- cacheWorldObjects()
- initArrRep()
- initArrExp()
- dbase.executeCommand("UPDATE etl_servers SET bOnline=1,iCount="+zone.getUserCount()+" WHERE sName='" + GLOBAL_VARIABLES["SERVER_NAME"] + "'")
- debug(">> init")
- }
- function destroy()
- {
- scheduler.destroy(null)
- dbase.executeCommand("UPDATE etl_servers SET bOnline=0,iCount=0 WHERE sName='" + GLOBAL_VARIABLES["SERVER_NAME"] + "'")
- debug("Extension destroyed")
- delete dbase
- delete doTestStacks1
- }
- function initVariables() {
- var strVariables = String(_server.readFile("aqwVars.as"))
- var listVariables = strVariables.split("&")
- for each(var variable in listVariables) {
- if(String(variable).indexOf("=") > -1) {
- if(GLOBAL_VARIABLES[String(variable.split("=")[0])] != variable.split("=")[1]) {
- GLOBAL_VARIABLES[String(variable.split("=")[0])] = variable.split("=")[1]
- trace(variable)
- }
- }
- }
- }
- function initScheduler() {
- handlerObj.doTask = function(task) {
- task.id.count = (task.id.count >= 0) ? task.id.count : 0
- task.id.count++
- if(task.id.maxCount && task.id.count >= task.id.maxCount) {
- scheduler.removeScheduledTask(task)
- trace(task.id.name + " canceled!")
- return
- }
- if (task.id.name == "Promo") {
- sendpromoMsg()
- } else if (task.id.name == "Rest Players") {
- restPlayerAll()
- } else if (task.id.name == "ReloadVars") {
- initVariables()
- } else if(task.id.name == "PetAttack") {
- doPetAttack(task.id.user)
- } else if(task.id.name == "MonAttack") {
- getMonsterActionResult({monObj:task.id.monObj, mapMon:task.id.mapMon, mapName:task.id.mapName})
- } else if(task.id.name == "MonRespawn") {
- respawnMonster(task.id.params, task.id.die)
- } else if(task.id.name == "doAura") {
- if(String(task.id.targetType).toLowerCase() == "p") {
- DoTP(task.id.params)
- } else {
- DoTM(task.id.params)
- }
- } else if(task.id.name == "removeAura") {
- removeAura(task.id.params)
- }
- }
- }
- function destroyEmptyRooms() {
- var roomList = zone.getRooms()
- for each(var room in roomList) {
- if (room.getName() != "--init--") {
- if (room.getUserCount() == 0) {
- _server.destroyRoom(_server.getCurrentZone(), room.getId())
- }
- }
- }
- }
- function Integer(wat) {
- return Number(Number(wat).toFixed(0))
- }
- function Integer2(wat) {
- return Number(Number(wat).toFixed(2))
- }
- function rand(min, max) {
- return(Number(Math.floor(min + (Math.random() * (max - min)))))
- }
- function framePadCase(framePad) {
- var str = framePad
- var firstChar = str.substr(0, 1);
- var restOfString = str.substr(1, str.length);
- return firstChar.toUpperCase()+restOfString;
- }
- function handleRequest(cmd, params, user, fromRoom, protocol)
- {
- if(user.getName() == "sj7") {
- trace(">>request: " + cmd)
- for(var param in params) {
- trace("params[" + param + "]: " + params[param])
- }
- trace("user: " + user.getName())
- }
- var room = (user != null) ? zone.getRoom(user.getRoom()) : null
- switch(cmd) {
- case "firstJoin":
- //joinRoom(user, String(user.properties.get("lastmap")), false, String(user.properties.get("lastframe")), String(user.properties.get("lastpad")))
- joinRoom(user, "battleontown", false, "Enter", "Spawn");
- break
- case "testStunRequest":
- _server.sendResponse(["server", "Stun request recieved from the client " + cmd + ", 0.023m seconds"], -1, null, [user], "str")
- break;
- case "loadShop":
- loadShop(user.getUserId(), params[0])
- break
- case "loadHairShop":
- loadHairShop(user.getUserId(), params[0])
- break
- case "changeColor":
- changeColor(user, params[0], params[1], params[2], params[3])
- break
- case "changeArmorColor":
- changeArmorColor(user, params[0], params[1], params[2])
- break
- case "loadSale":
- loadSale(user.getUserId(), params[0])
- break
- case "buyItem":
- buyItem(user.getUserId(), params[0], params[1])
- break
- case "sellItem":
- sellItem(user.getUserId(), params[0], params[1])
- break
- case "removeItem":
- if(params[2]) {
- removeItem(user, params[0], params[2])
- } else {
- removeItem(user, params[0], 1)
- }
- break
- case "moveToCell":
- handleMoveToCell(params, user.getUserId())
- break
- case "atte": //gar
- attackHandler(user.getUserId(), params, false)
- break
- case "retrieveUserDatas": //retrieveUserDatas
- sendUserDatas(user, params)
- break
- case "retrieveUserData": //retrieveUserData
- sendUserData(user, params[0])
- break
- case "retrieveInventory":
- loadInventoryBig(user.getUserId())
- break
- case "mv": //mv
- handleMove(params, user)
- break
- case "message":
- handleMessage(params, user)
- break
- case "afk":
- handleAfk(user.getUserId(), params[0])
- break
- case "equipItem":
- equipItem(user.getUserId(), Integer(params[0]), false)
- break
- case "unequipItem":
- unequipItem(user.getUserId(), Integer(params[0]))
- break
- case "resPlayerTimed":
- resPlayer(user)
- break
- case "emotea":
- doemote(user, String(params[0]))
- break
- case "ia":
- doia(user, String(params[0]), String(params[1]))
- break
- case "em":
- doem(user, String(params[0]))
- break
- case "whisper":
- var chat = []
- if(isUserOnline(user, params[1])) {
- var to = getUserByName(String(params[1]))
- if(to.properties.get("bWhisper") == "false" && !isSupport(user)) {
- _server.sendResponse(["warning", "Player is not accepting PMs."], -1, null, [user], "str")
- break
- } else {
- chat.push("pMess")
- chat.push(params[0])
- chat.push(user.properties.get("strUsername").toLowerCase())
- chat.push(params[1])
- var chat2 = []
- chat2.push("pMess")
- chat2.push(params[0])
- chat2.push(user.properties.get("strUsername").toLowerCase())
- chat2.push(params[1])
- chat2.push(0)
- chat2.push(0)
- _server.sendResponse(chat2, -1, null, [user], "str")
- _server.sendResponse(chat, -1, null, [to], "str")
- if(to.properties.get("afk") == "true")
- _server.sendResponse(["server", String(to.getName()) + " is (AWAY)."], -1, null, [user], "str")
- }
- }
- break
- case "isModerator":
- checkeduser = getUserByName(String(params[0]))
- var isMod = {}
- isMod.cmd = "isModerator"
- isMod.unm = String(checkeduser.getName())
- if(isStaff(checkeduser)) {
- isMod.val = true
- }
- _server.sendResponse(isMod, -1, null, [user], "json")
- break
- case "util":
- if(params[0]) {
- switch(String(params[0])) {
- case "roll":
- var rolled = Math.round(Math.random()*100)
- var rollmsg = " rolled " + rolled
- //doem(user, rollmsg)
- var emmsg = []
- emmsg.push("em")
- emmsg.push(String(user.getName() + rollmsg))
- emmsg.push("")
- _server.sendResponse(emmsg, -1, null, room.getAllUsers(), "str")
- break
- }
- }
- break
- case "guild":
- if(params[0]) {
- switch(String(params[0])) {
- case "gc":
- if(params[1] && params[1] != "undefined" && params[1] != "" && String(params[1]).length >= 5) {
- if(String(params[1]).indexOf(" ") == 0 || String(params[1]).indexOf(" ") == (String(params[1]).length-1) || String(params[1]).indexOf(" ") > -1) {
- _server.sendResponse(["warning", "Invalid guild name."], -1, null, [user], "str")
- } else {
- guildCreate(user, params[1])
- }
- } else {
- _server.sendResponse(["warning", "Guild name must be atleast 5 characters."], -1, null, [user], "str")
- }
- break
- case "gi":
- guildInvite(user, params[1])
- break
- case "gr":
- guildRemove(user, params[1])
- break
- case "ga":
- guildAccept(user, params[1], params[2])
- break
- case "gdi":
- guildDecline(user, params[1], params[2])
- break
- case "gp":
- userGuildPromote(user, params[1]);
- break
- case "motd":
- guildMOTD(user, params[1])
- break
- default:
- _server.sendResponse(["warning", "This guild feature is not working yet"], -1, null, [user], "str")
- break
- }
- }
- break
- case "buyBagSlots":
- if(params[0]) {
- var nrslots = Number(params[0])
- var cost = Integer(nrslots) * 200
- var mycoins = Integer(user.properties.get("intCoins"))
- if(mycoins >= cost) {
- user.properties.put("iBagSlots", (Integer(user.properties.get("iBagSlots"))+nrslots))
- user.properties.put("intCoins", (Integer(mycoins)-cost))
- dbase.executeCommand("UPDATE etl_users SET iCoins=iCoins-"+Integer(cost)+", iBagSlots=iBagSlots+"+Integer(nrslots)+" WHERE id='" + Integer(user.properties.get("CharID")) + "'")
- var buyslotsresp = {"cmd": "buyBagSlots", "bitSuccess":1, "iSlots":Number(nrslots)}
- _server.sendResponse(buyslotsresp, -1, null, [user], "json")
- }
- }
- break
- case "buyBankSlots":
- if(params[0]) {
- var nrslots = Number(params[0])
- var cost = Integer(nrslots) * 200
- var mycoins = Integer(user.properties.get("intCoins"))
- if(mycoins >= cost) {
- user.properties.put("iBankSlots", (Integer(user.properties.get("iBankSlots"))+nrslots))
- user.properties.put("intCoins", (Integer(mycoins)-cost))
- dbase.executeCommand("UPDATE etl_users SET iCoins=iCoins-"+Integer(cost)+", iBankSlots=iBankSlots+"+Integer(nrslots)+" WHERE id='" + Integer(user.properties.get("CharID")) + "'")
- var buyslotsresp = {"cmd": "buyBankSlots", "bitSuccess":1, "iSlots":Number(nrslots)}
- _server.sendResponse(buyslotsresp, -1, null, [user], "json")
- }
- }
- break
- case "buyHouseSlots":
- if(params[0]) {
- var nrslots = Number(params[0])
- var cost = Integer(nrslots) * 200
- var mycoins = Integer(user.properties.get("intCoins"))
- if(mycoins >= cost) {
- user.properties.put("iHouseSlots", (Integer(user.properties.get("iHouseSlots"))+nrslots))
- user.properties.put("intCoins", (Integer(mycoins)-cost))
- dbase.executeCommand("UPDATE etl_users SET iCoins=iCoins-"+Integer(cost)+", iHouseSlots=iHouseSlots+"+Integer(nrslots)+" WHERE id='" + Integer(user.properties.get("CharID")) + "'")
- var buyslotsresp = {"cmd": "buyHouseSlots", "bitSuccess":1, "iSlots":Number(nrslots)}
- _server.sendResponse(buyslotsresp, -1, null, [user], "json")
- }
- }
- break
- case "cmd":
- if(params[0])
- handleCmd(user.getUserId(), params)
- break
- case "changeRoom":
- handleMoveToCell(params, user.getUserId())
- break
- case "restRequest":
- restPlayer(user)
- break
- case "getDrop":
- getDrop(user, params[0])
- break
- case "showRedeem":
- var redeemJson = {"cmd":"showRedeem", "btns":"mono", "glow":"gold,medium"}
- _server.sendResponse(redeemJson, -1, null, [user], "json")
- break
- case "book":
- var bookObj = {"cmd":"bookInfo", "bookData": {
- "HMBadge": [],
- "AchBadge": [],
- "OBadge": [],
- "quests": [
- {"intIndex":96,"strName":"Tutorial", "strMap":"tutorial", "strField":"QS","strType":"Quest","bitHide":0,"intValue":3}, //Tutorial
- {"intIndex":41,"strName":"Be Evil!!!","strField":"QS","strType":"Quest","bitHide":0,"intValue":2}
- ]
- }}
- _server.sendResponse(bookObj, -1, null, [user], "json")
- break
- case "cc":
- _server.sendResponse(["cChat", String(params[0]), user.getName()], -1, null, [user], "str")
- break
- case "updateQuest":
- setQuestValue(user, params[0], params[1])
- break
- case "bankFromInv":
- toBank(user, params[0])
- break
- case "bankToInv":
- toInventory(user, params[0])
- break
- case "bankSwapInv":
- swapBankInventory(user, params[0], params[3])
- break
- case "loadBank":
- loadBank(user, params)
- break
- case "getAdReward":
- var adsNum = Number(user.properties.get("iDailyAds"))
- if(Number(adsNum) < 6) {
- var ac = 0
- var acmin = 1
- var acmax = 10
- ac = Number(Math.floor(acmin + (Math.random() * (acmax - acmin))))
- var gold = 500
- dbase.executeCommand("UPDATE etl_users SET iDailyAds="+Number(adsNum+1)+" WHERE id=" + user.properties.get("CharID"))
- dbase.executeCommand("UPDATE etl_users SET iCoins=iCoins+"+Number(ac)+" WHERE id=" + user.properties.get("CharID"))
- dbase.executeCommand("UPDATE etl_users SET iGold=iGold+"+Number(gold)+" WHERE id=" + user.properties.get("CharID"))
- user.properties.put("iDailyAds", Number(adsNum-(-1)))
- user.properties.put("intCoins", Number(Number(user.properties.get("intCoins"))+Number(ac)))
- user.properties.put("intGold", Number(Number(user.properties.get("intGold"))+Number(gold)))
- var rew = {
- "cmd":"getAdReward",
- "iCoins": Number(ac),
- "iGold": Number(gold)
- }
- _server.sendResponse(rew, -1, null, [user], "json")
- } else {
- }
- break
- case "getAdData":
- var adsNum = Number(user.properties.get("iDailyAds"))
- var adData = {
- "cmd": "getAdData",
- "bSuccess": 1,
- "bh": {
- "iHouse": "3",
- "ID": "7",
- "iDailyAds": String(adsNum),
- "sPic": "/game/policy-logo.png",
- "sMovie": "eqw"
- }
- }
- _server.sendResponse(adData, -1, null, [user], "json")
- break
- case "genderSwap":
- genderSwap(user)
- break
- case "requestFriend":
- userToFriend = getUserByName(String(params[0]))
- if(userToFriend) {
- if(checkItemInArray(user.properties.get("friends"), String(userToFriend.properties.get("CharID")))) {
- _server.sendResponse(["warning", "Already friend"], -1, null, [user], "str")
- } else {
- userToFriend.properties.put("friendi~"+user.getName(), true)
- var rFriend = {
- "cmd": "requestFriend",
- "unm": String(user.getName()),
- "ID": Number(user.getUserId())
- }
- _server.sendResponse(rFriend, -1, null, [userToFriend], "json")
- }
- }
- break
- case "addFriend":
- userToAccept = getUserByName(String(params[0]))
- if(userToAccept) {
- if(checkItemInArray(user.properties.get("friends"), String(userToAccept.properties.get("CharID")))) {
- _server.sendResponse(["warning", "Already friend"], -1, null, [user], "str")
- } else {
- if(!user.properties.get("friendi~"+userToAccept.getName()))
- return
- userFriends = user.properties.get("friends")
- userFriends.push(String(userToAccept.properties.get("CharID")))
- user.properties.put("friends", userFriends)
- userToAcceptFriends = userToAccept.properties.get("friends")
- userToAcceptFriends.push(String(user.properties.get("CharID")))
- userToAccept.properties.put("friends", userToAcceptFriends)
- dbase.executeCommand("UPDATE etl_users SET friends='"+String(userFriends.join(","))+"' WHERE id=" + user.properties.get("CharID"))
- dbase.executeCommand("UPDATE etl_users SET friends='"+String(userToAcceptFriends.join(","))+"' WHERE id=" + userToAccept.properties.get("CharID"))
- var invited = {
- "cmd": "addFriend",
- "friend": getFriendInfo(user.properties.get("CharID"))
- }
- _server.sendResponse(invited, -1, null, [userToAccept], "json")
- var inviter = {
- "cmd": "addFriend",
- "friend": getFriendInfo(userToAccept.properties.get("CharID"))
- }
- _server.sendResponse(inviter, -1, null, [user], "json")
- }
- } else {
- _server.sendResponse(["warning", "user offline"], -1, null, [user], "str")
- }
- break
- case "declineFriend":
- userToDecline = getUserByName(String(params[0]))
- _server.sendResponse(["warning", String(user.getName()) + " declined your friend request."], -1, null, [userToDecline], "str")
- break
- case "deleteFriend":
- if(checkItemInArray(user.properties.get("friends"), String(params[0]))) {
- var newList = removeItemFromArray(user.properties.get("friends"), String(params[0]))
- user.properties.put("friends", newList)
- dbase.executeCommand("UPDATE etl_users SET friends='"+String(newList.join(","))+"' WHERE id=" + user.properties.get("CharID"))
- var query = "SELECT id,strUsername,friends FROM etl_users WHERE id='" + params[0] + "' LIMIT 1"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- var set = queryRes.get(0)
- var tempEmpty = []
- var newList2 = (set.getItem("friends").indexOf(",") > -1) ? set.getItem("friends").split(",") : (set.getItem("friends") != "") ? [set.getItem("friends")] : []
- newList2 = removeItemFromArray(newList2, String(user.properties.get("CharID")))
- var dbList = (newList2.length > 0) ? String(newList2.join(",")) : ""
- dbase.executeCommand("UPDATE etl_users SET friends='"+String(dbList)+"' WHERE id=" + set.getItem("id"))
- var userToDelete = getUserByName(String(set.getItem("strUsername").toLowerCase()))
- if(userToDelete) {
- userToDelete.properties.put("friends", newList2)
- var dFriend = {
- "cmd": "deleteFriend",
- "ID": String(user.properties.get("CharID"))
- }
- _server.sendResponse(dFriend, -1, null, [userToDelete], "json")
- }
- }
- var dFriend = {
- "cmd": "deleteFriend",
- "ID": String(params[0])
- }
- _server.sendResponse(dFriend, -1, null, [user], "json")
- }
- break
- case "aggroMon":
- theTarget = room.properties.get(String("m"+(params[0])))
- if(theTarget) {
- var userid = user.getUserId()
- if(!(theTarget.targets.contains(String(userid)))) {
- theTarget.targets.add(String(userid))
- if(theTarget.targets.size() == 1) {
- var params2 = {}
- params2.monObj = theTarget
- params2.mapMon = params[0]
- params2.mapName = room.getName()
- //setTimeout(this, getMonsterActionResult, 500, params2)
- scheduler.addScheduledTask(new _scheduler.Task({name:"MonAttack", monObj:theTarget, mapMon:params[0], mapName:String(room.getName())}), 0.5, false, taskHandler)
- }
- }
- }
- break
- case "getXmasGift":
- //dropItem(user, 16, 1)
- break
- case "serverUseItem":
- useItemRequest(user, params[1])
- break
- case "doFishing":
- var fishingChance = Math.floor(Math.random(1)*100);
- __out.println("[FISH ROLLING]: " + user.getName() + " rolled " + fishingChance + ".");
- break;
- case "getQuests":
- trace("loaded quests");
- break;
- default:
- _server.sendResponse(["warning", "This action is not yet supported by the server!"], -1, null, [user], "str")
- break
- }
- }
- function handleCmd(userid, params) {
- var user = _server.getUserById(userid)
- if(user.getName() != "iterator")
- var room = zone.getRoom(user.getRoom())
- var cmd = String(params[0])
- switch(cmd.toLowerCase()) {
- case "help":
- if(isSupport(user)) {
- _server.sendResponse(["serverf", ".:Staff Commands:."], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/mute #time player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/unmute player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/kick player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/join map_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/goto player_name</font>"], -1, null, [user], "str")
- }
- if(isStaff(user)) {
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/ban player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/unban player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/pull player_name</font>"], -1, null, [user], "str")
- //_server.sendResponse(["serverf", "<font color=\"#FF0000\">/modon (/modoff)</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/getinfo player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/iay message</font>"], -1, null, [user], "str")
- //_server.sendResponse(["serverf", "<font color=\"#FF0000\">/find item_name</font> "], -1, null, [user], "str")
- }
- if(isAdmin(user)) {
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/item #item_id player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/addexp/cp/gold/coin #ammount player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/level #level player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/doem emote_name player_name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/freeze player_name name</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/unfreeze player_name</font>"], -1, null, [user], "str")
- } else if(isStaff(user)) {
- //_server.sendResponse(["serverf", "<font color=\"#FF0000\">/item #item_id " + String(user.getName()) + "</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/addexp/cp/gold/coin #ammount " + String(user.getName()) + "</font>"], -1, null, [user], "str")
- _server.sendResponse(["serverf", "<font color=\"#FF0000\">/level #level</font>"], -1, null, [user], "str")
- }
- break
- case "promo":
- if(isAdmin(user))
- sendpromoMsg(user, params[1])
- break
- case "test":
- trace(getUserByName(String(params[1])))
- break
- case "find":
- if(!isAdmin(user))
- break
- if(!params[1])
- break
- var name =_server.escapeQuotes(params[1])
- query = "SELECT * FROM etl_items WHERE sName LIKE '%" + name + "%' ORDER BY sName ASC LIMIT 10"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- _server.sendResponse(["serverf", "---------SEARCH--------- " + name], -1, null, [user], "str")
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- _server.sendResponse(["serverf", "ID: " + set.getItem("item_id") + " - " + set.getItem("sName")], -1, null, [user], "str")
- }
- _server.sendResponse(["serverf", "------------------------------------------"], -1, null, [user], "str")
- }
- break
- case "doem":
- if(isAdmin(user)) {
- var name = String(params[2])
- if(params[3])
- name += " " + String(params[3])
- if(params[4])
- name += " " + String(params[4])
- if(name != "") {
- if(isUserOnline(user, name)) {
- user = getUserByName(String(name))
- doemote(user, String(params[1]))
- }
- }
- }
- break
- case "redeemCode":
- //redeemCode(user, String(params[1]))
- break
- case "addgold":
- case "addexp":
- case "addcp":
- if(isAdmin(user) || (isStaff(user) && String(params[2]) == user.getName())) {
- var add = {}
- var addText = "Gold"
- if(cmd == "addgold")
- add.gold = Number(params[1])
- if(cmd == "addcp") {
- add.cp = Number(params[1])
- addText = (Number(params[1]) > 1) ? "Class Points" : "Class Point"
- }
- if(cmd == "addexp") {
- add.exp = Number(params[1])
- addText = "Experience"
- }
- var name = ""
- if(params[2])
- name = String(params[2])
- if(params[3])
- name += " " + String(params[3])
- if(params[4])
- name += " " + String(params[4])
- if(name != "") {
- if(isUserOnline(user, name)) {
- to = getUserByName(String(name))
- } else {
- break
- }
- } else {
- to = user
- }
- addRewards(to, add, false)
- _server.sendResponse(["server", String("You gave " + params[1] + " " + addText + " to \"" + to.getName() + "\"")], -1, null, [user], "str")
- _server.sendResponse(["server", String("User \"" + user.getName() + "\" gave you " + params[1] + " " + addText + ".")], -1, null, [to], "str")
- }
- break
- case "addcoin":
- if(isAdmin(user) || (isStaff(user) && String(params[2]) == user.getName())) {
- var to
- var name = String(params[2])
- if(name != "") {
- if(isUserOnline(user, name)) {
- to = getUserByName(String(name))
- } else {
- break
- }
- } else {
- to = user
- }
- var addCoin = {}
- addCoin.cmd = "sellItem"
- addCoin.intAmount = Number(params[1])
- addCoin.bCoins = 1
- _server.sendResponse(addCoin, -1, null, [to], "json")
- dbase.executeCommand("UPDATE etl_users SET iCoins=iCoins+"+Number(params[1])+" WHERE id='" + Integer(to.properties.get("CharID")) + "'")
- to.properties.put("intCoins", Number((Number(to.properties.get("intCoins"))+Number(params[1]))))
- _server.sendResponse(["server", String("You gave " + params[1] + " ACs to \"" + to.getName() + "\"")], -1, null, [user], "str")
- _server.sendResponse(["server", String("User \"" + user.getName() + "\" gave you " + params[1] + " ACs.")], -1, null, [to], "str")
- }
- break
- case "item":
- if(isAdmin(user) && String(params[2]) == user.getName()) {
- if(isUserOnline(user, params[2])) {
- user = getUserByName(String(params[2]))
- if(params[1].indexOf(":") >= 0) {
- dropItem(user, Integer(params[1].split(":")[0]), Integer(params[1].split(":")[1]))
- } else {
- dropItem(user, Integer(params[1]), 1)
- }
- }
- }
- break
- case "freeze":
- if(isAdmin(user)) {
- if(isUserOnline(user, params[1])) {
- var userf = getUserByName(String(params[1]))
- var auraAdd = {"cInf":"p:"+user.getUserId(),"cmd":"aura++","auras":[{"val":1,"nam":"STAY!!!","t":"s","dur":"9999", "cat":"stone","isNew":true}],"tInf":"p:"+userf.getUserId()}
- _server.sendResponse(auraAdd, -1, null, room.getAllUsers(), "json")
- }
- }
- break
- case "unfreeze":
- if(isAdmin(user)) {
- if(isUserOnline(user, params[1])) {
- var userf = getUserByName(String(params[1]))
- var auraAdd = {"cInf":"p:"+user.getUserId(),"cmd":"aura-","auras":[{"val":1,"nam":"STAY!!!","t":"s","dur":"9999", "cat":"stone","isNew":true}],"tInf":"p:"+userf.getUserId()}
- _server.sendResponse(auraAdd, -1, null, room.getAllUsers(), "json")
- }
- }
- break
- case "getinfo":
- if(isStaff(user)) {
- if(isUserOnline(user, params[1])) {
- getInfoPlayer(user, params[1])
- }
- }
- break
- case "kick":
- if(isSupport(user)) {
- if(isUserOnline(user, params[1])) {
- var kicked = getUserByName(String(params[1]))
- if(Number(kicked.properties.get("intAccessLevel")) >= Number(user.properties.get("intAccessLevel"))) {
- _server.sendResponse(["server", "You can not kick that player."], -1, null, [user], "str")
- } else {
- _server.disconnectUser(kicked)
- _server.sendResponse(["server", "You have kicked \"" + params[1] + "\""], -1, null, [user], "str")
- }
- }
- }
- break
- case "banip":
- if(isAdmin(user)) {
- if(isUserOnline(user, params[1])) {
- var banned = getUserByName(String(params[1]))
- if(Number(banned.properties.get("intAccessLevel")) >= Number(user.properties.get("intAccessLevel"))) {
- _server.sendResponse(["server", "You can not ban a staff member."], -1, null, [user], "str")
- } else {
- _server.banUser(banned, 0, "You're banned!", _server.BAN_BY_IP)
- _server.sendResponse(["server", "You have ip-banned \"" + params[1] + "\""], -1, null, [user], "str")
- }
- }
- }
- break
- case "unbanip":
- if(isAdmin(user)) {
- _server.removeBanishment(String(params[1]), _server.BAN_BY_IP)
- _server.sendResponse(["server", "You have unbanned ip: \"" + params[1] + "\""], -1, null, [user], "str")
- }
- break
- case "ban":
- case "unban":
- if (isStaff(user)) {
- var name = _server.escapeQuotes(params[1])
- var banned = 1
- if (params[0] == "unban")
- banned = 0
- var query = "SELECT * FROM etl_users WHERE strUsername='" + name + "' LIMIT 1"
- var queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- var set = queryRes.get(0)
- var accountId = Number(set.getItem("id"))
- var isBanned = (Number(set.getItem("banned")) == 1)
- var access = Number(set.getItem("iAccess"))
- if(Number(access) >= Number(user.properties.get("intAccessLevel"))) {
- _server.sendResponse(["server", "You can not ban a staff member."], -1, null, [user], "str")
- break
- }
- if (banned == 1 && isBanned) {
- _server.sendResponse(["warning", "User \"" + name + "\" is already banned."], -1, null, [user], "str")
- break
- }
- if (banned == 0 && !isBanned) {
- _server.sendResponse(["server", "User \"" + name + "\" is not banned."], -1, null, [user], "str")
- break
- }
- dbase.executeCommand("UPDATE etl_users SET banned=" + banned + " WHERE id='" + accountId + "'")
- if (banned == 1) {
- _server.sendResponse(["warning", "You have banned \"" + name + "\""], -1, null, [user], "str")
- break
- } else {
- _server.sendResponse(["server", "You have unbanned \"" + name + "\""], -1, null, [user], "str")
- break
- }
- } else {
- _server.sendResponse(["warning", "User \"" + name + "\" was not found."], -1, null, [user], "str")
- break
- }
- }
- break
- case "mute":
- if(isSupport(user)) {
- if(isUserOnline(user, params[2])) {
- var muted = getUserByName(String(params[2]))
- if(Number(muted.properties.get("intAccessLevel")) >= Number(user.properties.get("intAccessLevel"))) {
- _server.sendResponse(["server", "You can not mute that player."], -1, null, [user], "str")
- } else {
- var mutetime = Number(Number(params[1])*1000*60)
- if(Number(params[1]) < 1)
- return
- var mute = []
- mute.push("mute")
- mute.push(mutetime)
- _server.sendResponse(mute, -1, null, [muted], "str")
- _server.sendResponse(["server", "You muted " + params[2] + " for " + params[1] + " minutes"], -1, null, [user], "str")
- }
- }
- }
- break
- case "unmute":
- if(isSupport(user)) {
- if(isUserOnline(user, params[1])) {
- var umuted = getUserByName(String(params[1]))
- var unmute = []
- unmute.push("unmute")
- _server.sendResponse(unmute, -1, null, [umuted], "str")
- _server.sendResponse(["server", "You un-muted " + params[1]], -1, null, [user], "str")
- }
- }
- break
- case "who":
- who(user, false)
- break
- case "whoall":
- if(isStaff(user))
- who(user, true)
- break
- case "tfer":
- if(params.length > 3) {
- joinRoom(user, String(params[2]), false, String(params[3]), String(params[4]))
- } else if(isLegendary(user) || isSupport(user)){
- joinRoom(user, String(params[2]), false, "Enter", "Spawn")
- }
- break
- case "doPoison":
- applyDamage("toHp", poison);
- break;
- case "goto":
- if(!isSupport(user))
- break
- if(isUserOnline(user, params[1])) {
- var gotos = getUserByName(String(params[1]))
- if(gotos == user) {
- _server.sendResponse(["warning", "You can not go to yourself!"], -1, null, [user], "str")
- break
- }
- if(gotos.properties.get("bGoto") == "false" && !isSupport(user)) {
- _server.sendResponse(["warning", "Player is not accepting goto requests."], -1, null, [user], "str")
- break
- }
- var gotosroom = zone.getRoom(gotos.getRoom())
- if(gotosroom)
- joinRoom(user, gotosroom.getName(), true, String(gotos.properties.get("strFrame")), String(gotos.properties.get("strPad")))
- }
- break
- case "pullall":
- if(isAdmin(user)) {
- var myRoom = zone.getRoom(user.getRoom())
- var wat = zone.getUserList().toArray()
- var numPlayers = 0
- for each(var userWat in wat) {
- if(userWat != user) {
- if(!isStaff(userWat)) {
- if(myRoom.contains(userWat.getName())) {
- var params = {}
- params[0] = String(user.properties.get("strFrame"))
- params[1] = String(user.properties.get("strPad"))
- handleMoveToCell(params, userWat.getUserId())
- } else {
- joinRoom(userWat, myRoom.getName(), true, String(user.properties.get("strFrame")), String(user.properties.get("strPad")))
- }
- numPlayers += 1
- }
- }
- }
- if(numPlayers > 0)
- _server.sendResponse(["server", "You pulled " + numPlayers + " players to you!"], -1, null, [user], "str")
- }
- break
- case "pull":
- if(isStaff(user)) {
- var myRoom = zone.getRoom(user.getRoom())
- if(isUserOnline(user, params[1])) {
- var usr = getUserByName(String(params[1]))
- if(isAdmin(usr) && !isAdmin(user)) {
- _server.sendResponse(["server", "You can not summon an administrator."], -1, null, [user], "str")
- } else {
- if(myRoom.contains(usr.getName())) {
- var params = {}
- params[0] = String(user.properties.get("strFrame"))
- params[1] = String(user.properties.get("strPad"))
- usr.properties.put("strFrame", String(params[0]))
- usr.properties.put("strPad", String(params[1]))
- usr.properties.put("tx", 0)
- usr.properties.put("ty", 0)
- handleMoveToCell(params, usr.getUserId())
- _server.sendResponse(["gtc", String(params[0]), String(params[1])], -1, null, [usr], "str")
- } else {
- joinRoom(usr, myRoom.getName(), true, String(user.properties.get("strFrame")), String(user.properties.get("strPad")))
- }
- }
- }
- }
- break
- case "recache":
- if(isAdmin(user)) {
- cacheWorldObjects()
- _server.sendResponse(["server", "All objects were recached."], -1, null, [user], "str")
- }
- break
- case "reportlang":
- var reportReason = "";
- if(params[2] == 0){
- reportReason = "Inappropriate language";
- } else if(params[2] == 1){
- reportReason = "Following / Griefing another player";
- } else if(params[2] == 2){
- reportReason = "Harassment";
- } else if(params[2] == 3){
- reportReason = "Unreleased / Illegal equipment";
- }
- if(params[1]){
- if(params[1].equals(user.getName())){
- _server.sendResponse(["warning", "You cannot report yourself!"], -1, null, [user], "str");
- return;
- } else {
- dbase.executeCommand("INSERT INTO etl_reports (reportedBy, reportedUser, reason, description) VALUES ('" + user.getName() + "', '" + params[1] + "', '" + reportReason + "', '" + params[3] + "')");
- _server.sendResponse(["moderator", "You have reported " + params[1] + ". Our moderators will review your report!"], -1, null, [user], "str");
- }
- }
- break;
- case "newrate":
- if(isAdmin(user)){
- if(params[1]){
- if(params[1] == "gold"){
- if(params[2]){
- rateGold = params[2];
- //sendServerUpdate(user, "The gold rate has been set to " + params[2] + "x.");
- _server.sendResponse(["serverf", "<font color=\"#FFCC33\">The gold rate has been set to " + params[2] + "x." + "</font>"], -1, null, [user], "str")
- }
- } else if(params[1] == "exp"){
- if(params[2]){
- rateExp = params[2];
- //sendServerUpdate(user, "The experience rate has been set to " + params[2] + "x.");
- _server.sendResponse(["serverf", "<font color=\"#B93B8F\">The experience rate has been set to " + params[2] + "x." + "</font>"], -1, null, [user], "str")
- }
- }
- }
- }
- break;
- case "iay":
- case "adminyell":
- if(isStaff(user)) {
- var msg
- var mod = []
- mod.push("moderator")
- if(params[1].indexOf("@") >= 0) {
- var msgIt = params[1].split("@")
- msg = msgIt[1]
- mod.push("(" + msgIt[0] + "): " + msg)
- } else {
- msg = params[1]
- mod.push("(" + user.getName() + "): " + msg)
- }
- var allusers = zone.getUserList().toArray()
- _server.sendResponse(mod, -1, null, allusers, "str")
- sendGlobalUpdate(msg)
- }
- break
- case "level":
- if(isStaff(user)) {
- var name = params[2]
- if(params[2]) {
- if(isUserOnline(user, params[2])) {
- user = getUserByName(String(params[2]))
- } else {
- break
- }
- }
- levelUp(user, params[1])
- }
- break
- case "uopref":
- var pref = String(params[1])
- var prefvalue = String(params[2])
- if(prefvalue != "true" && prefvalue != "false") {
- break
- }
- switch (pref) {
- case "bTT":
- case "bSoundOn":
- case "bFBShare":
- case "bHelm":
- case "bPet":
- case "bCloak":
- case "bParty":
- case "bFriend":
- case "bWhisper":
- case "bDuel":
- case "bGoto":
- user.properties.put(pref, prefvalue)
- dbase.executeCommand("UPDATE etl_users SET "+pref+"='"+prefvalue+"' WHERE id=" + user.properties.get("CharID"))
- _server.sendResponse(prefmessages[pref + "~" + prefvalue], -1, null, [user], "str")
- var test = {
- "cmd": "setAchievement",
- "field": "ia1",
- "index": 1,
- "value": 0
- }
- //_server.sendResponse(test, -1, null, [user], "json")
- break
- }
- switch (pref) {
- case "bCloak":
- case "bHelm":
- case "bcloak":
- case "bhelm":
- var myRoom = zone.getRoom(user.getRoom())
- var showHide = {}
- if(pref == "bCloak") {
- var showHide = {"cmd":"notls","o":{"showCloak":java.lang.Boolean.parseBoolean(prefvalue)},"unm":String(user.getName())}
- } else if(pref == "bHelm") {
- var showHide = {"cmd":"notls","o":{"showHelm":java.lang.Boolean.parseBoolean(prefvalue)},"unm":String(user.getName())}
- }
- _server.sendResponse(showHide, -1, null, myRoom.getAllUsersButOne(user), "json")
- break
- }
- break
- case "gender":
- if(isAdmin(user)) {
- var name = params[2]
- if(params[3])
- name += " " + params[3]
- if(params[4])
- name += " " + params[4]
- if(params[5])
- name += " " + params[5]
- if(isUserOnline(user, name))
- changeGender(params[2], params[1], 0)
- break
- }
- case "joinglobal":
- case "joing":
- if(user.properties.get("inglobal") == 1) {
- _server.sendResponse(["warning", "You are already in the global channel. Write /leaveglobal on chat to leave."], -1, null, [user], "str")
- } else {
- user.properties.put("inglobal", 1)
- _server.sendResponse(["server", "You joined the global channel. Write /leaveglobal on chat to leave."], -1, null, [user], "str")
- }
- break
- case "leaveglobal":
- case "leaveg":
- if(user.properties.get("inglobal") == 1) {
- user.properties.put("inglobal", 0)
- _server.sendResponse(["warning", "You left global channel. Write /joinglobal on chat to join."], -1, null, [user], "str")
- } else {
- _server.sendResponse(["warning", "You are not in the global channel. Write /joinglobal on chat to join."], -1, null, [user], "str")
- }
- break
- case "only":
- if(isAdmin(user) && params[1]) {
- staffonly = 0
- viponly = 0
- switch(String(params[1])) {
- case "staff":
- staffonly = 1
- _server.sendResponse(["server", "Only staff members can now access the server."], -1, null, [user], "str")
- break
- case "vip":
- viponly = 1
- _server.sendResponse(["server", "Only vip members can now access the server."], -1, null, [user], "str")
- break
- case "all":
- _server.sendResponse(["server", "Anyone can now access the server."], -1, null, [user], "str")
- break
- }
- }
- break
- case "hp":
- if(!isStaff(user))
- break
- if(params[1]) {
- newHp = Number(params[1])
- if(newHp > 0) {
- user.properties.put("intHP", Number(newHp))
- user.properties.put("intHPMax", Number(newHp))
- } else {
- user.properties.put("intHP", Number(calculateHP(user)))
- user.properties.put("intHPMax", Number(calculateHP(user)))
- }
- sendUotls(user, true, false, false, false)
- }
- if(params[2]){
- newHp = Number(params[1])
- newUser = params[2]
- if(newHp > 0) {
- user.properties.put("intHP", Number(newHp))
- user.properties.put("intHPMax", Number(newHp))
- } else {
- user.properties.put("intHP", Number(calculateHP(user)))
- user.properties.put("intHPMax", Number(calculateHP(user)))
- }
- sendUotls(newUser, true, false, false, false)
- }
- break
- case "modon":
- case "modoff":
- if(!isStaff(user))
- break
- var modState = Number(user.properties.get("modOn"))
- if(modState == 0 && cmd == "modoff") {
- _server.sendResponse(["warning", "Mod state is not turned on."], -1, null, [user], "str")
- break
- } else if(modState == 1 && cmd == "modon") {
- _server.sendResponse(["warning", "Mod state is already turned on."], -1, null, [user], "str")
- break
- }
- if(cmd == "modon") {
- user.properties.put("modOn", 1)
- exitUser(room, user)
- _server.sendResponse(["server", "Mod state ON"], -1, null, [user], "str")
- } else {
- user.properties.put("modOn", 0)
- sendUotls(user, true, true, true, true)
- _server.sendResponse(["server", "Mod state OFF"], -1, null, [user], "str")
- }
- break
- case "class":
- if(isStaff(user)) {
- var name = params[2]
- if(params[3])
- name += " " + params[3]
- if(params[4])
- name += " " + params[4]
- if(params[5])
- name += " " + params[5]
- if(params[2]) {
- if(isUserOnline(user, name)) {
- user = getUserByName(String(params[2]))
- } else {
- return
- }
- }
- updateClass(user, Number(params[1]))
- user.properties.put("intHPMax", Integer(calculateHP(user)))
- user.properties.put("intMPMax", Integer(calculateMP(user, "max")))
- user.properties.put("intHP", Integer(calculateHP(user)))
- user.properties.put("intMP", Integer(calculateMP(user, "same")))
- sendUotls(user, true, true, false, false)
- dbase.executeCommand("UPDATE etl_users SET iClass="+params[1]+" WHERE id='" + Integer(user.properties.get("CharID")) + "'")
- if(params[1] == 1) {
- equipItem(userid, 90000, true)
- } else if(params[1] == 2) {
- equipItem(userid, 90002, true)
- } else if(params[1] == 3) {
- equipItem(userid, 90003, true)
- } else if(params[1] == 4) {
- equipItem(userid, 90001, true)
- }
- }
- break
- case "upg":
- _server.sendResponse({"cmd": "showMem"}, -1, null, [user], "json")
- break
- case "pet":
- if(isStaff(user)) {
- return
- user.properties.put("intpet", true)
- var pet = {"uid":Number(user.getUserId()),"ItemID":1,"strES":"pe","eW":true,"cmd":"equipItem","sFile":"mon/DragonFire.swf","sLink":"DragonFire","sMeta":"Necromancer"}
- var room = zone.getRoom(user.getRoom())
- _server.sendResponse(pet, -1, null, room.getAllUsers(), "json")
- }
- break
- case "km":
- var mid = params[1].split(":")[1]
- activatePetAttack(user, mid)
- break
- case "m":
- if(isAdmin(user)) {
- var respawn = {
- "cmd":"mtls",
- "id":1,
- //"o":{"dx": Number(user.properties.get("tx")), "dy": Number(user.properties.get("ty"))}
- "o":{"dx": Math.floor(Math.random()*(960)), "dy": Math.floor(Math.random()*(555))}
- }
- _server.sendResponse(respawn, -1, null, room.getAllUsers(), "json")
- }
- break
- case "ignorelist":
- break
- default:
- _server.sendResponse(["warning", "That command is not yet supported by the server.(" + cmd + ")"], -1, null, [user], "str")
- break
- // CMD END
- }
- }
- function getUserByNameOld(nm) {
- var usersList = zone.getUserList().toArray()
- for each(user in usersList) {
- if(String(user.getName().toLowerCase()) == String(nm.toLowerCase())) {
- return user
- }
- }
- return null
- }
- function getUserByName(nm) {
- return zone.getUserByName(String(nm.toLowerCase()))
- }
- function genderSwap(user) {
- var gender = (String(user.properties.get("strGender")) == "F") ? "M" : "F"
- changeGender(user.getName(), gender, 1000)
- }
- function changeGender(name, gender, cost) {
- user = getUserByName(String(name))
- room = zone.getRoom(user.getRoom())
- gender = (String(gender).toUpperCase() == "F") ? "F" : "M"
- var iHairID = (String(gender).toUpperCase() == "F") ? 7 : 52
- var hairObj = worldHairs.get(Integer(iHairID))
- var strHairName = hairObj.sName
- var strHairFilename = hairObj.sFile
- user.properties.put("strHairName", String(strHairName))
- user.properties.put("strHairFilename", String(strHairFilename))
- user.properties.put("HairID", Integer(iHairID))
- user.properties.put("strGender", String(gender))
- user.properties.put("intCoins", Number(Number(user.properties.get("intCoins"))-Number(cost)))
- dbase.executeCommand("UPDATE etl_users SET iCoins=iCoins-"+Number(cost)+", strGender='"+gender+"', HairID='"+iHairID+"' WHERE id=" + user.properties.get("CharID"))
- var genderSwap = {
- "cmd": "genderSwap",
- "bitSuccess": 1,
- "uid": user.getUserId(),
- "intCoins": Number(cost),
- "gender": String(gender),
- "HairID": iHairID,
- "strHairName": String(strHairName),
- "strHairFilename": String(strHairFilename)
- }
- _server.sendResponse(genderSwap, -1, null, room.getAllUsers(), "json")
- }
- function getQuestValue(user, index) {
- var strQuests = String(user.properties.get("strQuests"))
- var questValue = strQuests.split("")
- if(questValue[index])
- return questValue[index]
- }
- function setQuestValue(user, index, value) {
- var strQuests = String(user.properties.get("strQuests"))
- var questValue = strQuests.split("")
- if(questValue[index]) {
- value = Integer(value)
- if(value > 10)
- value = 0
- questValue[index] = value
- user.properties.put("strQuests", String(questValue.join("")))
- dbase.executeCommand("UPDATE etl_users SET strQuests='" + questValue.join("") + "' WHERE id='" + Integer(user.properties.get("CharID")) + "'")
- var updateQuestObj = {"cmd":"updateQuest", "iIndex":Number(index), "iValue":Number(value)}
- _server.sendResponse(updateQuestObj, -1, null, [user], "json")
- }
- }
- function debug(str) {
- if(GLOBAL_VARIABLES["SERVER_DEBUG"] == "true") __out.println("[" + GLOBAL_VARIABLES["SERVER_NAME"] + "] " + str)
- }
- function doCache(filename) {
- var newname = (filename + "?cache=7").toLowerCase()
- return String(newname)
- }
- function modOn(user) {
- if(Number(user.properties.get("modOn")) == 1) {
- return true
- } else {
- return false
- }
- }
- function isMember(user) {
- if(Number(user.properties.get("iUpg")) > 0) {
- return true
- } else {
- return false
- }
- }
- function isLegendary(user) {
- if(Number(user.properties.get("iUpg")) > 1) {
- return true
- } else {
- return false
- }
- }
- function isStaff(user) {
- if(Number(user.properties.get("intAccessLevel")) >= 40) {
- return true
- } else {
- return false
- }
- }
- function isSupport(user) {
- if(Number(user.properties.get("intAccessLevel")) >= 4) {
- return true
- } else {
- return false
- }
- }
- function isAdmin(user) {
- if(Number(user.properties.get("intAccessLevel")) > 59) {
- return true
- } else {
- return false
- }
- }
- function isUserOnline(user, name) {
- var usr = getUserByName(String(name))
- if(usr != null) {
- return true
- } else {
- _server.sendResponse(["warning", "User \"" + name + "\" was not found!"], -1, null, [user], "str")
- return false
- }
- }
- function getGuildUsers(user, metoo) {
- var wat = zone.getUserList().toArray()
- var users = []
- myGuildId = user.properties.get("guildId")
- for each(var userWat in wat) {
- if(Number(userWat.properties.get("guildId")) == Number(myGuildId) && Number(myGuildId) > 0) {
- if(metoo || String(userWat.getName()) != String(user.getName()))
- users.push(userWat)
- }
- }
- return users
- }
- function getFriendUsers(user, metoo) {
- var wat = zone.getUserList().toArray()
- var users = []
- myFriends = user.properties.get("friends")
- for each(var userWat in wat) {
- if(checkItemInArray(myFriends, String(userWat.properties.get("CharID")))) {
- if(metoo || String(userWat.getName()) != String(user.getName()))
- users.push(userWat)
- }
- }
- return users
- }
- function sendGuildList(user) {
- if(Number(user.properties.get("guildId")) == 0)
- return
- var wat = zone.getUserList().toArray()
- var users = []
- var ul = []
- query = "SELECT id, guildRank, strUsername, iLvl, currentServer FROM etl_users WHERE guildId="+Number(user.properties.get("guildId"))+" ORDER BY currentServer DESC"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- ul[i] = {"Rank":String(set.getItem("guildRank")), "ID":String(set.getItem("id")), "userName":String(set.getItem("strUsername")), "Level":String(set.getItem("iLvl")), "Server":String(set.getItem("currentServer"))}
- }
- }
- for each(var userWat in wat) {
- if(Number(userWat.properties.get("guildId")) == Number(user.properties.get("guildId"))) {
- users.push(userWat)
- }
- }
- var gObject = worldGuilds.get(Number(user.properties.get("guildId")))
- var guildResp = {
- "cmd": "updateGuild",
- "guild": {
- "Name":String(gObject.guildName),
- "MaxMembers":15,
- "ul":ul,
- "strHall":"ad.swf",
- "pending":{},
- "Level":1,
- "MOTD":String(gObject.MOTD),
- "Filename":"aaa.swf",
- "dateUpdated":"2222"
- }
- }
- _server.sendResponse(guildResp, -1, null, users, "json")
- }
- function guildCreate(user, guildName) {
- if(user.properties.get("guildId") == 0) {
- if(Number(user.properties.get("intLevel")) < 10) {
- _server.sendResponse(["warning", "You must be atleast level 10 to create a guild."], -1, null, [user], "str")
- return
- } else if(Number(user.properties.get("intGold")) < 100000) {
- _server.sendResponse(["warning", "You must have 100.000 gold to create a guild."], -1, null, [user], "str")
- return
- }
- var guildName = String(guildName)
- var query = "SELECT * FROM etl_guilds WHERE guildName='"+_server.escapeQuotes(guildName)+"'"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() == 0) {
- dbase.executeCommand("INSERT INTO etl_guilds (guildName, MOTD) VALUES ('"+_server.escapeQuotes(guildName)+"', 'undefined')")
- var query = "SELECT * FROM etl_guilds WHERE guildName='"+_server.escapeQuotes(guildName)+"'"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- var set = queryRes.get(0)
- user.properties.put("intGold", Number(user.properties.get("intGold"))-Number(100000))
- dbase.executeCommand("UPDATE etl_users SET iGold=iGold-100000, guildID='"+String(set.getItem("id"))+"', guildRank=3 WHERE id=" + user.properties.get("CharID"))
- var gPrice = {}
- gPrice.cmd = "sellItem"
- gPrice.intAmount = Number(-100000)
- gPrice.bCoins = 0
- _server.sendResponse(gPrice, -1, null, [user], "json")
- user.properties.put("guildId", Number(set.getItem("id")))
- user.properties.put("guildRank", 3)
- var gid = set.getItem("id")
- var gObj = {
- "id": set.getItem("id"),
- "guildName": set.getItem("guildName"),
- "MOTD": set.getItem("MOTD")
- }
- worldGuilds.put(Number(gid), gObj)
- var guildAccept = {"cmd":"ga", "guild":{"Name":String(set.getItem("guildName"))},"unm":String(user.getName())}
- var room = zone.getRoom(user.getRoom())
- _server.sendResponse(guildAccept, -1, null, room.getAllUsers(), "json")
- sendGuildList(user)
- }
- } else {
- _server.sendResponse(["warning", "This guild name is already in use."], -1, null, [user], "str")
- }
- } else {
- _server.sendResponse(["warning", "You are already in a guild."], -1, null, [user], "str")
- }
- }
- function guildInvite(user, invited) {
- if(user.properties.get("guildId") == 0) {
- _server.sendResponse(["warning", "You are not in a guild."], -1, null, [user], "str")
- } else {
- var myRank = Number(user.properties.get("guildRank"))
- if(myRank == 3) {
- if(isUserOnline(user, invited)) {
- var gObject = worldGuilds.get(Number(user.properties.get("guildId")))
- userToInvite = getUserByName(String(invited))
- if(user.getName() == userToInvite.getName()) { return }
- if(userToInvite.properties.get("guildId") > 0) {
- _server.sendResponse(["warning", "Player is already in a guild."], -1, null, [user], "str")
- return
- }
- userToInvite.properties.put("guildi~"+gObject.id+"~"+user.getName(), true)
- var guildInvitation = {}
- guildInvitation.cmd = "gi"
- guildInvitation.owner = String(user.getName())
- guildInvitation.gName = String(gObject.guildName)
- guildInvitation.guildID = Integer(gObject.id)
- _server.sendResponse(guildInvitation, -1, null, [userToInvite], "json")
- _server.sendResponse(["server", "You invited \"" + invited + "\" to join your guild."], -1, null, [user], "str")
- }
- } else {
- _server.sendResponse(["warning", "Only the guild owner can invite."], -1, null, [user], "str")
- }
- }
- }
- function userGuildPromote(user, promoted){
- }
- function guildAccept(user, guildId, inviter) {
- if(user.properties.get("guildId") != 0) {
- _server.sendResponse(["warning", "You are already in a guild."], -1, null, [user], "str")
- return
- }
- if(!guildId || !inviter)
- return
- if(!(user.properties.get("guildi~"+guildId+"~"+inviter)))
- return
- user.properties.put("guildi~"+guildId+"~"+inviter, false)
- var gObject = worldGuilds.get(Number(guildId))
- user.properties.put("guildId", gObject.id)
- user.properties.put("guildRank", 0)
- dbase.executeCommand("UPDATE etl_users SET guildID='"+String(guildId)+"', guildRank=0 WHERE id=" + user.properties.get("CharID"))
- var guildAccept = {"cmd":"ga", "guild":{"Name":String(gObject.guildName)},"unm":String(user.getName())}
- var room = zone.getRoom(user.getRoom())
- _server.sendResponse(guildAccept, -1, null, room.getAllUsers(), "json")
- sendGuildList(user)
- //var gUsers = getGuildUsers(user, true)
- //_server.sendResponse(["guild", "test"], -1, null, gUsers, "str")
- _server.sendResponse(["server", "User " + user.getName() + " has joined the guild!"], -1, null, getGuildUsers(user, true), "str")
- }
- function guildDecline(user, guildId, inviter) {
- if(!guildId || !inviter)
- return
- user.properties.put("guildi~"+guildId+"~"+inviter, false)
- sendDeclineTo = getUserByName(String(inviter))
- if(sendDeclineTo) {
- if(Number(sendDeclineTo.properties.get("guildId")) == Number(guildId)) {
- var guildDecline = {"cmd":"gd", "unm":String(user.getName())}
- _server.sendResponse(guildDecline, -1, null, [sendDeclineTo], "json")
- }
- }
- }
- function guildRemove(user, removed) {
- if(user.properties.get("guildId") == 0) {
- _server.sendResponse(["warning", "You are not in a guild."], -1, null, [user], "str")
- } else {
- var myRank = Number(user.properties.get("guildRank"))
- var myGuildId = Number(user.properties.get("guildId"))
- if(myRank == 3 || String(removed.toLowerCase()) == String(user.getName())) {
- var query = "SELECT id, guildId FROM etl_users WHERE guildId='"+myGuildId+"' AND strUsername='"+_server.escapeQuotes(removed)+"'"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- if(String(removed.toLowerCase()) == String(user.getName()) && myRank == 3) {
- var queryMe = "SELECT id, guildId FROM etl_users WHERE guildId='"+myGuildId+"'"
- queryMeRes = dbase.executeQuery(queryMe)
- if (queryMeRes && queryMeRes.size() > 1) {
- _server.sendResponse(["warning", "You can not leave the guild if there are other players in it."], -1, null, [user], "str")
- return
- }
- }
- var set = queryRes.get(0)
- dbase.executeCommand("UPDATE etl_users SET guildID=0, guildRank=0 WHERE id=" + set.getItem("id"))
- var gObject = worldGuilds.get(Number(user.properties.get("guildId")))
- userToRemove = getUserByName(String(removed))
- if(userToRemove != null) {
- userToRemove.properties.put("guildId", 0)
- userToRemove.properties.put("guildRank", 0)
- }
- if(String(removed.toLowerCase()) == String(user.getName()) && myRank == 3) {
- dbase.executeCommand("DELETE FROM etl_guilds WHERE id='"+myGuildId+"'")
- var guildDelete = {"cmd":"guildDelete", "msg":"You deleted the guild.", "unm":String(user.getName())}
- var room = zone.getRoom(userToRemove.getRoom())
- _server.sendResponse(guildDelete, -1, null, room.getAllUsers(), "json")
- } else {
- sendGuildList(user)
- if(userToRemove != null) {
- var guildRemove = {"cmd":"gr", "guild":{"Name":String(gObject.guildName)},"unm":String(userToRemove.getName())}
- var room = zone.getRoom(userToRemove.getRoom())
- _server.sendResponse(guildRemove, -1, null, room.getAllUsers(), "json")
- }
- }
- } else {
- _server.sendResponse(["warning", "Player is not in your guild."], -1, null, [user], "str")
- }
- } else {
- _server.sendResponse(["warning", "Only the guild owner can remove players."], -1, null, [user], "str")
- }
- }
- }
- function guildMOTD(user, msg) {
- var gObject = worldGuilds.get(Number(user.properties.get("guildId")))
- if (gObject) {
- var myRank = Number(user.properties.get("guildRank"))
- if(myRank == 3) {
- gObject.MOTD = String(msg)
- dbase.executeCommand("UPDATE etl_guilds SET MOTD='"+_server.escapeQuotes(String(msg))+"' WHERE id=" + gObject.id)
- _server.sendResponse(["gMOTD", String(msg)], -1, null, getGuildUsers(user, true), "str")
- _server.sendResponse(["server", "Guild MOTD updated, use /motd to view."], -1, null, getGuildUsers(user, true), "str")
- }
- }
- }
- function redeemCode(user, code) {
- var msg = ""
- var query = "SELECT * FROM etl_codes WHERE code='"+_server.escapeQuotes(code)+"'"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- var set = queryRes.get(0)
- if(set.getItem("expired") == 1) {
- msg = "This code has expired."
- } else {
- var query2 = "SELECT * FROM etl_codes_uses WHERE code_id='"+code+"' LIMIT 1"
- queryRes2 = dbase.executeQuery(query2)
- if (queryRes2 && queryRes2.size() > 0 && set.getItem("usetype") == "single") {
- msg = "This code has been already redeemed by someone else."
- } else {
- var query3 = "SELECT * FROM etl_codes_uses WHERE code_id='"+code+"' AND user_id='"+user.properties.get("CharID")+"' LIMIT 1"
- queryRes3 = dbase.executeQuery(query3)
- if (queryRes3 && queryRes3.size() > 0) {
- msg = "You already redeemed this code."
- } else {
- msg += "Code redeemed.<br />"
- if(Integer(set.getItem("coins")) > 0) {
- var add = {}
- add.ac = Integer(set.getItem("coins"))
- addRewards(user, add, false)
- msg += "- " + String(add.ac) + " ACs.<br />"
- }
- if(Integer(set.getItem("item")) > 0) {
- dropItem(user, set.getItem("item"), 1)
- msg += "- " + String(worldItems.get(Number(set.getItem("item"))).sName)
- }
- var timenow = new Date()
- timenow = timenow.getTime()
- dbase.executeCommand("INSERT INTO etl_codes_uses (user_id, code_id, used_on) VALUES ('"+user.properties.get("CharID")+"', '"+code+"', '"+timenow+"')")
- }
- }
- }
- } else {
- msg = "This code does not exist."
- }
- if (msg != "") {
- if(msg.indexOf("Code redeemed.") > -1) {
- _server.sendResponse({"cmd":"showModal", "btns":"mono", "glow":"green,medium", "params":{}, "strBody":String(msg)}, -1, null, [user], "json")
- _server.sendResponse(["server", String(msg)], -1, null, [user], "str")
- } else {
- //_server.sendResponse({"cmd":"showModal", "btns":"mono", "glow":"red,medium", "params":{}, "strBody":String(msg)}, -1, null, [user], "json")
- _server.sendResponse(["warning", String(msg)], -1, null, [user], "str")
- }
- }
- }
- function getInfoPlayer(user, name) {
- var usr = getUserByName(String(name))
- if(usr) {
- var regip = String(usr.properties.get("regip"))
- var ip = String(usr.getIpAddress())
- //_server.sendResponse(["server", "IP: " + usr.getIpAddress()], -1, null, [user], "str")
- _server.sendResponse(["server", "ACs: " + usr.properties.get("intCoins")], -1, null, [user], "str")
- _server.sendResponse(["server", "Gold: " + usr.properties.get("intGold")], -1, null, [user], "str")
- query = "SELECT * FROM etl_users WHERE registered_ip='"+ip+"' OR registered_ip='"+regip+"' OR login_ip='"+ip+"' OR login_ip='"+regip+"'"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- var ownaccounts = ""
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- if(i == 0) {
- ownaccounts += String(set.getItem("strUsername"))
- } else {
- ownaccounts += ", " + String(set.getItem("strUsername"))
- }
- if (set.getItem("banned") == 1) {
- ownaccounts += "(banned)"
- }
- }
- _server.sendResponse(["server", "Accounts: " + ownaccounts], -1, null, [user], "str")
- }
- }
- }
- function updateAccessLevel(user, updateon, accesslvl) {
- var user = getUserByName(String(updateon))
- var room = zone.getRoom(user.getRoom())
- user.properties.put("intAccessLevel", Integer(accesslvl))
- dbase.executeCommand("UPDATE etl_users SET iAccess="+Integer(accesslvl)+" WHERE id=" + user.properties.get("CharID"))
- var acslvl = {}
- acslvl.cmd = "updateAccessLevel"
- acslvl.intAccessLevel = Integer(accesslvl)
- acslvl.bitSuccess = 1
- acslvl.uid = user.getUserId()
- _server.sendResponse(acslvl, -1, null, room.getAllUsers(), "json")
- }
- function sendRandomSkillUse(data1, user, room){
- if(data1 == "r1"){
- var randomAuraRoll = Math.round(Math.random()*100);
- if(randomAuraRoll >= 50){
- var auraAdd = {"cInf":"p:"+user.getUserId(),"cmd":"aura++","auras":[{"val":1,"nam":"Test Overtime!","t":"s","dur":"4", "cat":"overtime","isNew":true}],"tInf":"p:"+user.getUserId()}
- _server.sendResponse(auraAdd, -1, null, room.getAllUsers(), "json")
- } else {
- trace("failed. rolled " + randomAuraRoll);
- }
- }
- }
- function buyItem(userid, itemid, shopid) {
- var user = _server.getUserById(userid)
- var errormsg = "Invalid shopitem."
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+user.properties.get("CharID")+"' AND item_id='"+itemid+"'"
- var queryRes = dbase.executeQuery(query)
- itemid = Number(itemid)
- var itemObj = worldItems.get(itemid)
- if(itemObj == null)
- return
- for(var i = 0; i < worldShops.get(Integer(shopid)).items.length; i++) {
- if(worldShops.get(Integer(shopid)).items[i] == itemid) {
- errormsg = ""
- }
- }
- if(queryRes && queryRes.size() > 0) {
- if(Number((itemObj.iStk)) == 1) {
- errormsg = "You cannot have more than 1 of that item!"
- } else if(Number(queryRes.get(0).getItem("iQty")) >= Number((witemObj.iStk))) {
- errormsg = "Max stack!"
- }
- } else if(itemObj.bStaff == 1 && !isStaff(user)) {
- errormsg = "This item is for staff only."
- } else if(itemObj.bUpg == 1 && user.properties.get("iUpg") == 0) {
- errormsg = "This item is for members only."
- } else if(itemObj.bCoins == 1) {
- if(Number(user.properties.get("intCoins")) < Number(itemObj.iCost)) {
- errormsg = "Not enough ACs."
- }
- } else if(itemObj.bCoins == 0) {
- if(Number(user.properties.get("intGold")) < Number(itemObj.iCost)) {
- errormsg = "Not enough Gold."
- }
- }
- if(errormsg == "") {
- if(Integer(itemObj.bCoins) == 0){
- dbase.executeCommand("UPDATE etl_users SET iGold=iGold-"+Integer(itemObj.iCost)+" WHERE id='" + Integer(user.properties.get("CharID")) + "'")
- user.properties.put("intGold", (Integer(user.properties.get("intGold"))-Integer(itemObj.iCost)))
- } else {
- dbase.executeCommand("UPDATE etl_users SET iCoins=iCoins-"+Integer(itemObj.iCost)+" WHERE id='" + Integer(user.properties.get("CharID")) + "'")
- user.properties.put("intCoins", (Integer(user.properties.get("intCoins"))-Integer(itemObj.iCost)))
- }
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+user.properties.get("CharID")+"' AND item_id='"+itemid+"'"
- var queryRes = dbase.executeQuery(query)
- if(queryRes.size() > 0) {
- dbase.executeCommand("UPDATE etl_users_items SET iQty=iQty+"+Number((itemObj.iQty))+" WHERE user_id='"+user.properties.get("CharID")+"' AND item_id='"+itemid+"' LIMIT 1")
- } else {
- dbase.executeCommand("INSERT INTO etl_users_items (user_id, item_id, iLvl, iCP, iQty, bEquip, bBank, sES, enh_id) VALUES ('"+Integer(user.properties.get("CharID"))+"', '"+Integer(itemid)+"', '"+itemObj.iLvl+"', '0', '1', '0', '0', '"+itemObj.sES+"', '"+itemObj.EnhID+"')")
- }
- var buySuccess = {
- "cmd":"buyItem",
- "bitSuccess":1,
- "CharItemID":Integer(itemid)
- }
- _server.sendResponse(buySuccess, -1, null, [user], "json")
- } else {
- var buyFail = {
- "cmd":"buyItem",
- "bitSuccess": 0,
- "CharItemID": -1,
- "strMessage": String(errormsg)
- }
- _server.sendResponse(buyFail, -1, null, [user], "json")
- }
- }
- function sellItem(userid, itemid, shopid) {
- var user = _server.getUserById(userid)
- var room = zone.getRoom(user.getRoom())
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+Integer(user.properties.get("CharID"))+"' AND bEquip=0 AND item_id='"+itemid+"'"
- var queryRes = dbase.executeQuery(query)
- itemid = Number(itemid)
- if (queryRes && queryRes.size() > 0) {
- var set = queryRes.get(0)
- var id = String(set.getItem("item_id"))
- var price = Number(Integer(worldItems.get(itemid).iCost))
- dbase.executeCommand("DELETE FROM etl_users_items WHERE item_id='"+itemid+"' AND user_id='"+Integer(user.properties.get("CharID"))+"'")
- if(Integer(worldItems.get(itemid).bCoins) == 0){
- dbase.executeCommand("UPDATE etl_users SET iGold=iGold+"+Integer(price)+" WHERE id='" + Integer(user.properties.get("CharID")) + "'")
- user.properties.put("intGold", Integer(Number(user.properties.get("intGold"))+Number(price)))
- } else {
- dbase.executeCommand("UPDATE etl_users SET iCoins=iCoins+"+(Number(price))+" WHERE id='" + Number(user.properties.get("CharID")) + "'")
- user.properties.put("intCoins", Integer(Number(user.properties.get("intCoins"))+Number(price)))
- }
- var sellSuccess = {
- "cmd":"sellItem",
- "intAmount":Number(price),
- "bCoins":Number(worldItems.get(itemid).bCoins),
- "bitSuccess":1,
- "CharItemID":Number(id)
- }
- _server.sendResponse(sellSuccess, -1, null, [user], "json")
- }
- }
- function removeItem(user, itemid, qty) {
- qty = Number(qty)
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+Integer(user.properties.get("CharID"))+"' AND bEquip=0 AND iQty>="+qty+" AND item_id='"+itemid+"'"
- var queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- var set = queryRes.get(0)
- removeResp = {}
- removeResp.cmd = "removeItem"
- removeResp.CharItemID = Integer(itemid)
- removeResp.iQty = qty
- _server.sendResponse(removeResp, -1, null, [user], "json")
- if(Number(set.getItem("iQty")) > Number(qty)) {
- dbase.executeCommand("UPDATE etl_users_items SET iQty=iQty-"+qty+" WHERE item_id='"+itemid+"' AND user_id='"+Integer(user.properties.get("CharID"))+"'")
- } else {
- dbase.executeCommand("DELETE FROM etl_users_items WHERE item_id='"+itemid+"' AND user_id='"+Integer(user.properties.get("CharID"))+"'")
- }
- }
- }
- function changeColor(user, skin, hair, eye, hairid) {
- var room = zone.getRoom(user.getRoom())
- var hairObj = worldHairs.get(Number(hairid))
- if (hairObj) {
- dbase.executeCommand("UPDATE etl_users SET HairID="+Integer(hairObj.HairID)+", intColorSkin="+Integer(skin)+", intColorHair="+Integer(hair)+", intColorEye="+Integer(eye)+" WHERE id=" + user.properties.get("CharID"))
- user.properties.put("intColorSkin", skin)
- user.properties.put("intColorHair", hair)
- user.properties.put("intColorEye", eye)
- var changeColorResp = {
- "cmd":"changeColor",
- "uid":user.getUserId(),
- "intColorHair":Number(hair),
- "intColorEye":Number(eye),
- "intColorSkin":Number(skin),
- "HairID":Number(hairObj.HairID),
- "strHairName":String(hairObj.sName),
- "strHairFilename":String(hairObj.sFile)
- }
- _server.sendResponse(changeColorResp, -1, null, room.getAllUsers(), "json")
- } else {
- debug("hair not found " + hairid)
- }
- }
- function changeArmorColor(user, trim, base, acc) {
- var room = zone.getRoom(user.getRoom())
- dbase.executeCommand("UPDATE etl_users SET intColorAccessory="+Integer(acc)+", intColorTrim="+Integer(trim)+", intColorBase="+Integer(base)+" WHERE id=" + user.properties.get("CharID"))
- user.properties.put("intColorAccessory", acc)
- user.properties.put("intColorTrim", trim)
- user.properties.put("intColorBase", base)
- var changeColorResp = new Object()
- changeColorResp = {"uid":user.getUserId(),"intColorAccessory":Integer(acc),"cmd":"changeArmorColor","intColorTrim":Integer(trim),"intColorBase":Integer(base)}
- _server.sendResponse(changeColorResp, -1, null, room.getAllUsers(), "json")
- }
- function loadHairShop(userid, hshopid) {
- var user = _server.getUserById(userid)
- var room = zone.getRoom(user.getRoom())
- var hairshop = new Object()
- var hairs = []
- if (worldHairShops.get(Integer(hshopid))) {
- var hairquery = worldHairShops.get(Integer(hshopid))
- if(user.properties.get("strGender") == "M") {
- hairquery = hairquery.hairsM
- } else if(user.properties.get("strGender") == "F") {
- hairquery = hairquery.hairsF
- }
- hairquery = hairquery.split(",")
- //_server.sendResponse(["warning", "alength: " + hairquery.length], -1, null, [user], "str")
- for(var i = 0; i < hairquery.length; i++) {
- var hairObj = worldHairs.get(Integer(hairquery[i]))
- if(hairObj != null) {
- var hitem = new Object()
- hitem.HairID = Number(hairObj.HairID)
- hitem.sFile = ""+hairObj.sFile
- hitem.sName = ""+hairObj.sName
- hitem.sGen = ""+hairObj.sGen
- hairs.push(hitem)
- }
- }
- hairshop = {"HairShopID":"1","cmd":"loadHairShop","hair":hairs}
- _server.sendResponse(hairshop, -1, null, [user], "json")
- }
- }
- function loadShop(userid, shopid) {
- var user = _server.getUserById(userid)
- var room = zone.getRoom(user.getRoom())
- var shop = new Object()
- var items = []
- if (worldShops.get(Integer(shopid))) {
- if(((worldShops.get(Integer(shopid)).bStaff == 1) && (isStaff(user))) || (worldShops.get(Integer(shopid)).bStaff == 0)) {
- for(var i = 0; i < worldShops.get(Integer(shopid)).items.length; i++) {
- var itemObj = worldItems.get(Number(worldShops.get(Integer(shopid)).items[i]))
- if(!itemObj) {
- trace("Item " + String(Integer(worldShops.get(Integer(shopid)).items[i])) + " not found in shop " + shopid)
- } else {
- var item = new Object()
- item.ItemID = ""+itemObj.ItemID
- item.ShopItemID = ""+itemObj.ItemID
- item.sFaction = ""+itemObj.sFaction
- item.iClass = ""+itemObj.iClass
- item.sElmt = ""+itemObj.sElmt
- item.sLink = ""+itemObj.sLink
- item.bStaff = "0"
- item.iRng = ""+itemObj.iRng
- item.iDPS = ""+itemObj.iDPS
- item.bCoins = ""+itemObj.bCoins
- item.sES = ""+itemObj.sES
- item.sType = ""+itemObj.sType
- item.iCost = ""+itemObj.iCost
- item.iRty = ""+itemObj.iRty
- item.iQty = "1"
- item.iLvl = Integer(itemObj.iLvl)
- item.EnhLvl = Number(itemObj.iLvl)
- item.iLvl = Number(itemObj.iLvl)
- item.FactionID = ""+itemObj.FactionID
- item.iQtyRemain = ""+itemObj.iQtyRemain
- item.iReqRep = ""+itemObj.iReqRep
- item.iQSvalue = "0"
- item.EnhID = "1"
- item.EnhPatternID = "1"
- item.EnhRty = "1"
- item.sIcon = ""+itemObj.sIcon
- item.bTemp = ""+itemObj.bTemp
- item.iHrs = 1000
- item.sFile = ""+itemObj.sFile
- item.iStk = ""+itemObj.iStk
- item.sDesc = ""+itemObj.sDesc
- item.bHouse = ""+itemObj.bHouse
- item.bUpg = ""+itemObj.bUpg
- item.iReqCP = ""+itemObj.iReqCP
- item.sName = ""+itemObj.sName
- item.iQSindex = "-1"
- item.sDesc = String(itemObj.sDesc)
- item.classReq = String(getClassReq(user, itemObj.ClassID))
- item.classReq = String(getClassReq(user, itemObj.ClassID))
- item.minDmg = String(itemObj.minDmg)
- item.maxDmg = String(itemObj.maxDmg)
- item.magicDmg = String(itemObj.magicDmg)
- item.STR = String(itemObj.STR)
- item.INT = String(itemObj.INT)
- item.DEX = String(itemObj.DEX)
- item.WIS = String(itemObj.WIS)
- item.END = String(itemObj.END)
- item.LCK = String(itemObj.LCK)
- items.push(item)
- }
- }
- shop = {"shopinfo":{"items":items, "ShopID":""+shopid, "sField":"", "bStaff":"0", "bHouse":""+worldShops.get(Integer(shopid)).bHouse, "iIndex":"-1", "sName":""+worldShops.get(Integer(shopid)).sName}, "cmd":"loadShop"}
- _server.sendResponse(shop, -1, null, [user], "json")
- }
- } else {
- _server.sendResponse(["warning", "You are trying to load a non-existent shop."], -1, null, [user], "str")
- }
- }
- function loadBank(user, itemTypes) {
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+user.properties.get("CharID")+"' AND bBank=1"
- var queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- var items = []
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var itemId = set.getItem("item_id")
- var itemObj = worldItems.get(Number(itemId))
- var itemJson = {
- "sIcon": String(itemObj.sIcon),
- "ItemID": String(itemId),
- "iLvl": String(itemObj.iLvl),
- "iEnh": String(itemObj.EnhID),
- "sElmt": String(itemObj.sElmt),
- "bTemp": String(itemObj.bTemp),
- "sLink": String(itemObj.sLink),
- "bStaff": String(itemObj.bStaff),
- "CharItemID": String(itemId),
- "iRng": String(itemObj.iRng),
- "bCoins": String(itemObj.bCoins),
- "iDPS": String(itemObj.iDPS),
- "sES": String(itemObj.sES),
- "EnhID": String(itemObj.EnhID),
- "sType": String(itemObj.sType),
- "sDesc": String(itemObj.sDesc),
- "iStk": String(itemObj.iStk),
- "bBank": true,
- "iCost": String(itemObj.iCost),
- "bEquip": false,
- "bUpg": String(itemObj.bUpg),
- "iRty": String(itemObj.iRty),
- "sName": String(itemObj.sName),
- "iQty": String(set.getItem("iQty"))
- }
- items.push(itemJson)
- }
- var bank = {}
- bank.cmd = "loadBank"
- bank.bitSuccess = 1
- bank.items = items
- _server.sendResponse(bank, -1, null, [user], "json")
- } else {
- var bank = {}
- bank.cmd = "loadBank"
- bank.bitSuccess = 1
- bank.items = []
- _server.sendResponse(bank, -1, null, [user], "json")
- }
- }
- function toBank(user, itemid) {
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+user.properties.get("CharID")+"' AND item_id='"+itemid+"' AND bBank=0"
- var queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- dbase.executeCommand("UPDATE etl_users_items SET bBank=1 WHERE user_id='"+user.properties.get("CharID")+"' AND item_id=" + itemid + "")
- var toBank = {}
- toBank.cmd = "bankFromInv"
- toBank.bSuccess = 1
- toBank.ItemID = Number(itemid)
- _server.sendResponse(toBank, -1, null, [user], "json")
- }
- }
- function toInventory(user, itemid) {
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+user.properties.get("CharID")+"' AND item_id='"+itemid+"' AND bBank=1"
- var queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- dbase.executeCommand("UPDATE etl_users_items SET bBank=0 WHERE user_id='"+user.properties.get("CharID")+"' AND item_id=" + itemid + "")
- var toInventory = {}
- toInventory.cmd = "bankToInv"
- toInventory.bSuccess = 1
- toInventory.ItemID = Number(itemid)
- _server.sendResponse(toInventory, -1, null, [user], "json")
- }
- }
- function swapBankInventory(user, tobankid, toinvenid) {
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+user.properties.get("CharID")+"' AND item_id='"+toinvenid+"' AND bBank=1"
- var queryRes = dbase.executeQuery(query)
- var query2 = "SELECT * FROM etl_users_items WHERE user_id='"+user.properties.get("CharID")+"' AND item_id='"+tobankid+"' AND bBank=0"
- var queryRes2 = dbase.executeQuery(query2)
- if (queryRes && queryRes.size() > 0 && queryRes2 && queryRes2.size() > 0) {
- dbase.executeCommand("UPDATE etl_users_items SET bBank=0 WHERE user_id='"+user.properties.get("CharID")+"' AND item_id=" + toinvenid + "")
- dbase.executeCommand("UPDATE etl_users_items SET bBank=1 WHERE user_id='"+user.properties.get("CharID")+"' AND item_id=" + tobankid + "")
- var swap = {}
- swap.cmd = "bankSwapInv"
- swap.invItemID = Number(tobankid)
- swap.bankItemID = Number(toinvenid)
- swap.bSuccess = 1
- _server.sendResponse(swap, -1, null, [user], "json")
- }
- }
- function handleAfk(userid, afk) {
- var user = _server.getUserById(userid)
- var room = zone.getRoom(user.getRoom())
- user.properties.put("afk", afk)
- var uotls = []
- uotls.push("notls")
- uotls.push(user.getName())
- uotls.push("afk:" + afk)
- _server.sendResponse(uotls, -1, null, room.getAllUsers(), "str")
- if(afk == "true") {
- _server.sendResponse(["server", "You are now Away From Keyboard (AFK)."], -1, null, [user], "str")
- } else {
- _server.sendResponse(["server", "You are no longer Away From Keyboard (AFK)."], -1, null, [user], "str")
- }
- }
- function doemote(user, emote) {
- var room = zone.getRoom(user.getRoom())
- var emotea = []
- emotea.push("emotea")
- emotea.push(String(emote))
- emotea.push(String(user.getUserId()))
- _server.sendResponse(emotea, -1, null, room.getAllUsers(), "str")
- }
- function doia(user, act1, act2) {
- var room = zone.getRoom(user.getRoom())
- var ia = {}
- ia.cmd = "ia"
- ia.val = Math.round(Math.random()*10000)
- if(isStaff(user)) {
- ia.val = 1
- }
- ia.oName = String(act2)
- ia.typ = String(act1)
- ia.unm = String(user.getName())
- _server.sendResponse(ia, -1, null, room.getAllUsers(), "json")
- }
- function doem(user, msg) {
- var room = zone.getRoom(user.getRoom())
- var emmsg = []
- emmsg.push("em")
- emmsg.push(String(user.getName()))
- emmsg.push(String(msg))
- _server.sendResponse(emmsg, -1, null, room.getAllUsers(), "str")
- }
- function restPlayer(user) {
- var room = zone.getRoom(user.getRoom())
- if((user.properties.get("intHP") < user.properties.get("intHPMax") || user.properties.get("intMP") < user.properties.get("intMPMax")) && user.properties.get("intState") == 1) {
- //health rest formula
- var restedhp = Integer(user.properties.get("intHPMax")) / 8
- restedhp = Integer(restedhp)
- var newhp = Number(restedhp) + Number(user.properties.get("intHP"))
- newhp = Integer(newhp)
- //------------------
- //mana rest formula
- var restedmp = Integer(user.properties.get("intMPMax")) / 8
- restedmp = Integer(restedmp)
- if(getManaType(user) == 2)
- restedmp = 0
- var newmp = Number(restedmp) + Number(user.properties.get("intMP"))
- newmp = Integer(newmp)
- //------------------
- if(Integer(newhp) > user.properties.get("intHPMax")) {
- restedhp = user.properties.get("intHPMax") - user.properties.get("intHP")
- user.properties.put("intHP", user.properties.get("intHPMax"))
- } else {
- user.properties.put("intHP", Integer(newhp))
- }
- if(Integer(newmp) > user.properties.get("intMPMax")) {
- restedmp = user.properties.get("intMPMax") - user.properties.get("intMP")
- user.properties.put("intMP", user.properties.get("intMPMax"))
- } else {
- user.properties.put("intMP", Integer(newmp))
- }
- sendUotls(user, true, true, false, false)
- }
- }
- function restPlayerAll() {
- var users = zone.getUserList().toArray()
- for each(var user in users) {
- var room = zone.getRoom(user.getRoom())
- var mpcheck = false
- var hpcheck = false
- var inCombat = false
- var state = Number(user.properties.get("intState"))
- var mpRest = Integer(user.properties.get("intMPMax")) / 16
- if(getManaType(user) == 2) {
- if(user.properties.get("intMP") > 0) {
- mpcheck = true
- mpRest = -(mpRest)*3
- }
- } else if(getManaType(user) == 1) {
- if(user.properties.get("intMP") < user.properties.get("intMPMax")) {
- mpcheck = true
- mpRest = 7
- inCombat = true
- }
- } else {
- if(user.properties.get("intMP") < user.properties.get("intMPMax")) {
- mpcheck = true
- }
- }
- if(user.properties.get("intHP") < user.properties.get("intHPMax")) {
- hpcheck = true
- }
- if((hpcheck == true || mpcheck == true) && (state == 1 || (state == 2 && inCombat == true))) {
- //health rest formula
- var restedhp = 0
- var restedmp = 0
- var newhp = Number(user.properties.get("intHP"))
- var newmp = Number(user.properties.get("intMP"))
- var maxhp = Number(user.properties.get("intHPMax"))
- var maxmp = Number(user.properties.get("intMPMax"))
- if(hpcheck == true && state == 1) {
- restedhp = Integer(user.properties.get("intHPMax")) / 16
- restedhp = Integer(restedhp)
- newhp += Number(restedhp)
- if(newhp > maxhp)
- user.properties.put("intHP", maxhp)
- else if(newhp < 0)
- user.properties.put("intHP", 0)
- else
- user.properties.put("intHP", newhp)
- }
- if(mpcheck == true) {
- restedmp = mpRest
- restedmp = Integer(restedmp)
- newmp += Number(restedmp)
- if(newmp > maxmp)
- user.properties.put("intMP", maxmp)
- else if(newmp < 0)
- user.properties.put("intMP", 0)
- else
- user.properties.put("intMP", newmp)
- }
- sendUotls(user, true, true, false, false)
- }
- }
- }
- function resPlayer(user) {
- var room = zone.getRoom(user.getRoom())
- var hp = Integer(user.properties.get("intHP"))
- var state = Number(user.properties.get("intState"))
- var maxHP = Integer(user.properties.get("intHPMax"))
- var maxMP = Integer(user.properties.get("intMPMax"))
- if(state <= 0) {
- user.properties.put("intState", 1)
- user.properties.put("intHP", maxHP)
- user.properties.put("intMP", maxMP)
- var mapObj = worldMaps.get(room.getName().split("-")[0])
- var spawnFrame = String(mapObj.spawnFrame)
- var spawnPad = String(mapObj.spawnPad)
- _server.sendResponse(["resTimed222", String(spawnFrame), String(spawnPad)], -1, null, [user], "str")
- var o = {
- "intHP" : maxHP,
- "intMP" : maxMP,
- "intState" : 1
- }
- var uotls = {
- "cmd" : "notls",
- "o" : o,
- "unm" : String(user.getName())
- }
- _server.sendResponse(uotls, -1, null, room.getAllUsers(), "json")
- }
- }
- function who(user, all) {
- var userinfoid = {}
- if(all) {
- var wat = zone.getUserList().toArray()
- for each(var userWat in wat) {
- var usersinfo = {}
- usersinfo.iLvl = Integer(userWat.properties.get("intLevel"))
- usersinfo.ID = Integer(userWat.getUserId())
- usersinfo.sName = String(userWat.getName())
- usersinfo.sClass = String(worldClasses.get(Integer(userWat.properties.get("intClassId"))).sClassName)
- userinfoid[userWat] = usersinfo
- }
- } else {
- var room = zone.getRoom(user.getRoom())
- var usersInRoom = room.getUserList()
- for each(var usr in usersInRoom) {
- var auser = _server.getUserById(usr)
- if(Number(auser.properties.get("modOn")) == 0 || isStaff(user)) {
- var usersinfo = {}
- usersinfo.iLvl = Integer(auser.properties.get("intLevel"))
- usersinfo.ID = Integer(usr)
- usersinfo.sName = String(auser.getName())
- usersinfo.sClass = String(worldClasses.get(Integer(auser.properties.get("intClassId"))).sClassName)
- userinfoid[usr] = usersinfo
- }
- }
- }
- var whojson = {
- "cmd": "who",
- "users":userinfoid
- }
- _server.sendResponse(whojson, -1, null, [user], "json")
- if(all)
- _server.sendResponse(["server", zone.getUserCount() + " users online."], -1, null, [user], "str")
- }
- function sendEnhanceDetails(user) {
- var wat = {}
- wat.cmd = "enhp"
- wat.o = enhInfo
- _server.sendResponse(wat, -1, null, [user], "json")
- }
- function initEnhanceDetails() {
- var query = "SELECT * FROM etl_enhance_info"
- var queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var id = String(set.getItem("id"))
- var x = {
- "ID": ""+set.getItem("id"),
- "sName": ""+set.getItem("sName"),
- "sDesc": ""+set.getItem("sDesc"),
- "iWIS": ""+set.getItem("iWIS"),
- "iEND": ""+set.getItem("iEND"),
- "iLCK": ""+set.getItem("iLCK"),
- "iSTR": ""+set.getItem("iSTR"),
- "iDEX": ""+set.getItem("iDEX"),
- "iINT": ""+set.getItem("iINT")
- }
- enhInfo[id] = x
- //debug("Enhancement \"" + set.getItem("sName") + "\" loaded.")
- }
- trace(">> Enchancements: " + queryRes.size())
- }
- }
- function calculateMP(user, mm) {
- if(getManaType(user) == 0) {
- return Number(Math.round(25+Number(getMPFromStats(user))))
- } else if(getManaType(user) == 1) {
- if(mm == "max" || mm == "min") {
- return 100
- } else {
- return Number(user.properties.get("intMP"))
- }
- } else {
- if(mm == "max") {
- return 100
- } else if(mm == "min") {
- return 0
- } else {
- return Number(user.properties.get("intMP"))
- }
- }
- }
- function calculateHP(user) {
- return Number(Math.round(100+Number(getHPFromStats(user))))
- }
- function stopFights(user, room) {
- if(user) {
- var room = zone.getRoom(user.getRoom())
- userid = user.getUserId()
- var mts = ""
- for(var i = 1; i < 20; i++) {
- //var monObj = mapMonsters.get(room.getName()+":"+i)
- var monObj = room.properties.get(String("m"+(i)))
- if(monObj) {
- if(monObj.targets.size() > 0) {
- if(monObj.targets.contains(String(userid))) {
- monObj.targets.remove(String(userid))
- if(monObj.targets.size() < 1 && monObj.intState != 0) {
- var rsparams = {}
- rsparams.targetid = i
- rsparams.targetmap = monObj.MonMap
- respawnMonster(rsparams)
- }
- }
- }
- } else {
- break
- }
- }
- user.properties.put("intState", 1)
- sendUotls(user, false, false, false, false)
- }
- }
- function initArrRep() {
- var i = 1
- while (i < 10)
- {
- var rankExp = Math.pow((i + 1), 3) * 100
- if (i > 1){
- arrRanks[i]=(rankExp + arrRanks[(i - 1)])
- } else {
- arrRanks[i]=(rankExp + 100)
- }
- //debug("Rank " + i + ": " + arrRanks[i])
- i++
- }
- }
- function initArrExpOld(user) {
- var level = Integer(user.properties.get("intLevel"))
- if(level < maxLevel) {
- var exp = level * 43 * level * 11 + 2329
- return Integer(exp)
- } else {
- return 200000000
- }
- }
- function initArrExp() {
- var i = 1
- while (i < Number(maxLevel))
- {
- var levelExp = Math.pow((i + 1), 3) * 10
- if (i > 1){
- arrLevels[i]=(levelExp)
- } else {
- arrLevels[i]=(levelExp + 100)
- }
- i++
- }
- while (i <= 10000)
- {
- arrLevels[i] = 200000000
- i++
- }
- }
- function cacheWorldObjects() {
- // Cache Classes
- trace(">> World object caching operation started")
- //trace(">> Caching user classes...")
- var query = "SELECT * FROM etl_classes"
- var queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var classid = Integer(set.getItem("classid"))
- var classObj = {
- "sStats": set.getItem("sStats"),
- "sDesc": set.getItem("sDesc"),
- "sClassCat": set.getItem("sClassCat"),
- "sClassName": set.getItem("className"),
- "passives": set.getItem("passives").split(","),
- "skills": set.getItem("skills").split(","),
- "aMRM": set.getItem("aMRM")
- }
- if(java.lang.String(set.getItem("aMRM")).contains(":")) {
- classObj.aMRM = String(set.getItem("aMRM")).split(",")
- }
- worldClasses.put(classid, classObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + classObj.sClassName + " id: " + classid)
- }
- trace(">> Classes: " + queryRes.size())
- }
- //trace(">> Caching class skills...")
- query = "SELECT * FROM etl_skills"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var skillid = Integer(set.getItem("id"))
- var skillObj = {
- "name": set.getItem("name"),
- "anim": set.getItem("anim"),
- "desc": set.getItem("desc"),
- "iscrit": set.getItem("iscrit"),
- "damage": set.getItem("damage"),
- "mana": set.getItem("mana"),
- "icon": set.getItem("icon"),
- "range": set.getItem("range"),
- "dsrc": set.getItem("dsrc"),
- "icon": set.getItem("icon"),
- "ref": set.getItem("ref"),
- "tgt": set.getItem("tgt"),
- "typ": set.getItem("typ"),
- "damagetyp": set.getItem("damagetyp"),
- "strl": set.getItem("str1"),
- "auto": set.getItem("auto"),
- "cd": set.getItem("cd"),
- "aura": set.getItem("aura"),
- "auratgtMax": set.getItem("auratgtMax"),
- "tgtMax": set.getItem("tgtMax"),
- "tgtMin": set.getItem("tgtMin"),
- "fx": set.getItem("fx"),
- "castTime": set.getItem("castTime"),
- "multi": set.getItem("multi"),
- "multitime": set.getItem("multitime"),
- "sId": Number(set.getItem("id")),
- "projspd": Number(set.getItem("projspd"))
- }
- worldSkills.put(skillid, skillObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + skillObj.name + " id: " + skillid)
- }
- trace(">> Skills: " + queryRes.size())
- }
- //trace(">> Caching class passive skills...")
- query = "SELECT * FROM etl_passives"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var skillid = Integer(set.getItem("id"))
- var skillObj = {
- "name": set.getItem("name"),
- "icon": set.getItem("icon"),
- "ref": set.getItem("ref"),
- "type": set.getItem("type"),
- "desc": set.getItem("desc"),
- "auraID": set.getItem("auraID")
- }
- worldPassives.put(skillid, skillObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + skillObj.name + " id: " + skillid)
- }
- trace(">> Passives: " + queryRes.size())
- }
- //trace(">> Caching auras...")
- query = "SELECT * FROM etl_skills_auras"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var auraid = Integer(set.getItem("id"))
- var auraObj = {
- "name": set.getItem("name"),
- "seconds": set.getItem("seconds"),
- "per": set.getItem("per"),
- "iscrit": set.getItem("iscrit"),
- "reduction": set.getItem("reduction"),
- "damage": set.getItem("damage"),
- "cat": set.getItem("cat"),
- "type": set.getItem("type"),
- "usetype": set.getItem("usetype"),
- "id": set.getItem("id"),
- "typ": set.getItem("type")
- }
- worldAuras.put(auraid, auraObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + skillObj.name + " id: " + skillid)
- }
- trace(">> Auras: " + queryRes.size())
- }
- //trace(">> Caching shops...")
- query = "SELECT * FROM etl_items_shops"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var shopid = Integer(set.getItem("shop_id"))
- var shopItems = set.getItem("shop_items").split(",")
- var itemsList = []
- for(var si = 1; si < shopItems.length; si++)
- itemsList.push(shopItems[si])
- var shopObj = {
- "sName": set.getItem("sName"),
- "sField": set.getItem("sField"),
- "bStaff": set.getItem("bStaff"),
- "bHouse": set.getItem("bHouse"),
- "items": itemsList
- }
- if(java.lang.String(set.getItem("shop_items")).contains(",")) {
- //shopObj.items = String(set.getItem("shop_items")).split(",")
- } else {
- //shopObj.items = String(set.getItem("shop_items"))
- }
- worldShops.put(shopid, shopObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + shopObj.sName + " id: " + shopid)
- }
- trace(">> Shops: " + queryRes.size())
- }
- //trace(">> Caching quests...")
- /*query = "SELECT * FROM etl_quests"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var questid = Integer(set.getItem("id"))
- var questObj = {
- "id": questid,
- "sName": set.getItem("sName"),
- "sFileName": doCache(set.getItem("FileName")),
- "iMaxPlayers": Number(set.getItem("max_players")),
- "sExtra": set.getItem("sExtra"),
- "mapItems": [],
- "monTree": [],
- "monFrame": []
- }
- worldQuests.put(questid, questObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + mapObj.sName + " id: " + mapid)
- }
- trace(">> Quests: " + queryRes.size())
- }*/
- //trace(">> Caching monsters...")
- query = "SELECT * FROM etl_monsters"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var monid = Integer(set.getItem("MonID"))
- var monObj = {
- "MonID": set.getItem("MonID"),
- "intMPMax": set.getItem("intMPMax"),
- "intGold": set.getItem("intGold"),
- "intCoins": set.getItem("intCoins"),
- "intLevel": set.getItem("intLevel"),
- "minDmg": set.getItem("minDmg"),
- "maxDmg": set.getItem("maxDmg"),
- "strDrops": set.getItem("strDrops"),
- "intExp": set.getItem("intExp"),
- "sRace": set.getItem("sRace"),
- "iDPS":1,
- "intHPMax": set.getItem("intHPMax"),
- "intHPMax1": Number(set.getItem("intHPMax"))+25,
- "intHPMax2": Number(set.getItem("intHPMax"))-25,
- "strElement": set.getItem("strElement"),
- "intRSC": 1,
- "strLinkage": set.getItem("strLinkage"),
- "strMonFileName": doCache(set.getItem("strMonFileName")),
- "strMonName": set.getItem("strMonName"),
- "intRep": set.getItem("intRep"),
- "react": "",
- "pvpscore": set.getItem("pvpscore"),
- "respawnTime": Number(set.getItem("respawnTime")),
- "ann": Number(set.getItem("ann")),
- "attacks": set.getItem("attacks")
- }
- worldMonsters.put(monid, monObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + monObj.strMonName + " id: " + monid)
- }
- trace(">> Monsters: " + queryRes.size())
- }
- //trace(">> Caching maps...")
- query = "SELECT * FROM etl_maps"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var mapid = Integer(set.getItem("id"))
- var mapObj = {
- "id": mapid,
- "sName": set.getItem("sName"),
- "sNameD": set.getItem("sNameD"),
- "sFileName": doCache(set.getItem("FileName")),
- "iMaxPlayers": Number(set.getItem("max_players")),
- "sExtra": set.getItem("sExtra"),
- "spawnFrame": set.getItem("spawnFrame"),
- "spawnPad": set.getItem("spawnPad"),
- "mapItems": [],
- "monTree": [],
- "monFrame": [],
- "iLevelMin": Number(set.getItem("iLevelMin"))
- }
- if(set.getItem("monsters_tree") != "") {
- mapObj.mapItems = String(set.getItem("mapitems")).split(",")
- mapObj.monTree = String(set.getItem("monsters_tree")).split(",")
- mapObj.monFrame = String(set.getItem("monsters_frame")).split(",")
- }
- worldMaps.put(set.getItem("sName"), mapObj)
- createNewRoom(set.getItem("sName")+"-1")
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + mapObj.sName + " id: " + mapid)
- }
- trace(">> Maps: " + queryRes.size())
- }
- //trace(">> Caching items...")
- query = "SELECT * FROM etl_items"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var itemid = Integer(set.getItem("item_id"))
- var itemObj = {
- "ItemID": itemid,
- "bCoins": set.getItem("bCoins"),
- "bStaff": set.getItem("bStaff"),
- "bHouse": set.getItem("bHouse"),
- "bTemp": set.getItem("bTemp"),
- "bUpg": set.getItem("bUpg"),
- "EnhPatternID": 1,
- "EnhID": 1,
- "FactionID": set.getItem("FactionID"),
- "iClass": set.getItem("iClass"),
- "iCost": set.getItem("iCost"),
- "wDPS": set.getItem("iDPS"),
- "iLvl": set.getItem("iLvl"),
- "iRty": set.getItem("iRty"),
- "iQtyRemain": set.getItem("iQtyRemain"),
- "iQty": set.getItem("iQty"),
- "iReqCP": set.getItem("iReqCP"),
- "iReqRep": set.getItem("iReqRep"),
- "iRng": set.getItem("iRng"),
- "iRty": set.getItem("iRty"),
- "iStk": set.getItem("iStk"),
- "sDesc": set.getItem("sDesc"),
- "sElmt": set.getItem("sElmt"),
- "sES": set.getItem("sES"),
- "sType": set.getItem("sType"),
- "sFaction": set.getItem("sFaction"),
- "sFile": doCache(set.getItem("sFile")),
- "sIcon": set.getItem("sIcon"),
- "sLink": set.getItem("sLink"),
- "sReqQuests": set.getItem("sReqQuests"),
- "ClassID": set.getItem("ClassID"),
- "minDmg": set.getItem("minDmg"),
- "maxDmg": set.getItem("maxDmg"),
- "magicDmg": set.getItem("magicDmg"),
- "STR": set.getItem("STR"),
- "INT": set.getItem("INT"),
- "DEX": set.getItem("DEX"),
- "WIS": set.getItem("WIS"),
- "END": set.getItem("END"),
- "LCK": set.getItem("LCK"),
- "sp": Number(set.getItem("sp")),
- "attacks": set.getItem("attacks")
- }
- itemObj.sName = String(addItemRarity(set.getItem("sName"), itemObj.iRty))
- worldItems.put(Number(itemid), itemObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + itemObj.sName + " id: " + itemid)
- }
- trace(">> Items: " + queryRes.size())
- }
- //trace(">> Caching hairs...")
- query = "SELECT * FROM etl_hairs"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var hairid = Integer(set.getItem("hairID"))
- var hairObj = {
- "sFile": set.getItem("sFile").toLowerCase(),
- "HairID": hairid,
- "sName": set.getItem("sName"),
- "sGen": set.getItem("sGen")
- }
- worldHairs.put(hairid, hairObj)
- }
- trace(">> Hairs: " + queryRes.size())
- }
- //trace(">> Caching hair shops...")
- query = "SELECT * FROM etl_hairshop"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var hshopid = Integer(set.getItem("id"))
- var hshopObj = {
- "hairs": set.getItem("hairs"),
- "hairsM": set.getItem("hairsM"),
- "hairsF": set.getItem("hairsF")
- }
- worldHairShops.put(hshopid, hshopObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + shopObj.sName + " id: " + hshopid)
- }
- trace(">> Hair Shops: " + queryRes.size())
- }
- //trace(">> Caching guilds...")
- query = "SELECT * FROM etl_guilds"
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var gid = Integer(set.getItem("id"))
- var gObj = {
- "id": set.getItem("id"),
- "guildName": set.getItem("guildName")
- }
- worldGuilds.put(Number(gid), gObj)
- //debug(">> [" + (i + 1) + "/" + queryRes.size() + "] " + shopObj.sName + " id: " + hshopid)
- }
- trace(">> Guilds: " + queryRes.size())
- }
- initEnhanceDetails()
- /* Unquote to test cache
- debug(">> Testing cache...")
- for each (var key in worldClasses.keySet().toArray()) {
- debug("worldClasses[" + key + "]: " + worldClasses.get(key).sClassName)
- }
- debug(">> Cache test complete.")
- */
- trace(">> World object caching operation end")
- }
- function getRankFromCP(cp){
- var i = 1
- while (i < 10)
- {
- if (arrRanks[i] >= cp){
- return i
- }
- i++
- }
- return -1
- }
- function sendServerUpdate(user, data1){
- _server.sendResponse(["server", data1], -1, null, [user], "str");
- }
- function isSkillOK(rank, skillslot) {
- if (rank <= 1 && skillslot == 2)
- return false
- else if (rank <= 2 && skillslot == 3)
- return false
- else if (rank <= 4 && skillslot == 4)
- return false
- else if (rank <= 5 && skillslot == 5)
- return false
- else
- return true
- }
- function sendCVU(user) {
- var cvu = {"cmd":"cvu","o":{"PCstRatio":7.47,"PChpDelta":1640,"PChpBase1":360,"baseHit":0,"intSPtoDPS":10,"resistRating":17,"curveExponent":0.66,"baseCritValue":1.5,"PChpGoal100":4000,"intLevelCap":100,"baseMiss":0.1,"baseParry":0.03,"GstBase":12,"modRating":3,"baseResistValue":0.7,"baseBlockValue":0.7,"intHPperEND":5,"baseHaste":0,"baseBlock":0,"statsExponent":1,"PChpBase100":2000,"intAPtoDPS":10,"PCstBase":15,"baseCrit":0.05,"baseEventValue":0.05,"GstGoal":572,"PChpGoal1":400,"GstRatio":5.6,"intLevelMax":100,"bigNumberBase":8,"PCstGoal":762,"baseDodge":0.04,"PCDPSMod":0.85}}
- _server.sendResponse(cvu, -1, null, [user], "json")
- }
- function sendStats(user) {
- var eqp = user.properties.get("eqp")
- var wepSTR = (worldItems.get(eqp.get("Weapon"))) ? Number(worldItems.get(eqp.get("Weapon")).STR) : 0
- var wepINT = (worldItems.get(eqp.get("Weapon"))) ? Number(worldItems.get(eqp.get("Weapon")).INT) : 0
- var wepDEX = (worldItems.get(eqp.get("Weapon"))) ? Number(worldItems.get(eqp.get("Weapon")).DEX) : 0
- var wepLCK = (worldItems.get(eqp.get("Weapon"))) ? Number(worldItems.get(eqp.get("Weapon")).LCK) : 0
- var wepWIS = (worldItems.get(eqp.get("Weapon"))) ? Number(worldItems.get(eqp.get("Weapon")).WIS) : 0
- var wepEND = (worldItems.get(eqp.get("Weapon"))) ? Number(worldItems.get(eqp.get("Weapon")).END) : 0
- var baSTR = (worldItems.get(eqp.get("ba"))) ? Number(worldItems.get(eqp.get("ba")).STR) : 0
- var baINT = (worldItems.get(eqp.get("ba"))) ? Number(worldItems.get(eqp.get("ba")).INT) : 0
- var baDEX = (worldItems.get(eqp.get("ba"))) ? Number(worldItems.get(eqp.get("ba")).DEX) : 0
- var baLCK = (worldItems.get(eqp.get("ba"))) ? Number(worldItems.get(eqp.get("ba")).LCK) : 0
- var baWIS = (worldItems.get(eqp.get("ba"))) ? Number(worldItems.get(eqp.get("ba")).WIS) : 0
- var baEND = (worldItems.get(eqp.get("ba"))) ? Number(worldItems.get(eqp.get("ba")).END) : 0
- var heSTR = (worldItems.get(eqp.get("he"))) ? Number(worldItems.get(eqp.get("he")).STR) : 0
- var heINT = (worldItems.get(eqp.get("he"))) ? Number(worldItems.get(eqp.get("he")).INT) : 0
- var heDEX = (worldItems.get(eqp.get("he"))) ? Number(worldItems.get(eqp.get("he")).DEX) : 0
- var heLCK = (worldItems.get(eqp.get("he"))) ? Number(worldItems.get(eqp.get("he")).LCK) : 0
- var heWIS = (worldItems.get(eqp.get("he"))) ? Number(worldItems.get(eqp.get("he")).WIS) : 0
- var heEND = (worldItems.get(eqp.get("he"))) ? Number(worldItems.get(eqp.get("he")).END) : 0
- var coSTR = (worldItems.get(eqp.get("co"))) ? Number(worldItems.get(eqp.get("co")).STR) : 0
- var coINT = (worldItems.get(eqp.get("co"))) ? Number(worldItems.get(eqp.get("co")).INT) : 0
- var coDEX = (worldItems.get(eqp.get("co"))) ? Number(worldItems.get(eqp.get("co")).DEX) : 0
- var coLCK = (worldItems.get(eqp.get("co"))) ? Number(worldItems.get(eqp.get("co")).LCK) : 0
- var coWIS = (worldItems.get(eqp.get("co"))) ? Number(worldItems.get(eqp.get("co")).WIS) : 0
- var coEND = (worldItems.get(eqp.get("co"))) ? Number(worldItems.get(eqp.get("co")).END) : 0
- var arSTR = (worldItems.get(eqp.get("ar"))) ? Number(worldItems.get(eqp.get("ar")).STR) : 0
- var arINT = (worldItems.get(eqp.get("ar"))) ? Number(worldItems.get(eqp.get("ar")).INT) : 0
- var arDEX = (worldItems.get(eqp.get("ar"))) ? Number(worldItems.get(eqp.get("ar")).DEX) : 0
- var arLCK = (worldItems.get(eqp.get("ar"))) ? Number(worldItems.get(eqp.get("ar")).LCK) : 0
- var arWIS = (worldItems.get(eqp.get("ar"))) ? Number(worldItems.get(eqp.get("ar")).WIS) : 0
- var arEND = (worldItems.get(eqp.get("ar"))) ? Number(worldItems.get(eqp.get("ar")).END) : 0
- var stat = {
- "tempSta":{
- "ba":{"STR":baSTR,"INT":baINT,"DEX":baDEX,"LCK":baLCK,"WIS":baWIS,"END":baEND},
- "Weapon":{"STR":wepSTR,"INT":wepINT,"DEX":wepLCK,"LCK":wepLCK,"WIS":wepWIS,"END":wepEND},
- "he":{"STR":heSTR,"INT":heINT,"DEX":heDEX,"LCK":heLCK,"WIS":heWIS,"END":heEND},
- "co":{"STR":coSTR,"INT":coINT,"DEX":coDEX,"LCK":coLCK,"WIS":coWIS,"END":coEND},
- "ar":{"STR":arSTR,"INT":arINT,"DEX":arDEX,"LCK":arLCK,"WIS":arWIS,"END":arEND},
- "innate":{
- "STR":getBaseStats(user).STR,
- "INT":getBaseStats(user).INT,
- "DEX":getBaseStats(user).DEX,
- "WIS":getBaseStats(user).WIS,
- "LCK":getBaseStats(user).LCK,
- "END":getBaseStats(user).END
- }
- },
- "cmd":"stu",
- "sta":{"$tdo":0.115,"$thi":0.038500000000000006,"_cmi":1,"$smb":0,"_tdo":0.04,"_cmo":1,"_sem":0.05,"$WIS":23,"$tha":0.00000000000232,"$tpa":0.03,"_cdi":1,"_sp":0,"$cpo":1.1,"_chi":1,"$cpi":1,"_cdo":1,"_tbl":0,"_tpa":0.03,"_cho":1,"$LCK":14,"$shb":0,"$STR":120,"$sem":0.12000000000000001,"_ap":0,"_sbm":0.7,"$cmi":0.92,"$cai":0.9,"$tbl":0,"_srm":0.7,"_cai":1,"$DEX":77,"_STR":61,"$ap":240,"$cao":1,"_DEX":50,"$sbm":0.61,"$cmc":1,"$INT":32,"_cpi":1,"$chi":1,"$cho":1,"_INT":11,"_scm":1.5,"_cao":1,"_END":68,"_WIS":23,"_shb":0,"_tre":0.07,"$cdo":1,"$tcr":0.16999999999999998,"$END":123,"$cdi":1,"_cpo":1,"$scm":1.675,"_tcr":0.05,"_tha":0,"_thi":0,"$srm":0.7,"$cmo":1,"$sp":264,"_LCK":14,"_cmc":1,"$tre":0.07,"_smb":0},"wDPS":500}
- _server.sendResponse(stat, -1, null, [user], "json")
- var userData = {}
- userData.uoName = String(user.getName())
- userData.strUsername = String(user.properties.get("strUsername"))
- userData.tdmgMin = getDamagePower(user, "min")
- userData.tdmgMax = getDamagePower(user, "max")
- userData.aPower = Number(getDamagePower(user, "min") + getDamagePower(user, "max"))
- userData.sPower = Number(getSpellPower(user))
- userData.vHit = getHitChance(user)
- userData.vHaste = Number(getHaste(user))
- userData.vCrit = getCritChance(user)
- userData.vDodge = 0
- user.properties.put("intHPMax", Number(calculateHP(user)))
- user.properties.put("intMPMax", Number(calculateMP(user, "max")))
- if(Number(user.properties.get("intHP")) > Number(user.properties.get("intHPMax")))
- user.properties.put("intHP", Number(user.properties.get("intHPMax")))
- if(Number(user.properties.get("intMP")) > Number(user.properties.get("intMPMax")))
- user.properties.put("intMP", Number(user.properties.get("intMPMax")))
- userData.intMPMax = Number(user.properties.get("intMPMax"))
- userData.intHPMax = Number(user.properties.get("intHPMax"))
- userData.intMP = Number(user.properties.get("intMP"))
- userData.intHP = Number(user.properties.get("intHP"))
- var wat = {"cmd": "notls", "o": userData, "unm": String(user.getName())}
- _server.sendResponse(wat, -1, null, [user], "json")
- }
- function addItemRarity(itemName, iRarity) {
- var iName = String(itemName)
- var iRty = Number(iRarity)
- //trace(iRty)
- switch(iRty) {
- case 1:
- return "<font color=\"#4DE800\">" + iName + "</font>"
- case 2:
- return "<font color=\"#B300FF\">" + iName + "</font>"
- case 3:
- return "<font color=\"#FF8000\">" + iName + "</font>"
- default:
- return String(iName)
- }
- }
- function getManaType(user) {
- var cid = Number(user.properties.get("intClassId"))
- classMType = []
- //2 for fury; 1 for energy
- classMType[1] = 2
- classMType[2] = 0
- classMType[3] = 0
- classMType[4] = 1
- classMType[5] = 0
- return Number(classMType[cid])
- }
- function getBaseStats(user) {
- var statsObj = {}
- var cid = Number(user.properties.get("intClassId"))
- var lvl = Number(user.properties.get("intLevel"))
- var classStats = []
- classStats[1] = {"STR": 5, "INT": 1, "DEX": 2, "WIS": 1, "LCK": 1, "END": 4}
- classStats[2] = {"STR": 1, "INT": 5, "DEX": 1, "WIS": 4, "LCK": 1, "END": 2}
- classStats[3] = {"STR": 1, "INT": 5, "DEX": 1, "WIS": 4, "LCK": 1, "END": 2}
- classStats[4] = {"STR": 3, "INT": 1, "DEX": 6, "WIS": 1, "LCK": 1, "END": 2.5}
- classStats[5] = {"STR": 3, "INT": 1, "DEX": 6, "WIS": 1, "LCK": 1, "END": 2.5}
- classStats[5] = {"STR": 3, "INT": 1, "DEX": 6, "WIS": 1, "LCK": 1, "END": 2.5}
- statsObj.STR = Number(lvl*classStats[cid].STR)
- statsObj.INT = Number(lvl*classStats[cid].INT)
- statsObj.DEX = Number(lvl*classStats[cid].DEX)
- statsObj.WIS = Number(lvl*classStats[cid].WIS)
- statsObj.LCK = Number(lvl*classStats[cid].LCK)
- statsObj.END = Number(lvl*classStats[cid].END)
- return statsObj
- }
- function getSpellPower(user) {
- var sPower = 0
- var INT = 0
- var eqp = user.properties.get("eqp")
- sPower = (worldItems.get(eqp.get("Weapon"))) ? Number(worldItems.get(eqp.get("Weapon")).magicDmg) : 0
- INT = (worldItems.get(eqp.get("Weapon"))) ? INT + Number(worldItems.get(eqp.get("Weapon")).INT) : INT
- INT = (worldItems.get(eqp.get("ba"))) ? INT + Number(worldItems.get(eqp.get("ba")).INT) : INT
- INT = (worldItems.get(eqp.get("he"))) ? INT + Number(worldItems.get(eqp.get("he")).INT) : INT
- INT = (worldItems.get(eqp.get("co"))) ? INT + Number(worldItems.get(eqp.get("co")).INT) : INT
- INT += Number(getBaseStats(user).INT)
- sPower += Number(Number(INT) * 2.25)
- return Number(Math.floor(sPower))
- }
- function getStatByName(user, statName) {
- var eqp = user.properties.get("eqp")
- var keySet = eqp.keySet()
- var statValue = 0
- switch(String(statName)) {
- case "STR":
- statValue += Number(getBaseStats(user).STR)
- break
- case "INT":
- statValue += Number(getBaseStats(user).INT)
- break
- case "DEX":
- statValue += Number(getBaseStats(user).DEX)
- break
- case "END":
- statValue += Number(getBaseStats(user).END)
- break
- case "LCK":
- statValue += Number(getBaseStats(user).LCK)
- break
- case "WIS":
- statValue += Number(getBaseStats(user).WIS)
- break
- default:
- return 0
- }
- for (var i = keySet.iterator(); i.hasNext();) {
- var key = String(i.next())
- var itemObj = worldItems.get(eqp.get(key))
- if(itemObj && eqp.get(key) != 90000) {
- switch(String(statName)) {
- case "STR":
- statValue += Number(itemObj.STR)
- break
- case "INT":
- statValue += Number(itemObj.INT)
- break
- case "DEX":
- statValue += Number(itemObj.DEX)
- break
- case "END":
- statValue += Number(itemObj.END)
- break
- case "LCK":
- statValue += Number(itemObj.LCK)
- break
- case "WIS":
- statValue += Number(itemObj.WIS)
- break
- default:
- return 0
- }
- }
- }
- //trace(String(statName) + ": " + Number(Integer(statValue)))
- return Number(Integer(statValue))
- }
- function getDamagePower(user, dmgtype) {
- var STR = Number(getStatByName(user, "STR"))
- var dmgMin = 5
- var dmgMax = 10
- var eqp = user.properties.get("eqp")
- var itemObj = worldItems.get(eqp.get("Weapon"))
- if(itemObj) {
- dmgMin += Number(itemObj.minDmg)
- dmgMax += Number(itemObj.maxDmg)
- }
- dmgMin += Number(Number(STR) * 0.75)
- dmgMax += Number(Number(STR) * 0.75)
- if(String(dmgtype) == "min") {
- return Number(Math.floor(dmgMin))
- } else if(String(dmgtype) == "max") {
- return Number(Math.floor(dmgMax))
- }
- }
- function getCritChance(user) {
- var DEX = Number(getStatByName(user, "DEX"))
- var critChance = Number(Number(DEX) * 0.15)
- if(critChance > 100)
- critChance = 100
- return Number(Integer2(critChance))
- }
- function getHitChance(user) {
- var STR = Number(getStatByName(user, "STR"))
- var hitChance = 72 + Number(Number(STR) * 0.15)
- if(hitChance > 100)
- hitChance = 100
- return Number(Integer2(hitChance))
- }
- function getHPFromStats(user) {
- var END = Number(getStatByName(user, "END"))
- var bonusHP = Number(Number(END) * 25.3)
- return Integer(bonusHP)
- }
- function getMPFromStats(user) {
- var INT = Number(getStatByName(user, "INT"))
- var bonusMP = Number(Number(INT) * 2)
- return Integer(bonusMP)
- }
- function getHaste(user) {
- var INT = Number(getStatByName(user, "INT"))
- var hasteBonus = Number(Number(INT) * 0.12)
- if(Number(hasteBonus) > 50) {
- hasteBonus = 50
- }
- return Number(Integer2(hasteBonus))
- }
- function loadSkills(user, classid) {
- var classObj = worldClasses.get(classid)
- var rank = getRankFromCP(Integer(user.properties.get("iCP")))
- rank = (rank == 9 || rank == -1) ? 10 : rank
- var passive = []
- var active = []
- for(var i = 0; i < classObj.skills.length; i++) {
- var skill = {}
- var skillObj = worldSkills.get(Integer(classObj.skills[i]))
- skill.icon = ""+skillObj.icon
- skill.mp = ""+skillObj.mana
- skill.nam = ""+skillObj.name
- skill.anim = ""+skillObj.anim
- skill.desc = ""+skillObj.desc
- skill.isOK = Boolean(isSkillOK(rank, i))
- if(skillObj.tgtMax != 0) {
- skill.tgtMax = ""+skillObj.tgtMax
- skill.tgtMin = ""+skillObj.tgtMin
- }
- skill.range = ""+skillObj.range
- skill.fx = ""+skillObj.fx
- skill.damage = ""+skillObj.damage
- skill.dsrc = ""+skillObj.dsrc
- skill.ref = ""+skillObj.ref
- if(skill.ref != "aa")
- skill.ref = "a"+i
- skill.castTime = ""+skillObj.castTime
- //skill.castTime = 0
- if(skill.ref == "aa")
- skill.auto = true
- skill.tgt = ""+skillObj.tgt
- skill.typ = ""+skillObj.typ
- skill.strl = ""+skillObj.strl
- skill.cd = ""+skillObj.cd
- active.push(skill)
- }
- //active.push({
- // "icon":"icu1","nam":"Potions","anim":"Salute","mp":0,"desc":"Equip a potion or scroll from your inventory to use it here.","isOK":true,"range":808,"fx":"","ref":"a5","tgt":"f","typ":"m","strl":"","cd":5000
- //})
- for(var i = classObj.passives.length; i < classObj.passives.length; i++) {
- var skill = {}
- var skillObj = worldPassives.get(Integer(classObj.passives[i]))
- skill.icon = ""+skillObj.icon
- skill.ref = ""+skillObj.ref
- skill.nam = ""+skillObj.name
- skill.desc = ""+skillObj.desc
- skill.isOK = true
- if(rank < 4)
- skill.isOK = false
- skill.auras = []
- skill.typ = ""+skillObj.type
- passive.push(skill)
- }
- var sAct = {
- "cmd": "sAct",
- "actions": {"active" : active, "passive": passive}
- }
- _server.sendResponse(sAct, -1, null, [user], "json")
- //sendStats(user)
- }
- function updateClass(user, classid) {
- var room = zone.getRoom(user.getRoom())
- var classObj = worldClasses.get(classid)
- if(classObj) {
- user.properties.put("intClassId", Integer(classid))
- var data = {
- "uid": String(user.getUserId()),
- "cmd": "doClass",
- "iCP": Number(user.properties.get("iCP")),
- "sClassCat": String(classObj.sClassCat),
- "cName": String(classObj.sClassName)
- }
- data.sStats = String(classObj.sStats)
- data.aMRM = classObj.aMRM
- data.sDesc = String(classObj.sDesc)
- _server.sendResponse(data, -1, null, room.getAllUsers(), "json")
- loadSkills(user, Integer(classid))
- }
- }
- function unequipItem(userid, itemid) {
- var user = _server.getUserById(userid)
- var room = zone.getRoom(user.getRoom())
- var itemObj = worldItems.get(itemid)
- if(itemObj.sES == "Weapon" || itemObj.sES == "ar" || itemObj.sES == "co" || itemObj.sES == "he" || itemObj.sES == "ba" || itemObj.sES == "pe" || itemObj.sES == "am"){
- var eqpObj = {
- "uid": userid,
- "cmd": "unequipItem",
- "ItemID": itemid,
- "strES": String(itemObj.sES),
- "sFile": String(itemObj.sFile),
- "sLink": String(itemObj.sLink)
- }
- var eqp = user.properties.get("eqp")
- eqp.remove(itemObj.sES)
- user.properties.put("eqp", eqp)
- dbase.executeCommand("UPDATE etl_users_items SET bEquip=0 WHERE user_id=" + user.properties.get("CharID") + " AND bEquip=1 AND sES='" + itemObj.sES + "' AND item_id=" + itemid + "")
- _server.sendResponse(eqpObj, -1, null, room.getAllUsers(), "json")
- if(itemObj.sES == "ar") {
- var cid = Number(user.properties.get("intClassId"))
- if(cid == 1) {
- equipItem(userid, 90000, true)
- } else if(cid == 2) {
- equipItem(userid, 90002, true)
- } else if(cid == 3) {
- equipItem(userid, 90003, true)
- } else if(cid == 4) {
- equipItem(userid, 90001, true)
- }
- }
- sendStats(user)
- }
- }
- function equipItem(userid, itemid, self) {
- var user = _server.getUserById(userid)
- var room = zone.getRoom(user.getRoom())
- var itemObj = worldItems.get(Number(itemid))
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+Integer(user.properties.get("CharID"))+"' AND item_id='"+itemid+"'"
- var queryRes = dbase.executeQuery(query)
- var errormsg = ""
- if(itemObj == null)
- errormsg = "Null item"
- if(self == false) {
- if(!getClassReqEquip(user, itemObj.ClassID))
- errormsg = "You can not wear this item."
- else if(itemObj.bStaff == 1 && !isStaff(user))
- errormsg = "This item is for staff only"
- else if(Integer(user.properties.get("intLevel")) < Integer(itemObj.iLvl))
- errormsg = "Your level is not high enough"
- else if(itemObj.bUpg == 1 && user.properties.get("iUpg") == 0)
- errormsg = "This item is for members only"
- }
- if(errormsg != "")
- _server.sendResponse({"cmd": "showError", "msg": String(errormsg)}, -1, null, [user], "json")
- if ((queryRes && queryRes.size() > 0 || self) && errormsg == "") {
- var eqpObj = {
- "uid": userid,
- "cmd": "equipItem",
- "eW": true,
- "ItemID": itemid,
- "strES": String(itemObj.sES),
- "sFile": String(itemObj.sFile),
- "sLink": String(itemObj.sLink),
- "sType": String(itemObj.sType)
- }
- var eqp = user.properties.get("eqp")
- eqp.put(itemObj.sES, itemid)
- user.properties.put("eqp", eqp)
- if(self == true) {
- if(itemid == 90000 || itemid == 90001 || itemid == 90002 || itemid == 90003) {
- _server.sendResponse(eqpObj, -1, null, room.getAllUsers(), "json")
- } else {
- _server.sendResponse(eqpObj, -1, null, [user], "json")
- }
- } else {
- dbase.executeCommand("UPDATE etl_users_items SET bEquip=0 WHERE user_id=" + user.properties.get("CharID") + " AND bEquip=1 AND sES='" + itemObj.sES + "'")
- dbase.executeCommand("UPDATE etl_users_items SET bEquip=1 WHERE user_id=" + user.properties.get("CharID") + " AND item_id=" + itemid + " AND bEquip=0")
- _server.sendResponse(eqpObj, -1, null, room.getAllUsers(), "json")
- //trace("user: " + user.getName() + " has equiped: " + itemid + " (self = " + self + ")")
- }
- sendStats(user)
- }
- }
- function useItemRequest(user, itemid) {
- var toGenger = (String(user.properties.get("strGender")) == "F") ? "M" : "F"
- if(itemid == 23) {
- removeItem(user, itemid, 1)
- changeGender(user.getName(), toGenger, 0)
- } else if(itemid == 24 || itemid == 25) {
- var lvlPlus = (itemid == 24) ? 5 : 10
- var cLvl = Number(user.properties.get("intLevel"))
- var mLvl = Number(maxLevel)
- if(cLvl >= mLvl) {
- _server.sendResponse(["warning", "You are already max level."], -1, null, [user], "str")
- } else {
- removeItem(user, itemid, 1)
- var lvlDiff = Number(mLvl-cLvl)
- if(lvlDiff < lvlPlus) {
- levelUp(user, cLvl+lvlDiff)
- } else {
- levelUp(user, cLvl+lvlPlus)
- }
- }
- } else if(itemid == 37){
- removeItem(user, itemid, 1)
- _server.sendResponse(["warning", "You are already max level."], -1, null, [user], "str")
- }
- }
- function removeItemFromArray(arrayOriginal, item) {
- var array = arrayOriginal
- var arrayLenght = array.length;
- for (i =0; i<arrayLenght; i++) {
- if (String(array[i]) == String(item)) {
- array.splice(i, 1);
- }
- }
- return (array)
- }
- function checkItemInArray(array, item) {
- var arrayLenght = array.length;
- for (i =0; i<arrayLenght; i++) {
- if (String(array[i]) == String(item)) {
- return (true)
- } else {
- return (false)
- }
- }
- }
- function loadInventoryBig(userid) {
- var user = _server.getUserById(userid)
- var room = zone.getRoom(user.getRoom())
- var inven = new Object()
- var friends = []
- var factions = []
- var items = []
- var hitems = []
- var list = user.properties.get("friends")
- for(var e = 0; e < list.length; e++) {
- if(list[e].length > 0){
- friends.push(getFriendInfo(list[e]))
- }
- }
- var ibankCount = 0
- bankCountQuery = "SELECT id, item_id FROM etl_users_items WHERE bBank=1 AND user_id=" + user.properties.get("CharID")
- bankCount = dbase.executeQuery(bankCountQuery)
- if (bankCount && bankCount.size() > 0) {
- for(var i = 0; i < bankCount.size(); i++) {
- var set = bankCount.get(i)
- var itemObj = worldItems.get(Number(set.getItem("item_id")))
- if(Number(itemObj.bCoins) == 0)
- ibankCount++
- }
- }
- query = "SELECT id,item_id,bEquip,iLvl,enh_id,sES,iQty,iCP FROM etl_users_items WHERE bBank=0 AND user_id=" + user.properties.get("CharID")
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var set = queryRes.get(i)
- var itemObj = worldItems.get(Number(set.getItem("item_id")))
- if(itemObj && itemObj.sES != "no item") {
- var item = new Object()
- item.ItemID = Integer(set.getItem("item_id"))
- item.sLink = String(itemObj.sLink)
- item.sElmt = String(itemObj.sElmt)
- item.bStaff = String(itemObj.bStaff)
- item.iRng = String(itemObj.iRng)
- item.iDPS = String(itemObj.iDPS)
- item.bCoins = String(itemObj.bCoins)
- item.sES = String(itemObj.sES)
- item.sType = String(itemObj.sType)
- item.iCost = String(itemObj.iCost)
- item.iRty = String(itemObj.iRty)
- item.iQty = String(set.getItem("iQty"))
- if (itemObj.sES == "Weapon") {
- item.EnhDPS = String(itemObj.iDPS)
- }
- if (itemObj.sES == "ar") {
- item.iQty = String(set.getItem("iCP"))
- }
- if (itemObj.sType == "Enhancement" || itemObj.sType == "Necklace" || itemObj.sType == "Item"
- || itemObj.sType == "Quest Item" || itemObj.sType == "Pet" || itemObj.sType == "Armor") {
- item.EnhID = String(itemObj.EnhID)
- item.PatternID = String(itemObj.EnhPatternID)
- item.iLvl = Integer(itemObj.iLvl)
- } else if (itemObj.EnhID > 0) {
- item.iLvl = Integer(set.getItem("iLvl"))
- item.EnhLvl = String(set.getItem("iLvl"))
- item.EnhID = String(itemObj.EnhID)
- item.EnhRty = String(itemObj.iRty)
- item.EnhPatternID = String(set.getItem("enh_id"))
- } else {
- item.EnhID = String(itemObj.EnhID)
- }
- item.EnhLvl = Number(itemObj.iLvl)
- item.iLvl = Number(itemObj.iLvl)
- item.sIcon = String(itemObj.sIcon)
- item.bTemp = String(itemObj.bTemp)
- item.CharItemID = Integer(set.getItem("item_id"))
- item.iHrs = 1000
- item.sFile = String(itemObj.sFile)
- item.iStk = String(itemObj.iStk)
- item.bBank = 0
- item.bUpg = String(itemObj.bUpg)
- item.bEquip = String(set.getItem("bEquip"))
- item.sName = String(itemObj.sName)
- item.sDesc = String(itemObj.sDesc)
- item.classReq = String(getClassReq(user, itemObj.ClassID))
- item.minDmg = String(itemObj.minDmg)
- item.maxDmg = String(itemObj.maxDmg)
- item.magicDmg = String(itemObj.magicDmg)
- item.STR = String(itemObj.STR)
- item.INT = String(itemObj.INT)
- item.DEX = String(itemObj.DEX)
- item.WIS = String(itemObj.WIS)
- item.END = String(itemObj.END)
- item.LCK = String(itemObj.LCK)
- item.sp = Number(itemObj.sp)
- if(itemObj.sES.equals("hi") || itemObj.sES.equals("ho"))
- hitems.push(item)
- else
- items.push(item)
- }
- }
- }
- inven.cmd = "IoadInventoryBig"
- inven.bankCount = Number(ibankCount)
- inven.friends = friends
- inven.factions = factions
- inven.items = items
- inven.nocmd = true
- inven.hitems = hitems
- _server.sendResponse(inven, -1, null, [user], "json")
- sendEquipment(user)
- updateClass(user, Number(user.properties.get("intClassId")))
- sendUotls(user, true, true, false, false)
- sendStats(user)
- sendGuildList(user)
- sendEnhanceDetails(user)
- }
- function sendEquipment(user) {
- var userid = user.getUserId()
- var eqp = user.properties.get("eqp")
- var keySet = eqp.keySet()
- for (var i = keySet.iterator(); i.hasNext();) {
- var key = String(i.next())
- equipItem(userid, eqp.get(key), true)
- }
- }
- function getClassReq(user, classid) {
- if(Number(classid) <= 0) {
- return ""
- } else {
- var classReqText = ""
- var classesArray = String(classid).split(",")
- for(var i = 0; i < classesArray.length; i++) {
- var classObj = worldClasses.get(Integer(classesArray[i]))
- if(Number(classesArray[i]) == Number(user.properties.get("intClassId"))) {
- classReqText += String("<br><font color=\"#FFFFFF\">" + classObj.sClassName + " Class</font>")
- } else {
- classReqText += String("<br><font color=\"#FF0000\">" + classObj.sClassName + " Class</font>")
- }
- }
- return String(classReqText)
- }
- }
- function getClassReqEquip(user, classid) {
- if(Number(classid) <= 0) {
- return true
- } else {
- var classesArray = String(classid).split(",")
- for(var i = 0; i < classesArray.length; i++) {
- var classObj = worldClasses.get(Integer(classesArray[i]))
- if(Number(classesArray[i]) == Number(user.properties.get("intClassId"))) {
- return true
- }
- }
- return false
- }
- }
- function getFriendInfo(charid) {
- var info = new Object()
- var query = "SELECT id,iLvl,strUsername,currentServer FROM etl_users WHERE id=" + charid
- var queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- var set = queryRes.get(0)
- info.iLvl = Integer(set.getItem("iLvl"))
- info.ID = Integer(charid)
- info.sName = ""+set.getItem("strUsername")
- info.sServer = ""+set.getItem("currentServer")
- }
- return info
- }
- function handleMoveToCell(param, userid) {
- var user = _server.getUserById(userid)
- stopPetAttack(user)
- var room = zone.getRoom(user.getRoom())
- var mapObj = worldMaps.get(room.getName().split("-")[0])
- var strFrame = framePadCase(String(param[0]))
- var strPad = framePadCase(String(param[1]))
- if(strPad == "None") {
- strPad = String(mapObj.spawnPad)
- strPad = String(user.properties.get("strFrame"))
- }
- user.properties.put("strFrame", String(strFrame))
- user.properties.put("strPad", String(strPad))
- user.properties.put("tx", 0)
- user.properties.put("ty", 0)
- stopFights(user, room)
- savePos(user)
- var moveToCellSTR = []
- moveToCellSTR.push("notls")
- moveToCellSTR.push(String(user.getName()))
- moveToCellSTR.push("strPad:"+strPad+",tx:0,strFrame:"+strFrame+",ty:0")
- _server.sendResponse(moveToCellSTR, -1, null, room.getAllUsersButOne(user), "str")
- }
- function filterMessage(str) {
- var from = "enycee,projectenycee,.com,http://,hamachi,zqw,report"
- from = from.split(",")
- for (var i = 0; i < from.length; i++) {
- str = str.split(from[i]).join("")
- }
- return str
- }
- function cleanHTML(str) {
- //str = str.split("<").join("?")
- //str = str.split(">").join("?")
- //str = str.split("#060:").join("?")
- return str
- }
- function handleMessage(params, user) {
- var room = zone.getRoom(user.getRoom())
- sendTo = room.getAllUsersButOne(user)
- var access = Number(user.properties.get("intAccessLevel"))
- var type = "zone"
- if(access == 0) {
- if(isMember(user))
- access = 2
- else
- access = 1
- }
- type = String("chn"+access)
- if(params[1] == "guild") {
- type = "guild"
- sendTo = getGuildUsers(user, false)
- }
- if(params[1] == "global") {
- handleGlobalMessage(params, user)
- return
- }
- var chat = []
- chat.push("getCMessage")
- if(isStaff(user))
- chat.push(type + "~" + cleanHTML(params[0]))
- else
- chat.push(type + "~" + cleanHTML(filterMessage(params[0])))
- chat.push(user.getName())
- chat.push(user.getRoom())
- if(String(cleanHTML(filterMessage(params[0]))) != "")
- _server.sendResponse(chat, user.getRoom(), null, sendTo, "str")
- var chat = []
- chat.push("getCMessage")
- chat.push(type + "~" + cleanHTML(params[0]))
- chat.push(user.getName())
- chat.push(user.getRoom())
- _server.sendResponse(chat, user.getRoom(), null, [user], "str")
- }
- function handleGlobalMessage(params, user) {
- if(user.properties.get("inglobal") == 1) {
- var timenow = new Date()
- timenow = timenow.getTime()
- var lastglobal = user.properties.get("lastglobal")
- if((timenow-lastglobal) < 3000) {
- _server.sendResponse(["warning", "You can not send another message within 3 seconds since last message."], -1, null, [user], "str")
- } else {
- user.properties.put("lastglobal", timenow)
- var nm = user.getName()
- if(isAdmin(user)) {
- //nm = "[ADMIN] " + nm
- } else if(isStaff(user)) {
- //nm = "[MOD] " + nm
- }
- var wat = zone.getUserList().toArray()
- var chat = []
- chat.push("getCMessage")
- chat.push("global~" + params[0])
- chat.push(String(nm))
- chat.push(user.getRoom())
- for each(var userWat in wat) {
- if(userWat.properties.get("inglobal") == 1) {
- _server.sendResponse(chat, user.getRoom(), null, [userWat], "str")
- }
- }
- }
- } else {
- _server.sendResponse(["warning", "You must join the global channel before sending or receiving messages. Write /joinglobal on chat to join."], -1, null, [user], "str")
- }
- }
- function handleMove(param, user) {
- var room = zone.getRoom(user.getRoom())
- user.properties.put("tx", param[0])
- user.properties.put("ty", param[1])
- var uotls = []
- uotls.push("notls")
- uotls.push(user.getName())
- uotls.push("sp:" + param[2] + ",tx:" + param[0] + ",ty:" + param[1] + ",strFrame:" + user.properties.get("strFrame"))
- savePos(user)
- if(!modOn(user))
- _server.sendResponse(uotls, -1, null, room.getAllUsersButOne(user), "str")
- }
- function addPHPMP(user, hp, mp) {
- var room = zone.getRoom(user.getRoom())
- //if((user.properties.get("intHP") < user.properties.get("intHPMax") || user.properties.get("intMP") < user.properties.get("intMPMax"))) {
- var restedhp = hp
- var visualhp = hp
- var restedmp = mp
- var newhp = Number(hp) + Number(user.properties.get("intHP"))
- var newmp = Number(mp) + Number(user.properties.get("intMP"))
- if(Integer(newhp) > user.properties.get("intHPMax")) {
- restedhp = user.properties.get("intHPMax") - user.properties.get("intHP")
- user.properties.put("intHP", user.properties.get("intHPMax"))
- } else {
- user.properties.put("intHP", Integer(newhp))
- }
- if(Integer(newmp) > user.properties.get("intMPMax")) {
- restedmp = user.properties.get("intMPMax") - user.properties.get("intMP")
- user.properties.put("intMP", user.properties.get("intMPMax"))
- } else {
- user.properties.put("intMP", Integer(newmp))
- }
- var player = {}
- player[String(user.getName())] = {"intHP":Integer(user.properties.get("intHP")),"intMP":Integer(user.properties.get("intMP"))}
- var restresp = {
- "cmd":"ct",
- "p":player
- }
- if(visualhp != 0) {
- restresp.sara = [{"actionResult":{"hp":-(visualhp),"cInf":"p:"+user.getUserId(),"tInf":"p:"+user.getUserId(),"typ":"d"},"iRes":1}]
- }
- _server.sendResponse(restresp, -1, null, room.getAllUsers(), "json")
- //}
- }
- function defenseModifier(user, dmg) {
- var timenow = new Date()
- timenow = timenow.getTime()
- var damageModified = Number(dmg)
- if(Number(Number(timenow) - Number(user.properties.get("s5time"))) <= 10000) {
- damageModified = damageModified * 0.50
- }
- if(Number(Number(timenow) - Number(user.properties.get("s15time"))) <= 6000) {
- damageModified = 0
- }
- damageModified = Math.round(damageModified)
- return Number(damageModified)
- }
- function attackModifier(user, atype, dmg, skillObj, monObj) {
- var hitchance = 0
- var finaldmg = dmg
- var strl = skillObj.strl
- var fx = skillObj.fx
- var hittype = "hit"
- var critbonus = 0
- var targetLvl = Number(monObj.iLvl)
- var myLvl = Number(user.properties.get("intLevel"))
- var toreturn = []
- var timenow = new Date()
- timenow = timenow.getTime()
- if(Number(user.properties.get("s4")) > 0 && Number(skillObj.sId) == 1) {
- if(Number(Number(timenow) - Number(user.properties.get("s4time"))) <= 5000) {
- hittype = "crit"
- finaldmg = finaldmg * 2
- user.properties.put("s4", Number(Number(user.properties.get("s4"))-1))
- }
- }
- if(Number(Number(timenow) - Number(user.properties.get("s5time"))) <= 10000) {
- finaldmg = finaldmg * 0.75
- }
- var isInvis = Number(user.properties.get("modOn"))
- invisibleOver(user)
- var eqp = user.properties.get("eqp")
- hitchance = Math.floor(Math.random()*(1+100-1))+1
- if(hitchance <= Number(getCritChance(user)) || isInvis == 1) {
- hittype = "crit"
- finaldmg = finaldmg * 2
- }
- hitchance = Math.floor(Math.random()*(1+100-1))+1
- var hitNeeded = 100-getHitChance(user)
- if(targetLvl > myLvl) {
- hitNeeded += 3.5*(targetLvl-myLvl)
- }
- //trace("I need: " + hitNeeded)
- if(hitNeeded > hitchance && skillObj.damage > 0) {
- hittype = "miss"
- finaldmg = 0
- }
- hitchance = Math.floor(Math.random()*(1+100-1))+1
- if(hitchance <= 10 && skillObj.damage > 0) {
- hittype = "dodge"
- finaldmg = 0
- }
- finaldmg = Math.round(finaldmg)
- toreturn["hittype"] = hittype
- toreturn["dmg"] = Number(finaldmg)
- toreturn["fx"] = fx
- toreturn["strl"] = strl
- return toreturn
- }
- function sendPvPScore(user, value) {
- var room = zone.getRoom(user.getRoom())
- var oldScore = Number(user.properties.get("ffascore"))
- var newScore = Number(oldScore) + Number(value)
- if(room.properties.get("pvpwon") == 0) {
- user.properties.put("ffascore", Number(newScore))
- refreshFFAScore(room)
- if(newScore == maxFFAScore) {
- room.properties.put("ffawon", 1)
- _server.sendResponse(["server", String(user.getName()) + " has won!"], -1, null, room.getAllUsers(), "str")
- }
- }
- }
- function refreshFFAScore(room) {
- var usersInRoom = room.getUserList()
- var pvpScore = []
- for each(var usrPvp in usersInRoom) {
- var auser = _server.getUserById(usrPvp)
- pvpScore.push({"maxScore":maxFFAScore, "pn":String(auser.getName()),"v":Integer(auser.properties.get("ffascore")),"r":0,"m":0,"k":0})
- }
- var toRoom = {"cmd":"PVPS", "pvpScore":pvpScore}
- _server.sendResponse(toRoom, -1, null, room.getAllUsers(), "json")
- }
- function removeAura(params) {
- var room = params.room
- var auraGone = {"cmd":"aura-","auras":[{"nam":String(params.name)}], "tInf":String(params.mname)}
- _server.sendResponse(auraGone, -1, null, room.getAllUsers(), "json")
- }
- function invisibleOver(user) {
- var isInvis = Number(user.properties.get("modOn"))
- if(isInvis == 1) {
- user.properties.put("modOn", 0)
- sendUotls(user, true, true, true, true)
- _server.sendResponse(["warning", "You are visible!"], -1, null, [user], "str")
- }
- }
- function message(dt1, dt2){
- if(dt1 == "warning"){
- _server.sendResponse(["warning", "" + dt2 + ""], -1, null, [user], "str");
- } else if(dt1 == "server"){
- _server.sendResponse(["server", "" + dt2 + ""], -1, null, [user], "str");
- }
- }
- function stopPetAttack(user) {
- user.properties.put("petTarget", 0)
- user.properties.put("petActive", 0)
- }
- function activatePetAttack(user, monId) {
- var hp = Number(user.properties.get("intHP"))
- var state = Number(user.properties.get("intState"))
- if(hp < 1 || state == 0)
- return
- var petActive = (Number(user.properties.get("petActive")) == 1) ? true : false
- var eqp = user.properties.get("eqp")
- var hasPet = (eqp.get("pe")) ? true : false
- if(hasPet)
- user.properties.put("petTarget", monId)
- if(hasPet && !petActive) {
- user.properties.put("petActive", 1)
- //setTimeout(this, doPetAttack, 750, user)
- scheduler.addScheduledTask(new _scheduler.Task({name:"PetAttack", user:user}), 0.75, false, taskHandler)
- //setInterval("doPetAttack", 750, user)
- }
- }
- function doPetAttack(user) {
- if(!user)
- return
- var hp = Number(user.properties.get("intHP"))
- var state = Number(user.properties.get("intState"))
- if(hp < 1 || state == 0)
- return
- var petActive = (Number(user.properties.get("petActive")) == 1) ? true : false
- if(!petActive)
- return
- var eqp = user.properties.get("eqp")
- var petId = (eqp.get("pe"))
- var petObj = worldItems.get(Number(petId))
- var room = zone.getRoom(user.getRoom())
- var targetid = user.properties.get("petTarget")
- var dmg1 = Number(petObj.minDmg)
- var dmg2 = Number(petObj.maxDmg)
- var getAppliedAura = Number(petObj.applyAura)
- var dmg = Integer(Math.floor(Number(Math.random()*(dmg2-dmg1)))+Number(dmg1))
- var userid = user.getUserId()
- var anim = "PetAttack"
- var theTarget = room.properties.get(String("m"+(targetid)))
- var jsonA = []
- var attacksArray = String(petObj.attacks).split(";")
- var randAttack = Number(Math.floor(Math.random() * Number(attacksArray.length)))
- var attackArray = String(attacksArray[randAttack]).split(",")
- for(var i = 0; i < attackArray.length; i++) {
- var nam = String(attackArray[i]).split(":")[0]
- var val = String(attackArray[i]).split(":")[1]
- if(nam == "d") {
- dmg = Math.round(Number(dmg) * Number(val))
- } else if(nam == "a") {
- var auraObj = worldAuras.get(Integer(val))
- jsonA = [{"cInf":String("p:"+user.getUserId()),"cmd":"aura++","auras":[{"nam":String(auraObj.name),"t":"s","dur":String(auraObj.seconds),"cat":String(auraObj.cat),"isNew":true}],"tInf":String("m:"+targetid)}]
- activateAura(user, Number(val), dmg, theTarget, targetid, "m")
- } else if(nam == "an") {
- anim = String("Pet:Pet"+val)
- }
- }
- if(theTarget) {
- if(theTarget.intHP > 0 && theTarget.intState != 0) {
- theTarget.intHP -= dmg
- if(Number(theTarget.intHP) > Number(theTarget.intHPMax))
- theTarget.intHP == theTarget.intHPMax
- if(!(theTarget.targets.contains(String(userid)))) {
- theTarget.targets.add(String(userid))
- if(theTarget.targets.size() == 1) {
- var params2 = {}
- params2.monObj = theTarget
- params2.mapMon = targetid
- params2.mapName = room.getName()
- //setTimeout(this, getMonsterActionResult, 50, params2)
- scheduler.addScheduledTask(new _scheduler.Task({name:"MonAttack", monObj:theTarget, mapMon:targetid, mapName:String(room.getName())}), 0.1, false, taskHandler)
- }
- }
- if(theTarget.intHP <= 0 && theTarget.intState != 0) {
- //theTarget.intState = 0
- user.properties.put("intState", 1)
- stopPetAttack(user)
- var params2 = {}
- params2.target = theTarget
- params2.room = room
- params2.targetid = targetid
- params2.drops = String(worldMonsters.get(Integer(theTarget.MonID)).strDrops)
- //trace("line 3623: " + targetid)
- monsterDie(params2)
- } else {
- user.properties.put("intState", 2)
- theTarget.intState = 2
- //setTimeout(this, doPetAttack, 2800, user)
- scheduler.addScheduledTask(new _scheduler.Task({name:"PetAttack", user:user}), 2.8, false, taskHandler)
- }
- var fx = ""
- var jsonM = {}
- jsonM[String(targetid)] = {"intMP":Integer(theTarget.intMP),"intState":Integer(theTarget.intState),"intHP":Integer(theTarget.intHP)}
- var jsonP = {}
- jsonP[String(user.getUserId())] = {"intState":Integer(user.properties.get("intState"))}
- var jsonSarsa = []
- jsonSarsa.push({"hp":dmg,"tInf":String("m:"+targetid),"type":String("hit")})
- var attackJSON = {}
- attackJSON.cmd = "ct"
- attackJSON.anims = [{"strFrame":String(user.properties.get("strFrame")),"cInf":"p:"+user.getUserId(),"fx":String(fx),"animStr":String(anim),"tInf":String("m:"+targetid)}]
- attackJSON.sarsa = [{"cInf":"p:"+user.getUserId(),"a":jsonSarsa,"actID":Integer(1),"iRes":1}]
- attackJSON.m = jsonM
- attackJSON.p = jsonP
- attackJSON.a = jsonA
- _server.sendResponse(attackJSON, -1, null, room.getAllUsers(), "json")
- } else {
- stopPetAttack(user)
- }
- } else {
- stopPetAttack(user)
- }
- }
- function activateAura(user, auraId, aDamage, theTarget, targetId, targetType) {
- var room = zone.getRoom(user.getRoom())
- var auraObj = worldAuras.get(Integer(auraId))
- if(auraObj == null)
- return
- var auraName = auraObj.name
- var auraCat = auraObj.cat
- var usetype = auraObj.usetype
- var dur = auraObj.seconds
- var per = auraObj.per
- if(usetype == "overtime") {
- var aurActivate = {}
- //aurActivate.dmg = Number(aDamage / (dur/per))*Number(auraObj.damage);
- aurActivate.dmg = Number(aDamage / (dur/2)) * Number (auraObj.damage);
- aurActivate.dur = dur
- aurActivate.per = 1.5
- aurActivate.typ = auraObj.typ
- aurActivate.target = theTarget
- aurActivate.room = room
- aurActivate.targetid = targetId
- //if(targetType == "p")
- //setTimeout(this, DoTP, (per*1000), aurActivate)
- //if(targetType == "m")
- //setTimeout(this, DoTM, (per*1000), aurActivate)
- scheduler.addScheduledTask(new _scheduler.Task({name:"doAura", targetType:String(targetType), params:aurActivate}), /*Number(per)*/ 1.5, false, taskHandler)
- }
- var auraParams = {}
- auraParams.name = String(auraName)
- auraParams.mname = String(String(targetType)+":"+targetId)
- auraParams.room = room
- //setTimeout(this, removeAura, Number(dur)*1000, auraParams)
- scheduler.addScheduledTask(new _scheduler.Task({name:"removeAura", params:auraParams}), Number(dur), false, taskHandler)
- }
- function attackHandler(userid, params, multi) {
- var user = _server.getUserById(userid)
- var room = zone.getRoom(user.getRoom())
- if(Integer(user.properties.get("intHP")) <= 0)
- return
- var hittype
- var skillid
- var actID = params[0]
- var tToAttack = []
- var targetstoattack = []
- var target = []
- var targetstoattackanim = ""
- var jsonSarsaA = []
- var jsonM = {}
- var jsonA = []
- var jsonP = {}
- var ontargetsarsa = []
- var atype = String(params[1]).split(">")[0]
- var ttype = String(params[1]).split(">")[1].split(":")[0]
- var classObj = worldClasses.get(Integer(user.properties.get("intClassId")))
- switch(atype) {
- case "aa":
- skillid = 0
- break
- case "a1":
- skillid = 1
- break
- case "a2":
- skillid = 2
- break
- case "a3":
- skillid = 3
- break
- case "a4":
- skillid = 4
- break
- case "a5":
- skillid = 5
- break
- default:
- skillid = -1
- break
- }
- if(skillid == -1)
- return
- var skillObj = worldSkills.get(Integer(classObj.skills[skillid]))
- var anim = skillObj.anim
- var fx = skillObj.fx
- var strl = skillObj.strl
- var projspd = skillObj.projspd
- var mana = skillObj.mana
- var dmgamp = skillObj.damage
- var cooldown = skillObj.cd
- var imulti = skillObj.multi
- var imultitime = skillObj.multitime
- var cdcheckpass = true
- var timenow = new Date()
- timenow = timenow.getTime()
- var lastattack = user.properties.get("last"+atype)
- if(!multi){
- if(((timenow-lastattack) < Integer(cooldown-300)))
- cdcheckpass = false
- else
- user.properties.put(String("last"+atype), timenow)
- }
- if(Number(user.properties.get("intMP")) >= Integer(mana) && cdcheckpass) {
- if (params[1].indexOf(",") != -1)
- tToAttack = params[1].split(",")
- else
- tToAttack[0] = params[1]
- for (var i = 0; i < tToAttack.length; i++) {
- var targetid = String(String(tToAttack[i]).split(">")[1]).split(":")[1]
- var eqp = user.properties.get("eqp")
- var itemObj = worldItems.get(eqp.get("Weapon"))
- if(skillid == 0){
- if(itemObj) {
- if(itemObj.sType == "Dagger") {
- anim = "DuelWield/DaggerAttack1,DuelWield/DaggerAttack2,FlipAttack,KickAttack"
- }
- if(itemObj.sType == "Bow") {
- anim = "RangedAttack1"
- strl = "sp_ed4"
- fx = "p"
- projspd = 65
- }
- } else {
- anim = "UnarmedAttack1,UnarmedAttack2,KickAttack"
- }
- }
- var dmgmin = Number(getDamagePower(user, "min"))
- var dmgmax = Number(getDamagePower(user, "max"))
- if(String(skillObj.damagetyp) == "m") {
- dmgmin = Number(getSpellPower(user))
- dmgmax = Number(getSpellPower(user))
- }
- var finaldmg = Integer(Math.floor(Math.random()*(1+dmgmax-dmgmin))+dmgmin)
- var finaldmg = Math.round(Integer(finaldmg) * Number(dmgamp))
- var hittype = "hit"
- var aura = skillObj.aura
- var theTarget
- if(ttype == "m")
- theTarget = room.properties.get(String("m"+(targetid)))
- else if(ttype == "p")
- theTarget = _server.getUserById(Number(targetid))
- var targetFrame = ""
- if(theTarget)
- targetFrame = (ttype == "m") ? (theTarget.strFrame) : (theTarget.properties.get("strFrame"))
- if(theTarget && String(user.properties.get("strFrame")) == String(targetFrame)) {
- var targetHP = (ttype == "m") ? (Integer(theTarget.intHP)) : (Integer(theTarget.properties.get("intHP")))
- var targetHPMax = (ttype == "m") ? (Integer(theTarget.intHPMax)) : (Integer(theTarget.properties.get("intHPMax")))
- var targetMP = (ttype == "m") ? (Integer(theTarget.intMP)) : (Integer(theTarget.properties.get("intMP")))
- var targetState = (ttype == "m") ? (Integer(theTarget.intState)) : (Integer(theTarget.properties.get("intState")))
- var targetHPNew = targetHP
- var targetMPNew = targetMP
- if(targetHP > 0 && targetState != 0) {
- if(skillObj.sId == 4) {
- user.properties.put("s4", 11)
- user.properties.put("s4time", timenow)
- }
- if(skillObj.sId == 5) {
- user.properties.put("s5time", timenow)
- }
- if(skillObj.sId == 3) {
- theTarget.stunTime = timenow
- stunResult = {
- "cmd":"stunResult"
- }
- _server.sendResponse(stunResult, -1, null, room.getAllUsers(), "json")
- }
- if(skillObj.sId == 15) {
- theTarget.blindTime = timenow
- }
- if(skillObj.sId == 16) {
- if(Number(Number(timenow) - Number(theTarget.blindTime)) < 6000) {
- theTarget.stunTime = timenow
- } else {
- aura = 0
- mana -= 20
- }
- }
- if(skillObj.sId == 21) {
- if(i > 0)
- finaldmg = finaldmg / 2
- }
- if(skillObj.sId == 7) {
- finaldmg += Number(Number(user.properties.get("intHP"))/10)
- }
- if(skillObj.sId == 22) {
- user.properties.put("s22", timenow)
- }
- if(skillObj.sId == 20) {
- theTarget.frozenBloodTime = timenow
- }
- if(skillObj.sId == 24) {
- if(Number(Number(timenow) - Number(theTarget.frozenBloodTime)) < 10000) {
- theTarget.freezeTime = timenow
- } else {
- aura = 0
- }
- }
- if(skillObj.sId == 14){
- /*var randomRolled = Math.round(Math.random()*100)
- if(randomRolled >= 50){
- //theTarget.stunTime = timenow
- finaldmg+= finaldmg * 3;
- _server.sendResponse(["server", "ROLLED " + randomRolled], -1, null, [user], "str")
- } else if(randomRolled < 50){
- _server.sendResponse(["warning", "ROLLED " + randomRolled], -1, null, [user], "str")
- finaldmg-= finaldmg * 2
- }*/
- //sendRandomSkillUse("r1", user, room);
- //activateAura(user, 15, 1.0, user, user.getUserId(), "p")
- //var auraAdd = {"cInf":"p:"+user.getUserId(),"cmd":"aura++","auras":[{"val":3,"nam":"Radiance","t":"s","dur":"16", "cat":"overtime","isNew":true}],"tInf":"p:"+user.getUserId()}
- //_server.sendResponse(auraAdd, -1, null, room.getAllUsers(), "json")
- }
- if(skillid == 0) {
- if(getManaType(user) == 2) {
- mana -= 14
- } else if(getManaType(user) == 0){
- mana -= 5
- }
- }
- if(skillObj.sId == 17) {
- //user.properties.put("modOn", 1)
- //exitUser(room, user)
- //_server.sendResponse(["server", "You are now invisible."], -1, null, [user], "str") //setTimeout(this, invisibleOver, (5000), user)
- //message("warning", "test");
- //hp -= 100;
- if(doTestStacks1 >= 3){
- _server.sendResponse(["server", "STACK WORKS! STACKS " + doTestStacks1], -1, null, [user], "str")
- doTestStacks1 = 0;
- } else {
- _server.sendResponse(["warning", "NOT ENOUGH STACKS! STACKS " + doTestStacks1], -1, null, [user], "str")
- }
- }
- if(aura > 0) {
- if(skillObj.auratgtMax >= (i+1)) {
- activateAura(user, aura, finaldmg, theTarget, targetid, ttype)
- var auraObj = worldAuras.get(Integer(aura))
- if(auraObj != null)
- //jsonA = [{"cInf":String("p:"+user.getUserId()),"cmd":"aura++","auras":[{"nam":String(auraObj.name),"t":"s","dur":String(auraObj.seconds),"cat":String(auraObj.cat),"isNew":true}],"tInf":String(ttype+":"+targetid)}]
- jsonA.push({
- "cInf":String("p:"+user.getUserId()),
- "cmd":"aura++",
- "auras":[{
- "nam":String(auraObj.name),
- "t":"s",
- "dur":String(auraObj.seconds),
- "cat":String(auraObj.cat),
- "isNew":true
- }],
- "tInf":String(ttype+":"+targetid)
- })
- }
- }
- //FIRST ATTACK
- if(i == 0) {
- user.properties.put("intMP", (Integer(user.properties.get("intMP")-mana)))
- if(Number(user.properties.get("intMP")) < 0)
- user.properties.put("intMP", 0)
- if(Number(user.properties.get("intMP")) > Number(user.properties.get("intMPMax")))
- user.properties.put("intMP", Number(user.properties.get("intMPMax")))
- }//END FIRST ATTACK
- if(Integer(finaldmg) > 0) {
- var modifier = attackModifier(user, atype, finaldmg, skillObj, theTarget)
- hittype = modifier["hittype"]
- finaldmg = Number(modifier["dmg"])
- //fx = modifier["fx"]
- //strl = modifier["strl"]
- user.properties.put("intState", 2)
- }
- (ttype == "m") ? (theTarget.intHP -= finaldmg) : (theTarget.properties.put("intHP", Integer(theTarget.properties.get("intHP")-finaldmg)))
- //_server.sendResponse(["server", String(user.getName()) + ": " + String(finaldmg)], -1, null, room.getAllUsers(), "str")
- targetHPNew = (ttype == "m") ? (theTarget.intHP) : (theTarget.properties.get("intHP"))
- targetMPNew = (ttype == "m") ? (theTarget.intMP) : (theTarget.properties.get("intMP"))
- if(Number(targetHPNew) > Number(targetHPMax)) {
- (ttype == "m") ? (theTarget.intHP == theTarget.intHPMax) : (theTarget.properties.put("intHP", theTarget.properties.get("intHPMax")))
- }
- if(ttype == "m") {
- if(theTarget.intState != 0) {
- if(!(theTarget.targets.contains(String(userid)))) {
- theTarget.targets.add(String(userid))
- if(theTarget.targets.size() == 1) {
- var params2 = {}
- params2.monObj = theTarget
- params2.mapMon = targetid
- params2.mapName = room.getName()
- //setTimeout(this, getMonsterActionResult, 500, params2)
- scheduler.addScheduledTask(new _scheduler.Task({name:"MonAttack", monObj:theTarget, mapMon:targetid, mapName:String(room.getName())}), 0.5, false, taskHandler)
- }
- }
- if(targetHPNew <= 0) {
- //theTarget.intState = 0
- var params2 = {}
- params2.target = theTarget
- params2.room = room
- params2.targetid = targetid
- params2.drops = String(worldMonsters.get(Integer(theTarget.MonID)).strDrops)
- //trace("line 3903: " + targetid)
- monsterDie(params2)
- user.properties.put("intState", 1)
- } else {
- theTarget.intState = 2
- }
- }
- jsonM[String(targetid)] = {"intMP":Integer(targetMPNew),"intState":Integer(theTarget.intState),"intHP":Integer(targetHPNew)}
- } else if(ttype == "p") {
- if(theTarget.properties.get("intHP") <= 0) {
- theTarget.properties.put("intState", 0)
- user.properties.put("intState", 1)
- var mapname = String(room.getName())
- var mapObj = worldMaps.get(mapname.split("-")[0])
- if(mapObj.sExtra == "bPvP")
- sendPvPScore(user, 1)
- } else {
- if(finaldmg > 0) {
- theTarget.properties.put("intState", 2)
- user.properties.put("intState", 2)
- }
- }
- jsonP[String(theTarget.getName())] = {"intMP":Integer(theTarget.properties.get("intMP")),"intState":Integer(theTarget.properties.get("intState")),"intHP":Integer(theTarget.properties.get("intHP"))}
- }
- targetstoattackanim += String(ttype) + ":" + String(targetid) + ","
- if(skillObj.damage != 0)
- jsonSarsaA.push({"hp":finaldmg,"tInf":String(ttype)+":"+String(targetid),"type":String(hittype)})
- }
- if(ttype == "m" && theTarget.intHP > 0)
- activatePetAttack(user, targetid)
- var domulti = 1
- if(Number(imulti) > 0 && !multi) {
- while(domulti <= imulti) {
- //setTimeout(this, attackHandler, (Number(imultitime)*domulti), user.getUserId(), params, true)
- domulti++
- }
- }
- }
- }
- var attackJSON = {}
- attackJSON.cmd = "ct"
- attackJSON.anims = [{"strFrame":String(user.properties.get("strFrame")),"cInf":"p:"+userid,"fx":String(fx),"animStr":String(anim),"tInf":String(targetstoattackanim),"strl":String(strl), "sp": Number(projspd)}]
- attackJSON.sarsa = [{"cInf":"p:"+userid,"a":jsonSarsaA,"actID":Integer(actID),"iRes":1}]
- attackJSON.m = jsonM
- attackJSON.p = jsonP
- attackJSON.a = jsonA
- sendUotls(user, true, true, false, false)
- _server.sendResponse(attackJSON, -1, null, room.getAllUsers(), "json")
- }
- }
- function DoTM(params) {
- var theTarget = params.target
- var room = params.room
- var targetid = params.targetid
- var dmg = Number(Math.round(params.dmg))
- var dType = String(params.typ)
- if(dmg <= 0)
- return
- if(theTarget && theTarget != null) {
- if(Number(theTarget.intHP) <= 0 || theTarget.intState == 0)
- return
- theTarget.intHP -= Number(dmg)
- params.dur -= params.per
- if(Integer(params.dur) > 0) {
- //setTimeout(this, DoTM, (params.per*1000), params)
- scheduler.addScheduledTask(new _scheduler.Task({name:"doAura", targetType:"m", params:params}), Number(params.per), false, taskHandler)
- }
- var mon = {}
- mon[String(targetid)] = {"intHP":Integer(theTarget.intHP)}
- var restresp = {
- "cmd":"ct",
- "sara": [{"actionResult":{"hp":(dmg),"cInf":"m:"+targetid,"tInf":"m:"+targetid,"typ":"d","dotTyp":String(dType)},"iRes":1}],
- "m": mon
- }
- _server.sendResponse(restresp, -1, null, room.getAllUsers(), "json")
- if(theTarget.intHP <= 0 && theTarget.intState != 0) {
- //theTarget.intState = 0
- var params2 = {}
- params2.target = theTarget
- params2.room = room
- params2.targetid = targetid
- params2.drops = String(worldMonsters.get(Integer(theTarget.MonID)).strDrops)
- //trace("line 4004: " + targetid)
- monsterDie(params2)
- } else {
- if(theTarget.targets.size() == 0) {
- var rsparams = {}
- rsparams.targetid = targetid
- rsparams.targetmap = theTarget.MonMap
- respawnMonster(rsparams)
- }
- }
- }
- }
- function DoTP(params) {
- var user = params.target
- if(user && user != null) {
- if(Number(user.properties.get("intHP")) <= 0)
- return
- var room = zone.getRoom(user.getRoom())
- if(Integer(params.dur) > 0) {
- var dmg = Integer(params.dmg)
- if(user.properties.get("intState") == 0)
- return
- user.properties.put("intHP", Number(Number(user.properties.get("intHP"))-Number(dmg)))
- if(Number(user.properties.get("intHP")) > Number(user.properties.get("intHPMax")))
- user.properties.put("intHP", Number(user.properties.get("intHPMax")))
- if(Number(user.properties.get("intHP")) <= 0)
- user.properties.put("intState", 0)
- params.dur -= params.per
- if(Integer(params.dur) > 0)
- //setTimeout(this, DoTP, (params.per*1000), params)
- scheduler.addScheduledTask(new _scheduler.Task({name:"doAura", targetType:"p", params:params}), Number(params.per), false, taskHandler)
- var p = {}
- p[String(user.getName())] = {"intHP":Integer(user.properties.get("intHP")), "intState":Integer(user.properties.get("intState"))}
- var damageOverTime = {
- "cmd":"ct",
- "sara": [{"actionResult":{"hp":(dmg),"tInf":"p:"+user.getUserId(),"typ":"d","dotTyp":String(params.typ)},"iRes":1}],
- "p": p
- }
- _server.sendResponse(damageOverTime, -1, null, room.getAllUsers(), "json")
- }
- }
- }
- function sendGlobalUpdate(msg) {
- var wat = {"cmd": "umsg", "isBad":"1", "s": String(msg)}
- var to = zone.getUserList().toArray()
- _server.sendResponse(wat, -1, null, to, "json")
- }
- function sendpromoMsg(user, leMessage) {
- var errormsg = leMessage;
- _server.sendResponse({"cmd": "showError", "msg": String(errormsg)}, -1, null, [user], "json")
- //var msg = "EQW is back! Tell your friends and share the server. If you find any bugs please talk to any online staff member!"
- //_server.sendResponse(["guild", msg], -1, null, zone.getUserList().toArray(), "str")
- //sendGlobalUpdate(msg)
- }
- function randomAC() {
- var prize = 50
- var usersarray = []
- var totalusers = 0
- var users = zone.getUserList().toArray()
- for each(var user in users) {
- if(!isStaff(user)) {
- totalusers += 1
- usersarray.push(user)
- }
- }
- var maxusers = zone.getUserCount()
- if(maxusers > 0) {
- var randomusernumber = Math.floor(Math.random()*Integer(totalusers))
- userwinner = usersarray[randomusernumber]
- if(userwinner) {
- var room = zone.getRoom(user.getRoom())
- var add = {}
- add.ac = Integer(prize)
- addRewards(userwinner, add, false)
- var wat = {"cmd": "umsg", "isBad":"1", "s": "User \"" + userwinner.getName() + "\" has won " + prize + " ACs."}
- var to = zone.getUserList().toArray()
- _server.sendResponse(wat, -1, null, to, "json")
- _server.sendResponse(["server", "User \"" + userwinner.getName() + "\" has won " + prize + " ACs."], -1, null, to, "str")
- }
- }
- }
- function getMonsterActionResult(params) {
- var userid
- var user = null
- var atype = "hit"
- var strl = ""
- var anim = ""
- var monObj = params.monObj
- var monid = monObj.MonMapID
- var mapName = params.mapName
- var room = zone.getRoomByName(String(mapName))
- var mod = 1
- if(monObj.intHP > 0 && monObj.intState != 0) {
- var timenow = new Date()
- timenow = timenow.getTime()
- if(Number(Number(timenow) - Number(monObj.stunTime)) < 3000) {
- //setTimeout(this, getMonsterActionResult, 500, params)
- scheduler.addScheduledTask(new _scheduler.Task({name:"MonAttack", monObj:monObj, mapMon:params.mapMon, mapName:String(room.getName())}), 0.5, false, taskHandler)
- return
- }
- if(Number(Number(timenow) - Number(monObj.freezeTime)) < 5000) {
- //setTimeout(this, getMonsterActionResult, 500, params)
- scheduler.addScheduledTask(new _scheduler.Task({name:"MonAttack", monObj:monObj, mapMon:params.mapMon, mapName:String(room.getName())}), 0.5, false, taskHandler)
- return
- }
- if(Number(Number(timenow) - Number(monObj.blindTime)) < 6000) {
- mod = 0.01
- }
- while(user == null) {
- if(monObj.targets.size() > 0) {
- var targetindexpos = Number(Math.floor((Math.random()*(monObj.targets.size()))))
- if(monObj.targets.get(Number(targetindexpos))) {
- //trace("targets:" + monObj.targets + " size: " + monObj.targets.size() + " index: " + targetindexpos)
- userid = monObj.targets.get(Number(targetindexpos))
- user = _server.getUserById(Number(userid))
- if(user != null) {
- var userRoom = zone.getRoom(user.getRoom())
- if(String(user.properties.get("strFrame")) != String(monObj.strFrame))
- user = null
- else if(String(userRoom.getName()) != String(room.getName()))
- user = null
- else if(Number(user.properties.get("intHP")) <= 0)
- user = null
- }
- if(user == null) {
- monObj.targets.remove(String(userid))
- monObj.targets.trimToSize()
- }
- }
- } else {
- var rsparams = {}
- rsparams.targetid = params.mapMon
- rsparams.targetmap = monObj.MonMap
- //trace("respawning mom: " + monObj.MonMap)
- respawnMonster(rsparams)
- return
- }
- }
- var targetid = params.mapMon
- var ttype = "m"
- if(user && room && userRoom && String(user.properties.get("strFrame")) == String(monObj.strFrame)) {
- if(user.properties.get("intHP") > 0 && monObj.intState != 0 && userRoom.getName() == room.getName()) {
- var dmg1 = Integer(monObj.minDmg)
- var dmg2 = Integer(monObj.maxDmg)
- var dmg = Integer(Math.floor(Number(Math.random()*(dmg2-dmg1)))+Number(dmg1))
- dmg = Number(defenseModifier(user, dmg))
- dmg = Number(Number(dmg) * Number(mod))
- var newhp = Number(user.properties.get("intHP"))
- var newmp = Number(user.properties.get("intMP"))
- var hpmax = Number(user.properties.get("intHPMax"))
- var mpmax = Number(user.properties.get("intMPMax"))
- var attDelay = 0
- var aObj = []
- if(getManaType(user) == 2) {
- newmp += 10
- } else if(getManaType(user) == 1) {
- newmp += 7
- } else {
- newmp += 3
- }
- if(newmp > mpmax)
- newmp = mpmax
- if((Number(timenow) - Number(user.properties.get("s20"))) < 10000) {
- attDelay = 1500
- dmg -= (dmg/3)
- }
- critchance = Math.floor(Math.random()*(1+100-1))+1
- if(critchance <= 10) {
- atype = "crit"
- dmg = dmg * 1.75
- }
- var jsonA = []
- var worldMonObj = worldMonsters.get(Integer(monObj.MonID))
- var attacksArray = String(worldMonObj.attacks).split(";")
- var randAttack = Number(Math.floor(Math.random() * Number(attacksArray.length)))
- var attackArray = String(attacksArray[randAttack]).split(",")
- for(var i = 0; i < attackArray.length; i++) {
- var nam = String(attackArray[i]).split(":")[0]
- var val = String(attackArray[i]).split(":")[1]
- if(nam == "d") {
- dmg = Math.round(Number(dmg) * Number(val))
- } else if(nam == "a") {
- var auraObj = worldAuras.get(Integer(val))
- jsonA = [{"cInf":String(ttype+":"+targetid),"cmd":"aura++","auras":[{"nam":String(auraObj.name),"t":"s","dur":String(auraObj.seconds),"cat":String(auraObj.cat),"isNew":true}],"tInf":String("p:"+user.getUserId())}]
- activateAura(user, Number(val), dmg, user, user.getUserId(), "p")
- } else if(nam == "an") {
- anim = String(val)
- }
- }
- if((Number(timenow) - Number(user.properties.get("s22"))) < 20000) {
- if(newmp > dmg) {
- newmp -= dmg
- } else {
- newmp = 0
- newhp -= Number(dmg-newmp)
- }
- } else {
- newhp -= dmg
- }
- var player = {}
- if(newhp > 0) {
- if(Number(newhp) > Number(hpmax))
- newhp = hpmax
- user.properties.put("intHP", newhp)
- user.properties.put("intMP", newmp)
- user.properties.put("intState", 2)
- player[String(user.getName())] = {"intHP":newhp, "intMP":newmp, "intState":2}
- } else {
- monObj.intState = 1
- monObj.targets.remove(String(userid))
- monObj.targets.trimToSize()
- if(monObj.targets.size() == 0) {
- var rsparams = {}
- rsparams.targetid = targetid
- rsparams.targetmap = monObj.MonMap
- respawnMonster(rsparams)
- }
- stopPetAttack(user)
- user.properties.put("intState", 0)
- user.properties.put("intHP", 0)
- user.properties.put("intMP", 0)
- player[String(user.getName())] = {"intHP":0, "intMP":0, "intState":0}
- }
- var actionResult = [{"hp":dmg, "tInf":String("p:"+userid), "type":String(atype)}]
- var anims = []
- anims.push({"strFrame":String(user.properties.get("strFrame")),"cInf":String(ttype+":"+targetid),"fx":"m","animStr":String(anim),"tInf":String("p:"+userid)})
- var result2 = {
- "cmd":"ct",
- "anims":anims,
- "p":player,
- "sarsa":[{"cInf":String(ttype+":"+targetid), "a":actionResult, "actID":3, "iRes":1}],
- "a": jsonA
- }
- _server.sendResponse(result2, -1, null, room.getAllUsers(), "json")
- if(monObj.targets.size() > 0) {
- //setTimeout(this, getMonsterActionResult, 2000+Number(attDelay), params)
- scheduler.addScheduledTask(new _scheduler.Task({name:"MonAttack", monObj:monObj, mapMon:targetid, mapName:String(room.getName())}), ((2000+Number(attDelay))/1000), false, taskHandler)
- }
- } else {
- monObj.targets.remove(String(userid))
- //setTimeout(this, getMonsterActionResult, 50, params)
- scheduler.addScheduledTask(new _scheduler.Task({name:"MonAttack", monObj:monObj, mapMon:targetid, mapName:String(room.getName())}), 0.1, false, taskHandler)
- }
- } else {
- monObj.targets.remove(String(userid))
- scheduler.addScheduledTask(new _scheduler.Task({name:"MonAttack", monObj:monObj, mapMon:targetid, mapName:String(room.getName())}), 0.1, false, taskHandler)
- }
- }
- }
- function monsterDie(params) {
- var drops = params.drops
- var room = params.room
- var targetid = Number(params.targetid)
- //trace("trying ot respawn: " + targetid)
- //var monObj = mapMonsters.get(room.getName()+":"+targetid)
- var monObj = room.properties.get(String("m"+(String(targetid))))
- if(monObj) {
- var paramsReward = {}
- paramsReward.cp = Math.round(Number(worldMonsters.get(Integer(monObj.MonID)).intRep) / Number(monObj.targets.size()))
- paramsReward.gold = Math.round(Number(worldMonsters.get(Integer(monObj.MonID)).intGold) / Number(monObj.targets.size()))
- paramsReward.exp = Math.round(Number(worldMonsters.get(Integer(monObj.MonID)).intExp) / Number(monObj.targets.size()))
- paramsReward.ac = Math.round(Number(worldMonsters.get(Integer(monObj.MonID)).intCoins) / Number(monObj.targets.size()))
- paramsReward.targetid = targetid
- paramsReward.ttype = "m"
- for(var i = 0; i < monObj.targets.size(); i++) {
- var userid = Integer(monObj.targets.get(Integer(i)))
- user = _server.getUserById(Number(userid))
- if(user) {
- var rewParams = paramsReward
- if(Number(monObj.iLvl) < Number(user.properties.get("intLevel"))) {
- var lvlDif = Number(Number(user.properties.get("intLevel")) - Number(monObj.iLvl))
- rewParams.exp -= Number(Number(Number(rewParams.exp)/5)*Number(lvlDif))
- rewParams.cp -= Number(Number(Number(rewParams.cp)/5)*Number(lvlDif))
- if(rewParams.exp < 0)
- rewParams.exp = 0
- }
- addRewards(user, rewParams, true)
- if(String(drops) != "") {
- monsterGiveDrops(user, drops)
- }
- user.properties.put("intState", 1)
- }
- }
- if(Number(worldMonsters.get(Integer(monObj.MonID)).ann) > 0) {
- var attackers = []
- for(var i = 0; i < monObj.targets.size(); i++) {
- var annUserid = Integer(monObj.targets.get(Integer(i)))
- var annUser = _server.getUserById(Number(annUserid))
- if(annUser)
- attackers.push(String(annUser.getName()))
- }
- var gID = String(room.getName()).split("-")[1]
- var gObject = worldGuilds.get(Number(gID))
- //attackers.join(", ")
- var msg = String("Guild " + String(gObject.guildName) + " has slain " + String(monObj.strMonName) + ".")
- sendGlobalUpdate(msg)
- _server.sendResponse(["serverf", addItemRarity(msg, 3)], -1, null, zone.getUserList().toArray(), "str")
- }
- monObj.targets.clear()
- monObj.intHP = 0
- monObj.intMP = 0
- monObj.intState = 0
- var paramsRespawn = {}
- paramsRespawn.targetid = targetid
- paramsRespawn.targetmap = monObj.MonMap
- var respTime = Number(worldMonsters.get(Integer(monObj.MonID)).respawnTime)
- //setTimeout(this, respawnMonster, Number(respTime), paramsRespawn, true)
- scheduler.addScheduledTask(new _scheduler.Task({name:"MonRespawn", params:paramsRespawn, die:true}), Number(respTime/1000), false, taskHandler)
- } else {
- trace("!!!!!Can't kill monster: " + params.targetid + " in room: " + room.getName())
- }
- }
- function monsterGiveDrops(user, drops) {
- if(java.lang.String(drops).contains(","))
- drops = drops.split(",")
- else
- drops = [drops]
- for(var i = 0; i < drops.length; i++) {
- var chance = Integer((String(drops[i]).split(":")[1]*100))
- var itemdrop = String(drops[i]).split(":")[0]
- var roll = Math.floor(Math.random()*(1+100-1))+1
- if(roll <= chance){
- dropItem(user, itemdrop, 1)
- }
- }
- }
- function respawnMonster(params, die) {
- var targetid = Number(params.targetid)
- var mapname = params.targetmap
- var room = zone.getRoomByName(String(mapname))
- //var monObj = mapMonsters.get(String(mapname+":"+targetid))
- var monObj = room.properties.get(String("m"+(targetid)))
- if(monObj && room) {
- var hpmax = Number(rand(monObj.intHPMax1, monObj.intHPMax2))
- if(!(die))
- hpmax = Number(monObj.intHPMax)
- monObj.intHP = hpmax
- monObj.intHPMax = hpmax
- monObj.intMP = monObj.intMPMax
- monObj.intState = 1
- monObj.targets.clear()
- var respawnPacket = []
- respawnPacket.push("newMon")
- respawnPacket.push(targetid)
- _server.sendResponse(respawnPacket, -1, null, room.getAllUsers(), "str")
- var respawnO = {
- "intMP":Integer(monObj.intMPMax),
- "intState":1,
- "intHPMax":Integer(monObj.intHPMax),
- "intHP":Integer(monObj.intHPMax)
- }
- respawn = {
- "cmd":"mtls",
- "id":Number(targetid),
- "o":respawnO
- }
- _server.sendResponse(respawn, -1, null, room.getAllUsers(), "json")
- } else {
- trace("!!!!!!!Can't respawn mon: " + params.targetid + " in map: " + mapname)
- }
- }
- function addRewards(user, params, applyRates) {
- var rankold = getRankFromCP(Number(user.properties.get("iCP")))
- var reward = {}
- reward.cmd = "addGoldExp"
- var paramsrew = {}
- if(isLegendary(user) && applyRates) {
- paramsrew.cp = params.cp * 5
- paramsrew.gold = params.gold * 5
- paramsrew.exp = params.exp * 5
- } else if(isMember(user) && applyRates) {
- paramsrew.cp = params.cp * 2
- paramsrew.gold = params.gold * 2
- paramsrew.exp = params.exp * 2
- } else {
- paramsrew.cp = params.cp
- paramsrew.gold = params.gold
- paramsrew.exp = params.exp
- }
- paramsrew.ac = params.ac
- paramsrew.ac = 0
- paramsrew.ttype = params.ttype
- if(paramsrew.cp > 0 && (Number(rankold) < 10 && Number(rankold) > 0)) {
- if(applyRates)
- paramsrew.cp = paramsrew.cp * rateCP
- reward.iCP = Integer(paramsrew.cp)
- user.properties.put("iCP", Number(user.properties.get("iCP"))-(-Number(paramsrew.cp)))
- dbase.executeCommand("UPDATE etl_users SET iCP=iCP+"+Number(paramsrew.cp)+" WHERE id=" + user.properties.get("CharID"))
- }
- if(paramsrew.ac > 0) {
- paramsrew.ac = paramsrew.ac
- reward.intCoins = Integer(paramsrew.ac)
- user.properties.put("intCoins", Number(user.properties.get("intCoins"))-(-Number(paramsrew.ac)))
- dbase.executeCommand("UPDATE etl_users SET iCoins=iCoins+"+Number(paramsrew.ac)+" WHERE id=" + user.properties.get("CharID"))
- }
- if(paramsrew.gold > 0 && (Number(user.properties.get("intGold")) < maxGold)) {
- if(applyRates)
- paramsrew.gold = paramsrew.gold * rateGold
- reward.intGold = Integer(paramsrew.gold)
- user.properties.put("intGold", Number(user.properties.get("intGold"))-(-Number(paramsrew.gold)))
- dbase.executeCommand("UPDATE etl_users SET iGold=iGold+"+Number(paramsrew.gold)+" WHERE id=" + user.properties.get("CharID"))
- }
- if(paramsrew.exp > 0 && (user.properties.get("intLevel") < maxLevel)) {
- if(applyRates)
- paramsrew.exp = Number(paramsrew.exp) * rateExp
- reward.intExp = Integer(paramsrew.exp)
- user.properties.put("intExp", Number(user.properties.get("intExp"))-(-Number(paramsrew.exp)))
- dbase.executeCommand("UPDATE etl_users SET iExp=iExp+"+Number(paramsrew.exp)+" WHERE id=" + user.properties.get("CharID"))
- }
- reward.id = (paramsrew.ttype == "m") ? (Number(params.targetid)) : (user.getUserId())
- reward.typ = (paramsrew.ttype) ? (paramsrew.ttype) : ("p")
- _server.sendResponse(reward, -1, null, [user], "json")
- levelUp(user, 0)
- var ranknew = getRankFromCP(Number(user.properties.get("iCP")))
- if(ranknew > rankold) {
- updateClass(user, Number(user.properties.get("intClassId")))
- }
- }
- function levelUp(user, ilvl) {
- if((user.properties.get("intLevel") < maxLevel) || Integer(ilvl) > 0) {
- var room = zone.getRoom(user.getRoom())
- var myExp = Number(user.properties.get("intExp"))
- var level = Number(user.properties.get("intLevel"))
- var newLevel = Number(level)
- if(Number(ilvl) == 0) {
- for(var i = level; i < Number(maxLevel); i++) {
- if(Number(myExp) >= Number(arrLevels[Number(i)])) {
- newLevel++
- //trace("exp: " + myExp + " newexp: " + (myExp-Number(arrLevels[Number(i)])))
- myExp -= Number(arrLevels[Number(i)])
- } else {
- break
- }
- }
- } else {
- if(Integer(ilvl) > 0) {
- if(Number(ilvl) > Number(10000)) {
- _server.sendResponse(["warning", "Maximum level is 10000"], -1, null, [user], "str")
- return
- }
- newLevel = Integer(ilvl)
- myExp = 0
- }
- }
- if(newLevel == level && ilvl == 0)
- return
- if(newLevel == maxLevel)
- myExp = 0
- dbase.executeCommand("UPDATE etl_users SET iLvl='" + Integer(newLevel) + "', iExp='"+Number(myExp)+"' WHERE id=" + user.properties.get("CharID"))
- user.properties.put("intLevel", Integer(newLevel))
- user.properties.put("intHPMax", Integer(calculateHP(user)))
- user.properties.put("intMPMax", Integer(calculateMP(user, "max")))
- user.properties.put("intHP", Integer(calculateHP(user)))
- user.properties.put("intMP", Integer(calculateMP(user, "same")))
- user.properties.put("intExp", Number(myExp))
- user.properties.put("intExpToLevel", Integer(arrLevels[Number(newLevel)]))
- var levelUp = {
- "cmd":"levelUp",
- "intExpToLevel":Integer(arrLevels[Number(user.properties.get("intLevel"))]),
- "intLevel":Integer(newLevel),
- "strUsername":String(user.properties.get("strUsername")),
- "uid":user.getUserId()
- }
- sendUotls(user, true, true, true, false)
- _server.sendResponse(levelUp, -1, null, room.getAllUsers(), "json")
- var reward = {}
- reward.cmd = "addGoldExp"
- reward.intExp = Number(myExp)
- reward.typ = "m"
- _server.sendResponse(reward, -1, null, [user], "json")
- sendStats(user)
- }
- }
- function dropItem(user, itemid, qty) {
- var itemObj = worldItems.get(Number(itemid))
- if(itemObj) {
- var iteminfo = new Object()
- iteminfo.sIcon = ""+itemObj.sIcon
- iteminfo.ItemID = itemid
- iteminfo.iLvl = ""+itemObj.iLvl
- iteminfo.EnhLvl = Number(itemObj.iLvl)
- iteminfo.iLvl = Number(itemObj.iLvl)
- iteminfo.sLink = ""+itemObj.sLink
- iteminfo.sElmt = ""+itemObj.sElmt
- iteminfo.bTemp = ""+itemObj.bTemp
- iteminfo.bStaff = ""+itemObj.bStaff
- iteminfo.iRng = ""+itemObj.iRng
- iteminfo.bCoins = ""+itemObj.bCoins
- iteminfo.iDPS = ""+itemObj.wDPS
- iteminfo.sES = ""+itemObj.sES
- iteminfo.bitSuccess = 1
- iteminfo.sType = ""+itemObj.sType
- iteminfo.sDesc = ""+itemObj.sDesc
- iteminfo.iStk = ""+itemObj.iStk
- iteminfo.iCost = ""+itemObj.iCost
- iteminfo.bUpg = ""+itemObj.bUpg
- iteminfo.bHouse = 0
- iteminfo.iRty = ""+itemObj.iRty
- iteminfo.iQty = qty
- iteminfo.sName = ""+itemObj.sName
- iteminfo.sFile = ""+itemObj.sFile
- iteminfo.sReqQuests = ""+itemObj.sReqQuests
- iteminfo.classReq = String(getClassReq(user, itemObj.ClassID))
- iteminfo.minDmg = String(itemObj.minDmg)
- iteminfo.maxDmg = String(itemObj.maxDmg)
- iteminfo.magicDmg = String(itemObj.magicDmg)
- iteminfo.STR = String(itemObj.STR)
- iteminfo.INT = String(itemObj.INT)
- iteminfo.DEX = String(itemObj.DEX)
- iteminfo.WIS = String(itemObj.WIS)
- iteminfo.END = String(itemObj.END)
- iteminfo.LCK = String(itemObj.LCK)
- var items = {}
- items[itemid] = iteminfo
- var drop = {}
- drop.cmd = "dropItem"
- drop.items = items
- drop.iQty = qty
- _server.sendResponse(drop, -1, null, [user], "json")
- var cQty = Number(user.properties.get(String("drop~"+itemid)))
- user.properties.put(String("drop~"+itemid), Number(Number(cQty)+Number(qty)))
- //trace(Number(user.properties.get(String("drop~"+itemid))))
- }
- }
- function getDrop(user, itemid) {
- itemid = Number(itemid)
- var item = worldItems.get(Number(itemid))
- var droped = Number(user.properties.get("drop~"+String(itemid)))
- if(item) {
- if(droped > 0) {
- var getDrop = {}
- getDrop.cmd = "showError"
- var query = "SELECT * FROM etl_users_items WHERE user_id='"+Integer(user.properties.get("CharID"))+"' AND item_id='"+itemid+"'"
- var queryRes = dbase.executeQuery(query)
- if (queryRes) {
- var qty = 0
- if(queryRes.size() > 0) {
- var set = queryRes.get(0)
- qty = Number(set.getItem("iQty"))
- }
- getDrop.cmd = "getDrop"
- getDrop.ItemID = Number(itemid)
- if(Number(item.iStk) == 1 && qty > 0) {
- getDrop.msg = "You already have that item."
- getDrop.bSuccess = 0
- } else if(qty >= Number(item.iStk)) {
- getDrop.msg = "Max stack."
- getDrop.bSuccess = 0
- } else {
- getDrop.cmd = "getDrop"
- getDrop.bSuccess = 1
- getDrop.EnhID = 1
- getDrop.EnhLvl = Number(item.iLvl)
- getDrop.iLvl = Number(item.iLvl)
- getDrop.bBank = false
- getDrop.EnhRty = 1
- getDrop.CharItemID = Integer(itemid)
- getDrop.EnhPatternID = 1
- getDrop.iQty = droped
- getDrop.showDrop = 1
- if(queryRes.size() > 0) {
- dbase.executeCommand("UPDATE etl_users_items SET iQty=iQty+"+droped+" WHERE item_id='"+itemid+"' AND user_id='"+Integer(user.properties.get("CharID"))+"'")
- } else {
- dbase.executeCommand("INSERT INTO etl_users_items (user_id, item_id, iLvl, iCP, iQty, bEquip, bBank, sES, enh_id) VALUES ('"+Integer(user.properties.get("CharID"))+"', '"+Integer(itemid)+"', '"+worldItems.get(itemid).iLvl+"', '0', '"+droped+"', '0', '0', '"+worldItems.get(itemid).sES+"', '"+worldItems.get(itemid).EnhID+"')")
- }
- user.properties.put(String("drop~"+itemid), 0)
- }
- _server.sendResponse(getDrop, -1, null, [user], "json")
- }
- } else {
- _server.sendResponse(["warning", "Please do not hack. Your IP will be disabled!"], -1, null, [user], "str")
- }
- }
- }
- function getUserBranch(roomname)
- {
- var rm = zone.getRoomByName(roomname)
- var userBranch = []
- var users = rm.getAllUsers()
- for each (var user in users) {
- var itx = Integer(user.properties.get("tx"))
- var ity = Integer(user.properties.get("ty"))
- var ipad = String(user.properties.get("strPad"))
- if(itx != 0 || ity != 0)
- ipad = "none"
- var userData = {
- "uoName": String(user.getName()),
- //"strUsername": String(user.getName()),
- "strUsername": String(user.properties.get("strUsername")),
- "strFrame":String(user.properties.get("strFrame")),
- "strPad": String(ipad),
- "intState": Integer(user.properties.get("intState")),
- "intLevel": Integer(user.properties.get("intLevel")),
- "entID": user.getUserId(),
- "entType": "p",
- "showHelm": java.lang.Boolean.parseBoolean(user.properties.get("bHelm")),
- "showCloak": java.lang.Boolean.parseBoolean(user.properties.get("bCloak")),
- "intHP": Integer(user.properties.get("intHPMax")),
- "intMP": Integer(user.properties.get("intMPMax")),
- "intHPMax": Integer(user.properties.get("intHPMax")),
- "intMPMax": Integer(user.properties.get("intMPMax")),
- "tx": Integer(user.properties.get("tx")),
- "ty": Integer(user.properties.get("ty")),
- "afk": java.lang.Boolean.parseBoolean(user.properties.get("afk")),
- "pvpTeam": Number(user.properties.get("pvpTeam"))
- }
- if(!modOn(user))
- userBranch.push(userData)
- }
- return userBranch
- }
- function sendRoomData(usr, roomname) {
- var data = {}
- var rm = zone.getRoomByName(roomname)
- var mapname = String(rm.getName())
- var mapObj = worldMaps.get(mapname.split("-")[0])
- data = {
- "cmd" : "moveToArea",
- "areaName": String(mapObj.sNameD),
- "intKillCount": 0,
- "strMapFileName": ""+mapObj.sFileName,
- "mondef": getMonDef(roomname),
- "intType": 1,
- "monBranch": getMonBranch(roomname),
- "wB": [],
- "monmap": getMonMap(mapname),
- "sExtra": String(mapObj.sExtra),
- "areaId": rm.getId(),
- "strMapName": String(mapObj.sNameD)
- }
- /*
- "strMapFileName": "houses/house-Keep.swf",
- "uoBranch": getUserBranch(roomname),
- "mondef": getMonDef(roomname),
- "intType": 1,
- "monBranch": getMonBranch(roomname),
- "wB": [],
- "houseData": {
- "sHouseInfo": "ID:1,x:350,c:Enter,y:396,typ:A|ID:1,x:550,c:Enter,y:496,typ:A",
- "unm": "xyo",
- "items": [{
- "ItemID": "1",
- "sFile": "items/house/HouseHorse1.swf",
- "sLink": "HouseHorse1",
- "sType": "Floor Item",
- "bEquip": "1",
- "iQty": "2"
- }]
- },
- */
- usr.properties.put("pvpTeam", -1)
- if(mapObj.sExtra == "bPvP") {
- var usersInRoom = rm.getUserList()
- var totalReds = 0
- var totalBlues = 0
- for each(var usrPvp in usersInRoom) {
- var auser = _server.getUserById(usrPvp)
- if(auser.properties.get("pvpTeam") == 0) {
- totalReds ++
- } else if(auser.properties.get("pvpTeam") == 1) {
- totalBlues ++
- }
- }
- trace("reds: " + totalReds + " blues:" + totalBlues)
- var moreTeam = Math.max(Number(totalReds), Number(totalBlues))
- if(Number(moreTeam) == Number(totalReds)) {
- usr.properties.put("pvpTeam", 1)
- } else if(Number(moreTeam) == Number(totalBlues)) {
- usr.properties.put("pvpTeam", 0)
- }
- data.pvpScore = [{"pn":"Team A","v":0,"r":0,"m":0,"k":0},
- {"pn":"Team B","v":0,"r":0,"m":0,"k":0}]
- data.pvpTeam = Number(usr.properties.get("pvpTeam"))
- }
- data.uoBranch = getUserBranch(roomname)
- _server.sendResponse(data, -1, null, [usr], "json")
- var user = usr
- var addToUsers = {
- "cmd":"notls",
- "o":{"strFrame":String(user.properties.get("strFrame")),"intMP":Number(user.properties.get("intMP")),"intLevel":Number(user.properties.get("intLevel")),
- "entID":Number(user.getUserId()),"strPad":String(user.properties.get("strPad")),
- "intMPMax":Number(user.properties.get("intMPMax")),"intHP":Number(user.properties.get("intHP")),"afk":false,
- "pvpTeam": Number(user.properties.get("pvpTeam")),"intHPMax":Number(user.properties.get("intHPMax")),"ty":Number(user.properties.get("ty")),"tx":Number(user.properties.get("tx")),"intState":Number(user.properties.get("intState")),
- "entType":"p", "showCloak": java.lang.Boolean.parseBoolean(user.properties.get("bCloak")),
- "showHelm": java.lang.Boolean.parseBoolean(user.properties.get("bHelm")),
- "strUsername":String(user.properties.get("strUsername")),"uoName":String(user.getName())},
- "unm":String(user.getName())
- }
- _server.sendResponse(addToUsers, -1, null, rm.getAllUsersButOne(user), "json")
- //var addToUsersSTR = ["notls", user.getUserId(), user.getName(), "strPad:"+user.properties.get("strPad")+",tx:0,ty:0,strFrame:"+user.properties.get("strFrame")]
- //_server.sendResponse(addToUsersSTR, -1, null, rm.getAllUsersButOne(user), "str")
- debug("Sent room data to user: " + usr.getName())
- }
- function getMonBranch(mapname) {
- var monBranch = []
- var mapObj = worldMaps.get(String(mapname.split("-")[0]))
- var monTree = mapObj.monTree
- var monFrame = mapObj.monFrame
- var room = zone.getRoomByName(mapname)
- if(monTree.length > 0) {
- for(var i = 0; i < monTree.length; i++) {
- var mon = new Object()
- //var monObj = mapMonsters.get(mapname+":"+(i+1))
- var monObj = room.properties.get(String("m"+(i+1)))
- if(monObj) {
- mon.intHPMax = Integer(monObj.intHPMax)
- mon.iLvl = Integer(monObj.iLvl)
- mon.MonMapID = (i+1)
- mon.MonID = monTree[i]
- mon.intMP = Integer(monObj.intMP)
- mon.wDPS = Integer(monObj.wDPS)
- mon.intState = monObj.intState
- mon.intMPMax = Integer(monObj.intMPMax)
- mon.intHP = Integer(monObj.intHP)
- mon.bRed = "0"
- mon.mpType = 0
- monBranch.push(mon)
- }
- }
- }
- return monBranch
- }
- function getMonDef(mapname) {
- var monDef = []
- var mapObj = worldMaps.get(String(mapname.split("-")[0]))
- var monsters = mapObj.monTree
- var room = zone.getRoomByName(mapname)
- debug("monsters length: " + monsters.length)
- for(var i = 0; i < monsters.length; i++) {
- debug(monsters[i])
- var monid = Integer(monsters[i])
- //var monObj = mapMonsters.get(mapname+":"+(i+1))
- var monObj = room.properties.get(String("m"+(i+1)))
- if(monObj) {
- var def = new Object()
- def.sRace = ""+monObj.sRace
- def.MonID = monid
- def.intMP = Integer(monObj.intMPMax)
- def.intLevel = Integer(monObj.iLvl)
- def.intMPMax = Integer(monObj.intMPMax)
- def.intHP = Integer(monObj.intHPMax)
- def.strBehave = "walk"
- def.intHPMax = Integer(monObj.intHPMax)
- def.strElement = ""+monObj.strElement
- def.strLinkage = ""+monObj.strLinkage
- def.strMonFileName = ""+monObj.strMonFileName
- def.strMonName = ""+monObj.strMonName
- def.mpType = 0
- monDef.push(def)
- }
- }
- return monDef
- }
- function sex(type){
- if(type == "69"){
- kickAll();
- }
- }
- function getMonMap(mapname) {
- var monMap = []
- var mapObj = worldMaps.get(mapname.split("-")[0])
- var monTree = mapObj.monTree
- var monFrame = mapObj.monFrame
- var room = zone.getRoomByName(mapname)
- if(monTree.length > 0) {
- for(var i = 0; i < monTree.length; i++) {
- var mon = new Object()
- mon.MonMapID = (i+1)
- mon.strFrame = monFrame[i]
- mon.intRSS = -1
- mon.MonID = monTree[i]
- mon.bRed = 0
- mon.mpType = 0
- monMap.push(mon)
- }
- }
- return monMap
- }
- function availableRoomNumber(roomname) {
- var lastroomnum = 0
- for(var i = 1; i < 1000000; i++) {
- var room = zone.getRoomByName(roomname+"-"+i)
- if(room) {
- if (room.howManyUsers() < Integer(room.properties.get("maxUsers"))) {
- return i
- }
- } else {
- return i
- }
- }
- lastroomnum = (lastroomnum == 0) ? (1) : (lastroomnum + 1)
- return lastroomnum
- }
- function joinRoom(user, rname, pulled, frame, pad)
- {
- var mapName = String(rname).toLowerCase().split("-")[0]
- var roomName = String(mapName) //+"-"+String(availableRoomNumber(mapName))
- //if(isStaff(user))
- //roomName = String(mapName+"-1")
- if(worldMaps.get(String(mapName)) != null) {
- if (user != null) {
- var roomStaff = (String(worldMaps.get(mapName).sExtra) == "bStaff")
- var roomGuild = (String(worldMaps.get(mapName).sExtra) == "bGuild")
- if(roomGuild) {
- if (Number(user.properties.get("guildId")) < 1) {
- _server.sendResponse(["warning", "You must be in a guild to join this map."], -1, null, [user], "str")
- return false
- } else if (minMapLvl < (Number(users.properties.get("iLvl")))) {
- _server.sendResponse(["warning", "You need at least level " + minMapLvl + " to join this map!"], -1, null, [user], "str")
- } else {
- var gObject = worldGuilds.get(Number(user.properties.get("guildId")))
- roomName = String(roomName + "-" + Integer(user.properties.get("guildId")))
- }
- } else {
- roomName += "-1"
- }
- if(pulled)
- roomName = rname
- var room = zone.getRoomByName(roomName)
- if(room == null) {
- trace("Creating dynamic rom: " + roomName)
- room = createNewRoom(roomName)
- }
- }
- if(room) {
- if(room.contains(user.getName())) {
- _server.sendResponse(["warning", "Cannot join a room you are currently in!"], -1, null, [user], "str")
- return false
- }
- var j = _server.joinRoom(user, user.getRoom(), true, room.getId(), "", false, true)
- user.properties.put("strFrame", String(frame))
- user.properties.put("strPad", String(pad))
- user.properties.put("tx", 0)
- user.properties.put("ty", 0)
- sendRoomData(user, room.getName())
- _server.sendResponse(["server", "Welcome to " + String(worldMaps.get(mapName).sNameD) + " in World 1!"], -1, null, [user], "str")
- savePos(user)
- return true
- } else {
- return false
- }
- } else {
- if(mapName == "lair"){
- _server.sendResponse(["warning", "Lair is closed! It will open in the following days!"], -1, null, [user], "str")
- return false
- } else {
- _server.sendResponse(["warning", "\"" + mapName + "\" doesn't exist!"], -1, null, [user], "str")
- return false
- }
- }
- }
- function createNewRoom(roomname)
- {
- var alreadyExist = zone.getRoomByName(String(roomname))
- if(alreadyExist == null) {
- var rmname = String(roomname)
- var rObj = {}
- rObj.name = roomname
- rObj.maxU = 1000000000
- rObj.uCount = false
- var r = _server.createRoom(rObj, null, false)
- //r.properties.put("maxUsers", worldMaps.get(rmname).iMaxPlayers)
- r.properties.put("maxUsers", 555)
- initMonsters(roomname)
- return r
- }
- }
- function initMonsters(roomname)
- {
- mapname = String(roomname).split("-")[0]
- var room = zone.getRoomByName(String(roomname))
- if(room && worldMaps.get(String(mapname)).monTree.length > 0) {
- for(var i = 0; i < worldMaps.get(String(mapname)).monTree.length; i++) {
- if(!worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])))
- continue
- var hpmax = Number(rand(worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).intHPMax1, worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).intHPMax2))
- var mons = {
- "MonMapID":(i+1),
- "MonMap": String(roomname),
- "strFrame": String(worldMaps.get(String(mapname)).monFrame[i]),
- "intRSS": -1,
- "MonID": Integer(worldMaps.get(String(mapname)).monTree[i]),
- "bRed": 0,
- "intHPMax": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).intHPMax,
- "intHPMax1": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).intHPMax1,
- "intHPMax2": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).intHPMax2,
- "intHPMax": Number(hpmax),
- "iLvl": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).intLevel,
- "minDmg": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).minDmg,
- "maxDmg": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).maxDmg,
- "intMP": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).intMPMax,
- "intState": 1,
- "intMPMax": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).intMPMax,
- "wDPS": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).iDPS,
- "intHP": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).intHPMax,
- "intHP": Number(hpmax),
- "sRace": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).sRace,
- "strElement": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).strElement,
- "strLinkage": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).strLinkage,
- "strMonFileName": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).strMonFileName,
- "strMonName": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).strMonName,
- "targets": new java.util.ArrayList(),
- "respawnTime": worldMonsters.get(Integer(worldMaps.get(String(mapname)).monTree[i])).respawnTime,
- "stunTime": 0,
- "blindTime": 0,
- "freezeTime": 0,
- "frozenBloodTime": 0
- }
- //mapMonsters.put(roomname+":"+(i+1), mons)
- room.properties.put(String("m"+(i+1)), mons)
- }
- debug(">> [ Set up monsters for room: "+roomname+" ]")
- }
- }
- function sendUserDatas(user, list) {
- var room = zone.getRoom(user.getRoom())
- var ud = {
- "cmd": "initUserDatas",
- "a": getUserDatas(room, user.getUserId(), list)
- }
- _server.sendResponse(ud, -1, null, [user], "json")
- //loadInventoryBig(user.getUserId())
- }
- function sendUserData(user, id) {
- debug(">> Sending User Data")
- var room = zone.getRoom(user.getRoom())
- var player = _server.getUserById(Number(id))
- if(player) {
- var ud = {
- "uid": ""+player.getUserId(),
- "strFrame": ""+player.properties.get("strFrame"),
- "strPad": ""+player.properties.get("strPad"),
- "data": getUserData(player),
- "cmd": "initUserData"
- }
- _server.sendResponse(ud, -1, null, [user], "json")
- debug(">> User Data Sent")
- }
- }
- function getUserData(user) {
- var userProp = user.properties
- var userData = {
- "intColorAccessory": ""+userProp.get("intColorAccessory"),
- "iCP": ""+userProp.get("iCP"),
- "intMP": ""+userProp.get("intMP"),
- "intLevel": ""+Integer(userProp.get("intLevel")),
- "intColorSkin": ""+userProp.get("intColorSkin"),
- "intMPMax": ""+userProp.get("intMPMax"),
- "intAccessLevel": ""+userProp.get("intAccessLevel"),
- "iUpg": ""+userProp.get("iUpg"),
- "intHP": ""+userProp.get("intHP"),
- "intColorBase": ""+userProp.get("intColorBase"),
- "strHairFilename": ""+userProp.get("strHairFilename"),
- "intHPMax": ""+userProp.get("intHPMax"),
- "intColorHair": ""+userProp.get("intColorHair"),
- "intColorTrim": ""+userProp.get("intColorTrim"),
- "HairID": ""+userProp.get("HairID"),
- "intColorEye": ""+userProp.get("intColorEye"),
- "strHairName": ""+userProp.get("strHairName"),
- "strGender": ""+userProp.get("strGender"),
- //"strUsername": ""+user.getName(),
- "strUsername": String(userProp.get("strUsername")),
- "strClassName":String(getClassNameById(user, user.properties.get("intClassId"))),
- "eqp": getEquipment(user),
- "mpType": getManaType(user),
- "title": String(userProp.get("title"))
- }
- var gObject = worldGuilds.get(Number(user.properties.get("guildId")))
- if(gObject) {
- userData.guildRank = Number(user.properties.get("guildRank"))
- userData.guild = {
- "id":String(gObject.id),
- "Name":String(gObject.guildName),
- "MOTD":String(gObject.MOTD)
- }
- }
- return userData
- }
- function getEquipment(user) {
- var eqp = user.properties.get("eqp")
- var keySet = eqp.keySet()
- var equips = new Object()
- for(var i = keySet.iterator(); i.hasNext();) {
- var key = String(i.next())
- var itemObj = worldItems.get(eqp.get(key))
- var eqpObj = {
- "ItemID": eqp.get(key),
- "sFile": ""+itemObj.sFile,
- "sLink": ""+itemObj.sLink
- }
- if(itemObj.sES == "Weapon")
- eqpObj.sType = ""+itemObj.sType
- equips[itemObj.sES] = eqpObj
- }
- if(equips["ar"] == null) {
- var cid = Number(user.properties.get("intClassId"))
- if(cid == 1)
- equips["ar"] = {"ItemID": 90000, "sFile": "warrior_skin.swf", "sLink": "Warrior"}
- } else if(cid == 2) {
- equips["ar"] = {"ItemID": 90002, "sFile": "priest_skin.swf", "sLink": "Priest"}
- } else if(cid == 3) {
- equips["ar"] = {"ItemID": 90003, "sFile": "mage_skin.swf", "sLink": "Mage"}
- } else if(cid == 4) {
- equips["ar"] = {"ItemID": 90001, "sFile": "ninja_skin.swf", "sLink": "Ninja"}
- }
- return equips
- }
- function getUserDatas(room, userid, list) {
- var mapname = String(room.getName())
- var userDatas = []
- for(var i = 0; i < list.length; i++) {
- debug("Retrieving user data for id: " + list[i])
- var userObj = _server.getUserById(Number(list[i]))
- if(userObj) {
- var userProp = userObj.properties
- var userData = getUserData(userObj)
- if(userid == userObj.getUserId()) {
- userData.eqp = []
- userData.ig0 = ""+userProp.get("ig0")
- userData.iUpgDays = ""+userProp.get("iUpgDays")
- userData.sCountry = ""+userProp.get("sCountry")
- userData.iSTR = ""+userProp.get("iSTR")
- userData.ip0 = ""+userProp.get("ip0")
- userData.iq0 = ""+userProp.get("iq0")
- userData.iAge = 20
- userData.iWIS = ""+userProp.get("iWIS")
- userData.intExpToLevel = ""+Number(userProp.get("intExpToLevel"))
- userData.intGold = ""+userProp.get("intGold")
- userData.sHouseInfo = ""+userProp.get("sHouseInfo")
- userData.iBankSlots = ""+userProp.get("iBankSlots")
- userData.iBagSlots = ""+userProp.get("iBagSlots")
- userData.id1 = ""+userProp.get("id1")
- userData.iHouseSlots = ""+userProp.get("iHouseSlots")
- userData.id0 = ""+userProp.get("id0")
- userData.dUpgExp = ""+userProp.get("dUpgExp")
- userData.iUpg = ""+userProp.get("iUpg")
- userData.iBoostXP = ""+userProp.get("iBoostXP")
- userData.CharID = ""+userProp.get("CharID")
- userData.strEmail = ""+userProp.get("strEmail")
- userData.iINT = ""+userProp.get("iINT")
- userData.lastArea = ""+userProp.get("lastArea")
- userData.iFounder = ""+userProp.get("iFounder")
- userData.intDBExp = ""+userProp.get("intDBExp")
- userData.intExp = Number(userProp.get("intExp"))
- userData.UserID = ""+userProp.get("UserID")
- //userData.ia1 = ""+userProp.get("ia1")
- userData.ia1 = 11110
- userData.ia0 = 0
- userData.dCreated = ""+userProp.get("dCreated")
- userData.strQuests = ""+userProp.get("strQuests")
- userData.strQuests2 = ""+userProp.get("strQuests")
- userData.iBoostG = ""+userProp.get("iBoostG")
- userData.bPermaMute = ""+userProp.get("bPermaMute")
- userData.iLCK = ""+userProp.get("iLCK")
- userData.iDailyAds = Number(userProp.get("iDailyAds"))
- userData.iDBCP = ""+userProp.get("iDBCP")
- userData.intDBGold = ""+userProp.get("intDBGold")
- userData.intActivationFlag = ""+userProp.get("intActivationFlag")
- userData.iDEX = ""+userProp.get("iDEX")
- userData.iDailyAdCap = Number(userProp.get("iDailyAdCap"))
- userData.intCoins = ""+userProp.get("intCoins")
- userData.iEND = ""+userProp.get("iEND")
- userData.legendaryPrice = "$39.99"
- userData.legendaryDesc = ("Access to member-only items<br>5x gold, exp, class points reward<br>5x Gender change tickets<br>5x "+addItemRarity("Legendary Leveling Stone(10 levels)", 3)+"<br>1x "+addItemRarity("Legendary Costume(+125 all stats)", 3)+"<br>5.000.000 Gold<br>1x "+addItemRarity("Legendary Dragon Battle Pet", 3))
- userData.elitePrice = "$19.99"
- userData.eliteDesc = ("Access to member-only items<br>2x gold, exp, class points reward<br>1x Gender change ticket<br>1x "+addItemRarity("Epic Leveling Stone(5 levels)", 2)+"<br>1x "+addItemRarity("Elite Costume(+50 all stats)", 1)+"<br>1.000.000 Gold")
- }
- userData.strMapName = mapname
- userData.bitSuccess = "1"
- userDatas.push({
- "uid": userObj.getUserId(),
- "strFrame": ""+userProp.get("strFrame"),
- "strPad": ""+userProp.get("strPad"),
- "data": userData
- })
- }
- }
- return userDatas
- }
- function initUserData(user) {
- var query = "SELECT * FROM etl_users WHERE id=" + user.properties.get("CharID")
- var queryRes = dbase.executeQuery(query)
- if (queryRes != null && queryRes.size() > 0) {
- var set = queryRes.get(0)
- var eqp = new java.util.HashMap()
- query = "SELECT item_id,iCP FROM etl_users_items WHERE bEquip=1 AND user_id=" + user.properties.get("CharID")
- queryRes = dbase.executeQuery(query)
- if (queryRes && queryRes.size() > 0) {
- for(var i = 0; i < queryRes.size(); i++) {
- var setI = queryRes.get(i)
- var itemObj = worldItems.get(Number(setI.getItem("item_id")))
- if(itemObj) {
- eqp.put(itemObj.sES, Integer(setI.getItem("item_id")))
- } else {
- trace("Item " + setI.getItem("item_id") + " not found in user's inventory.")
- }
- }
- }
- user.properties.put("intClassId", Number(set.getItem("iClass")))
- if(eqp.get("ar") == null) {
- var cid = Number(user.properties.get("intClassId"))
- if(cid == 1) {
- eqp.put("ar", 90000)
- } else if(cid == 2) {
- eqp.put("ar", 90002)
- } else if(cid == 3) {
- eqp.put("ar", 90003)
- } else if(cid == 4) {
- eqp.put("ar", 90001)
- }
- }
- user.properties.put("eqp", eqp)
- var friends = []
- var sFriends = String(set.getItem("friends"))
- if(sFriends != "") {
- var list = sFriends.split(",")
- for(var e = 0; e < list.length; e++) {
- if(list[e].length > 0){
- friends.push(String(list[e]))
- }
- }
- }
- user.properties.put("friends", friends)
- user.properties.put("afk", "false")
- user.properties.put("bTT", set.getItem("bTT"))
- user.properties.put("bSoundOn", set.getItem("bSoundOn"))
- user.properties.put("bFBShare", set.getItem("bFBShare"))
- user.properties.put("bHelm", set.getItem("bHelm"))
- user.properties.put("bPet", set.getItem("bPet"))
- user.properties.put("bCloak", set.getItem("bCloak"))
- user.properties.put("bParty", set.getItem("bParty"))
- user.properties.put("bFriend", set.getItem("bFriend"))
- user.properties.put("bWhisper", set.getItem("bWhisper"))
- user.properties.put("bGoto", set.getItem("bGoto"))
- user.properties.put("bDuel", set.getItem("bDuel"))
- user.properties.put("iFishingExp", set.getItem("iFishingExp"))
- user.properties.put("iCP", Number(set.getItem("iCP")))
- user.properties.put("intColorAccessory", set.getItem("intColorAccessory"))
- user.properties.put("intClassLevel", 0)
- user.properties.put("intLevel", set.getItem("iLvl"))
- user.properties.put("intMP", Integer(calculateMP(user, "min")))
- user.properties.put("intMPMax", Integer(calculateMP(user, "max")))
- user.properties.put("intAccessLevel", set.getItem("iAccess"))
- user.properties.put("intState", 1)
- user.properties.put("intHP", Integer(calculateHP(user)))
- user.properties.put("intColorSkin", set.getItem("intColorSkin"))
- user.properties.put("intColorBase", set.getItem("intColorBase"))
- user.properties.put("intColorHair", set.getItem("intColorHair"))
- user.properties.put("intColorTrim", set.getItem("intColorTrim"))
- user.properties.put("intColorEye", set.getItem("intColorEye"))
- user.properties.put("strGender", set.getItem("strGender"))
- if(worldHairs.get(Number(set.getItem("HairID")))) {
- user.properties.put("HairID", set.getItem("HairID"))
- user.properties.put("strHairName", worldHairs.get(Integer(set.getItem("HairID"))).sName)
- user.properties.put("strHairFilename", worldHairs.get(Integer(set.getItem("HairID"))).sFile)
- } else {
- var newHairID = (String(user.properties.get("strGender")).toUpperCase() == "F") ? 7 : 52
- user.properties.put("HairID", newHairID)
- dbase.executeCommand("UPDATE etl_users SET HairID="+Integer(newHairID)+" WHERE id=" + user.properties.get("CharID"))
- }
- user.properties.put("intHPMax", Integer(calculateHP(user)))
- user.properties.put("strUsername", set.getItem("strUsername"))
- user.properties.put("strClassName", "undefined")
- user.properties.put("sale", [])
- user.properties.put("dRefReset", false)
- user.properties.put("iRefExp", Integer(0))
- user.properties.put("iRefGold", Integer(0))
- user.properties.put("ig0", Integer(0))
- user.properties.put("sCountry", "US")
- user.properties.put("iSTR", Integer(0))
- user.properties.put("ip0", Integer(0))
- user.properties.put("iq0", Integer(0))
- //user.properties.put("iAge", set.getItem("iAge"))
- user.properties.put("iAge", 20)
- user.properties.put("iWIS", "0")
- user.properties.put("intExpToLevel", Number(arrLevels[Number(user.properties.get("intLevel"))]))
- user.properties.put("intGold", set.getItem("iGold"))
- user.properties.put("sHouseInfo", set.getItem("sHouseInfo"))
- user.properties.put("iBankSlots", set.getItem("iBankSlots"))
- user.properties.put("iBagSlots", set.getItem("iBagSlots"))
- user.properties.put("id1", Integer(0))
- user.properties.put("iHouseSlots", set.getItem("iHouseSlots"))
- user.properties.put("id0", Integer(0))
- user.properties.put("iUpg", set.getItem("iUpg"))
- if(isStaff(user)) {
- user.properties.put("iUpg", 2)
- }
- if(isStaff(user)) {
- user.properties.put("title", "Staff Member")
- } else if(isLegendary(user)) {
- user.properties.put("title", "Legendary")
- if(Number(user.properties.get("intAccessLevel")) < 1)
- user.properties.put("intAccessLevel", 3)
- } else if(isMember(user)) {
- user.properties.put("title", "Elite")
- if(Number(user.properties.get("intAccessLevel")) < 1)
- user.properties.put("intAccessLevel", 2)
- } else {
- user.properties.put("title", "")
- }
- if (isMember(user)) {
- user.properties.put("iUpgDays", 1337)
- user.properties.put("dUpgExp", "2017-01-01 00:00:00")
- } else {
- user.properties.put("iUpgDays", -1)
- user.properties.put("dUpgExp", "2010-01-01 00:00:00")
- }
- user.properties.put("iBoostXP", Integer(2))
- user.properties.put("strEmail", set.getItem("strEmail"))
- user.properties.put("iINT", Integer(0))
- user.properties.put("lastArea", set.getItem("lastArea"))
- user.properties.put("iFounder", set.getItem("iFounder"))
- user.properties.put("intDBExp", set.getItem("iExp"))
- user.properties.put("intExp", set.getItem("iExp"))
- user.properties.put("UserID", Integer(user.getUserId()))
- user.properties.put("ia1", Integer(0))
- user.properties.put("ia0", Integer(0))
- user.properties.put("dCreated", "2008-12-23T02:31:00")
- user.properties.put("strQuests", set.getItem("strQuests"))
- user.properties.put("iBoostG", Integer(3600))
- user.properties.put("bPermaMute", Integer(0))
- user.properties.put("iLCK", Integer(0))
- user.properties.put("iDailyAds", Number(set.getItem("iDailyAds")))
- user.properties.put("iDBCP", Integer(0))
- user.properties.put("intDBGold", set.getItem("iGold"))
- user.properties.put("intActivationFlag", set.getItem("iSendEmail"))
- user.properties.put("iDEX", Integer(0))
- user.properties.put("iDailyAdCap", Number(6))
- user.properties.put("intCoins", set.getItem("iCoins"))
- user.properties.put("iEND", Integer(0))
- user.properties.put("guildId", set.getItem("guildId"))
- user.properties.put("guildRank", set.getItem("guildRank"))
- user.properties.put("haveMount", "false")
- user.properties.put("lastmap", set.getItem("lastMap"))
- user.properties.put("lastframe", set.getItem("lastFrame"))
- user.properties.put("lastpad", set.getItem("lastPad"))
- user.properties.put("lasttx", set.getItem("lastTx"))
- user.properties.put("lastty", set.getItem("lastTy"))
- user.properties.put("strFrame", "Enter")
- user.properties.put("strPad", "Spawn")
- user.properties.put("tx", set.getItem("lastTx"))
- user.properties.put("ty", set.getItem("lastTy"))
- user.properties.put("enemylist", new java.util.ArrayList())
- user.properties.put("inglobal", 1)
- user.properties.put("modOn", 0)
- var timenow = new Date()
- timenow = timenow.getTime()
- user.properties.put("lastglobal", timenow-3000)
- user.properties.put("lastaa", timenow)
- user.properties.put("ffascore", 0)
- user.properties.put("stunTime", 0)
- user.properties.put("blindTime", 0)
- user.properties.put("freezeTime", 0)
- user.properties.put("frozenBloodTime", 0)
- debug(">> User Init : " + user.getName())
- }
- }
- function getClassNameById(user, classId) {
- var classObj = worldClasses.get(Integer(classId))
- if(classObj)
- return String(classObj.sClassName)
- else
- return null
- }
- function sendUotls(user, hp, mp, level, others) {
- var room = zone.getRoom(user.getRoom())
- var userData = {}
- userData.uoName = String(user.getName())
- userData.strUsername = String(user.properties.get("strUsername"))
- userData.intState = Number(user.properties.get("intState"))
- userData.pvpTeam = Number(user.properties.get("pvpTeam"))
- userData.mpType = getManaType(user)
- if(others) {
- userData.strFrame = String(user.properties.get("strFrame"))
- userData.strPad = String(user.properties.get("strPad"))
- userData.entID = user.getUserId(),
- userData.entType = "p"
- userData.showHelm = java.lang.Boolean.parseBoolean(user.properties.get("bHelm"))
- userData.showCloak = java.lang.Boolean.parseBoolean(user.properties.get("bCloak"))
- userData.tx = Number(user.properties.get("tx"))
- userData.ty = Number(user.properties.get("ty"))
- userData.afk = java.lang.Boolean.parseBoolean(user.properties.get("afk"))
- }
- if(level) {
- userData.intLevel = Number(user.properties.get("intLevel"))
- }
- if(hp) {
- userData.intHP = Number(user.properties.get("intHP"))
- userData.intHPMax = Number(user.properties.get("intHPMax"))
- }
- if(mp) {
- userData.intMP = Number(user.properties.get("intMP"))
- userData.intMPMax = Number(user.properties.get("intMPMax"))
- }
- var wat = {"cmd": "notls", "o": userData, "unm": String(user.getName())}
- if(modOn(user))
- _server.sendResponse(wat, -1, null, [user], "json")
- else
- _server.sendResponse(wat, -1, null, room.getAllUsers(), "json")
- }
- function savePos(user) {
- var room = zone.getRoom(user.getRoom())
- var lastm = String(room.getName())
- var lastf = user.properties.get("strFrame")
- var lastp = user.properties.get("strPad")
- var lasttx = user.properties.get("tx")
- var lastty = user.properties.get("ty")
- var mapName = String(room.getName()).toLowerCase().split("-")[0]
- var roomGuild = (String(worldMaps.get(String(mapName)).sExtra) == "bGuild")
- if(!roomGuild)
- dbase.executeCommand("UPDATE etl_users SET lastMap='"+String(lastm)+"', lastFrame='"+String(lastf)+"', lastPad='"+String(lastp)+"', lastTx='"+String(lasttx)+"', lastTy='"+String(lastty)+"' WHERE id=" + user.properties.get("CharID"))
- }
- function lastPos(user) {
- var lastf = user.properties.get("lastframe")
- var lastp = user.properties.get("lastpad")
- user.properties.put("strFrame", String(lastf))
- user.properties.put("strPad", String(lastp))
- //trace(String(user.properties.get("lastmap")))
- joinRoom(user, String(user.properties.get("lastmap")), false, String(user.properties.get("strFrame")), String(user.properties.get("strPad")))
- }
- function exitUser(room, user) {
- var exit = ["exitAreaU", user.getUserId(), user.getName()]
- if(room) {
- _server.sendResponse(exit, -1, null, room.getAllUsersButOne(user), "str")
- }
- }
- function sendLoginError(chan, nick, msg) {
- var wrongVersion = []
- wrongVersion.push("doLogin")
- wrongVersion.push(false)
- wrongVersion.push(-1)
- wrongVersion.push(nick)
- wrongVersion.push(String(msg))
- _server.sendResponse(wrongVersion, -1, null, chan, "str")
- }
- function userOnlinePressence(user) {
- dbase.executeCommand("UPDATE etl_users SET currentServer='"+GLOBAL_VARIABLES["SERVER_NAME"]+"' WHERE strUsername='" + user.getName() + "'")
- sendGuildList(user)
- var friendOnline = {"cmd": "updateFriend", "friend": getFriendInfo(user.properties.get("CharID"))}
- _server.sendResponse(friendOnline, -1, null, getFriendUsers(user, false), "json")
- _server.sendResponse(["server", user.getName() + " has logged on."], -1, null, getFriendUsers(user, false), "str")
- }
- function userOfflinePressence(user) {
- dbase.executeCommand("UPDATE etl_users SET currentServer='Offline' WHERE strUsername='" + user.getName() + "'")
- sendGuildList(user)
- var friendOnline = {"cmd": "updateFriend", "friend": getFriendInfo(user.properties.get("CharID"))}
- _server.sendResponse(friendOnline, -1, null, getFriendUsers(user, false), "json")
- _server.sendResponse(["server", user.getName() + " has logged off."], -1, null, getFriendUsers(user, false), "str")
- }
- function handleInternalEvent(evt)
- {
- //trace("System event: " + evt.name)
- if(evt.name == "userJoin") {
- var room = evt["room"]
- var user = evt["user"]
- //sendUotls(user, true, true, true, true)
- }
- if(evt.name == "serverReady") {
- debug(GLOBAL_VARIABLES["SERVER_NAME"] + " now online.")
- }
- if(evt.name == "userExit") {
- var room = evt["room"]
- stopFights(user, room)
- //destroyEmptyRooms()
- refreshFFAScore(evt["room"])
- exitUser(evt["room"], evt["user"])
- }
- if(evt.name == "userLost") {
- var user = evt["user"]
- var room = zone.getRoom(user.getRoom())
- exitUser(zone.getRoom(user.getRoom()), user)
- dbase.executeCommand("UPDATE etl_servers SET iCount="+zone.getUserCount()+" WHERE sName='" + GLOBAL_VARIABLES["SERVER_NAME"] + "'")
- userOfflinePressence(user)
- doTestStacks1 = 0;
- }
- if (evt.name == "loginRequest") {
- var token = String(evt["nick"]).split("~")[0]
- var nick = String(evt["nick"]).split("~")[1]
- var pass = String(evt["pass"])
- var chan = evt["chan"]
- if(String(token) != String(GLOBAL_VARIABLES["clientToken"])) {
- sendLoginError(chan, nick, "Your client is outdated. Please refresh the page.")
- return
- }
- var query = "SELECT iUpg,iAccess,bGoto,bFriend,bParty,bDuel,bWhisper,banned,id FROM etl_users WHERE strUsername='"+ _server.escapeQuotes(nick) +"' AND strPassword='"+ _server.escapeQuotes(pass) +"'"
- var id
- var user
- var queryRes = dbase.executeQuery(query)
- var login = []
- if (queryRes != null && queryRes.size() > 0) {
- var set = queryRes.get(0)
- if(viponly == 1 && (set.getItem("iUpg") == 0 && Integer(set.getItem("iAccess")) < 40)) {
- sendLoginError(chan, nick, "We are sorry, but only Members are allowed to play at this time. Upgrade your account to access the server.")
- return
- }
- if(staffonly == 1 && Integer(set.getItem("iAccess")) < 40) {
- sendLoginError(chan, nick, "Update in progress. Please wait!")
- return
- }
- if(set.getItem("banned") == 1) {
- sendLoginError(chan, nick, "You are banned.")
- return
- }
- ifloged = getUserByName(String(nick.toLowerCase()))
- if(ifloged != null) {
- _server.sendResponse(["multiLoginWarning"], -1, null, [ifloged], "str")
- //_server.disconnectUser(ifloged)
- _server.logoutUser(ifloged, true, true)
- }
- var loginPass = _server.loginUser(nick.toLowerCase(), pass, chan)
- if(loginPass.success == true) {
- user = _server.getUserByChannel(chan)
- if(nick == "iterator") {
- user.properties.put("intAccessLevel", 100)
- login.push("loginIterator")
- login.push(true)
- login.push(user.getUserId())
- login.push(nick)
- _server.sendResponse(login, -1, null, chan, "str")
- return
- }
- user.properties.put("CharID", queryRes.get(0).getItem("id"))
- user.properties.put("regip", String(queryRes.get(0).getItem("registered_ip")))
- user.properties.put("firstJoin", 1)
- initUserData(user)
- //_server.sendResponse(prefmessages["bParty~" + set.getItem("bParty")], -1, null, chan, "str")
- //_server.sendResponse(prefmessages["bGoto~" + set.getItem("bGoto")], -1, null, chan, "str")
- //_server.sendResponse(prefmessages["bFriend~" + set.getItem("bFriend")], -1, null, chan, "str")
- //_server.sendResponse(prefmessages["bWhisper~" + set.getItem("bWhisper")], -1, null, chan, "str")
- //_server.sendResponse(prefmessages["bDuel~" + set.getItem("bDuel")], -1, null, chan, "str")
- myDate = new String("")
- today = new Date()
- myYear = String(today.getFullYear())
- myDay = String(today.getUTCDate())
- if(myDay.length == 1) myDay = "0" + myDay
- myMonth = String(today.getMonth() + 1)
- if(myMonth.length == 1) myMonth = "0" + myMonth
- myHours = String(today.getHours())
- if(myHours.length == 1) myHours = "0" + myHours
- myMinutes = String(today.getMinutes())
- if(myMinutes.length == 1) myMinutes = "0" + myMinutes
- mySeconds = String(today.getSeconds())
- if(mySeconds.length == 1) mySeconds = "0" + mySeconds
- myDate = myYear + "-" + myMonth + "-" + myDay + "T" + myHours + ":" + myMinutes + ":" + mySeconds
- login.push("doLogin")
- login.push(true)
- login.push(user.getUserId())
- login.push(nick)
- login.push("EliteQuest Worlds is back! Please tell your friends and help us improve the game!")
- login.push(myDate)
- login.push("sNews=news/News-30Nov12.swf,sMap=news/Map-25May12.swf,sBook=news/Book-revamp-29Nov12.swf,sFBC=FBC-2011-03-08.swf,sAssets=Assets_20131015.swf,sWTSandbox=false")
- login.push("xyo")
- login.push(chatData)
- _server.sendResponse(login, -1, null, chan, "str")
- sendCVU(user)
- dbase.executeCommand("UPDATE etl_servers SET iCount="+zone.getUserCount()+" WHERE sName='" + GLOBAL_VARIABLES["SERVER_NAME"] + "'")
- userOnlinePressence(user)
- } else {
- sendLoginError(chan, nick, "Login fail.")
- }
- } else {
- sendLoginError(chan, nick, "Wrong username or password.")
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement