const { randomInt } = require('crypto') const path = require('path') const { emitKeypressEvents } = require('readline') const Utils = new (require(path.join(__dirname, '../Utils/Utils.js')))() const { Command } = require(path.join(__dirname, `../Lib/Classes.js`)) const Localization = require(path.join(__dirname, `../Configuration/Localization-en.json`)).lookup class Plugin { constructor(Server, Manager, Managers) { //add the .pguid of players to grant them staff permissions (must be done on ClanTag, ZombiesBank, ZombiesStats, NativeCommands & the gsc script staff.gsc) this.staff_list_a = [564391] this.botb_port = ["30001", "30005"] this.raid_port = ["30009"] this.daily_list = [3649, 12] this.pv_locked = 0 this.Server = Server this.Manager = Manager this.Managers = Managers this.lockerCost = 100000 this.wipe_id = [12] this.defaultLockerSize = 1 this.fana_cd = 0; this.fana_last_use = new Date(); this.is_raid_locked = "" //this.Server.on('preconnect', this.onPlayerPreconnect.bind(this)) this.Server.on('connect', this.onPlayerConnect.bind(this)) this.Server.on('disconnect', this.onPlayerDisconnect.bind(this)) this.gameWatcher() this.init() this.saveSlot = 0 this.Server.isDailyOccupied = false; this.Server.reservedSlots = 0; this.vote_id_list = [] this.guild_list = [] this.guild_list[this.guild_list.length] = "RFC;63156" this.guild_list[this.guild_list.length] = "RS;75539" this.guild_list[this.guild_list.length] = "ITD;66060" this.guild_list[this.guild_list.length] = "ILC;40024" this.guild_list[this.guild_list.length] = "KS;12" this.guild_list[this.guild_list.length] = "ALC;79746" this.guild_list[this.guild_list.length] = "WNL;65507" this.guild_list[this.guild_list.length] = "AZI;45982" this.guild_list[this.guild_list.length] = "LOV;135710" this.guild_list[this.guild_list.length] = "LCS;139379" this.guild_list[this.guild_list.length] = "TSC;29979" this.guild_list[this.guild_list.length] = "BHB;132773" this.guild_list[this.guild_list.length] = "ROH;94673" } async init() { (() => { let command = new Command() .setName('settag') .setAlias('st') .setPermission('ROLE_MODERATOR') .addParams([ { name: 'target', index: 0, }, { name: 'tag', join: true, index: 1 } ]) .addCallback(async (Player, params) => { var Client = await this.Server.getClient(params.target) var connectedPlayers = this.getAllClients(); connectedPlayers.forEach(connectedPlayer => { if (connectedPlayer.ClientId == Client.ClientId) { Client = connectedPlayer } }) if (!Client) { Player.Tell("Target not found") return } var inGame = await this.Server.findClient(Client.ClientId) var name = params.tag name = name.replace(/#0/g, '^0') name = name.replace(/#1/g, '^1') name = name.replace(/#2/g, '^2') name = name.replace(/#3/g, '^3') name = name.replace(/#4/g, '^4') name = name.replace(/#5/g, '^5') name = name.replace(/#6/g, '^6') name = name.replace(/#7/g, '^7') name = name.replace(/#8/g, '^8') name = name.replace(/#9/g, '^9') name = name.replace(/@/g, ' ') inGame && Client.Server.Rcon.executeCommandAsync(`setclantagraw ${Client.Clientslot} "${name}"`) inGame && Player.Tell(Utils.va(Localization['COMMAND_SETTAG_FORMAT_SELF'], name)) this.Server.DB.metaService.addPersistentMeta('custom_tag', name, Client.ClientId) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('rank') .setAlias('rk') .addCallback(async (Player, args) => { var Client = args[1] ? await this.Server.getClient(args[1]) : Player switch (true) { case (!Client): Player.Tell(Localization['COMMAND_CLIENT_NOT_FOUND']) return case (Client.ClientId != Player.ClientId && Client.PermissionLevel >= Player.PermissionLevel): Player.Tell(Localization['CLIENT_HIERARCHY_ERROR']) return } var customTag = await this.Server.DB.metaService.getPersistentMeta('custom_tag', Client.ClientId) if(!customTag || !customTag) { Client.Tell('^1Error, no Tag') return; } Client.Tell("Loading ^3Rank^7 data..."); //--------------------------------------------------------------------- var gamemodeCount = await this.Server.DB.metaService.getPersistentMeta('gamemodeCount', Player.ClientId) if (!gamemodeCount) { await this.Server.DB.metaService.addPersistentMeta('gamemodeCount', "0", Player.ClientId) gamemodeCount = await this.Server.DB.metaService.getPersistentMeta('gamemodeCount', Player.ClientId) } var eeCount = await this.Server.DB.metaService.getPersistentMeta('eeCount', Player.ClientId) if (!eeCount) { await this.Server.DB.metaService.addPersistentMeta('eeCount', "0", Player.ClientId) eeCount = await this.Server.DB.metaService.getPersistentMeta('eeCount', Player.ClientId) } var zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', Player.ClientId) if (!zcoins) { await this.Server.DB.metaService.addPersistentMeta('zcoins', "0", Player.ClientId) zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', Player.ClientId) } var save = await this.Server.DB.metaService.getPersistentMeta('save', Player.ClientId) if (!save) { Player.Tell("Save error, contact staff") return; } var oneshot_50 = await this.Server.DB.metaService.getPersistentMeta('oneshot_50', Player.ClientId) if (!oneshot_50) { await this.Server.DB.metaService.addPersistentMeta('oneshot_50', "0", Player.ClientId) oneshot_50 = await this.Server.DB.metaService.getPersistentMeta('oneshot_50', Player.ClientId) } var botb_hitless = await this.Server.DB.metaService.getPersistentMeta('botb_hitless', Player.ClientId) if (!botb_hitless) { await this.Server.DB.metaService.addPersistentMeta('botb_hitless', "0", Player.ClientId) botb_hitless = await this.Server.DB.metaService.getPersistentMeta('botb_hitless', Player.ClientId) } var golden_spork = await this.Server.DB.metaService.getPersistentMeta('golden_spork', Player.ClientId) if (!golden_spork) { await this.Server.DB.metaService.addPersistentMeta('golden_spork', "0", Player.ClientId) golden_spork = await this.Server.DB.metaService.getPersistentMeta('golden_spork', Player.ClientId) } var ee_speedrun = await this.Server.DB.metaService.getPersistentMeta('ee_speedrun', Player.ClientId) if (!ee_speedrun) { await this.Server.DB.metaService.addPersistentMeta('ee_speedrun', "0", Player.ClientId) ee_speedrun = await this.Server.DB.metaService.getPersistentMeta('ee_speedrun', Player.ClientId) } var upgraded_tomahawk = await this.Server.DB.metaService.getPersistentMeta('upgraded_tomahawk', Player.ClientId) if (!upgraded_tomahawk) { await this.Server.DB.metaService.addPersistentMeta('upgraded_tomahawk', "0", Player.ClientId) upgraded_tomahawk = await this.Server.DB.metaService.getPersistentMeta('upgraded_tomahawk', Player.ClientId) } var melee_only = await this.Server.DB.metaService.getPersistentMeta('melee_only', Player.ClientId) if (!melee_only) { await this.Server.DB.metaService.addPersistentMeta('melee_only', "0", Player.ClientId) melee_only = await this.Server.DB.metaService.getPersistentMeta('melee_only', Player.ClientId) } var first_room_30 = await this.Server.DB.metaService.getPersistentMeta('first_room_30', Player.ClientId) if (!first_room_30) { await this.Server.DB.metaService.addPersistentMeta('first_room_30', "0", Player.ClientId) first_room_30 = await this.Server.DB.metaService.getPersistentMeta('first_room_30', Player.ClientId) } var chadGamemodeCount = await this.Server.DB.metaService.getPersistentMeta('chadGamemodeCount', Player.ClientId) if (!chadGamemodeCount) { await this.Server.DB.metaService.addPersistentMeta('chadGamemodeCount', "0", Player.ClientId) chadGamemodeCount = await this.Server.DB.metaService.getPersistentMeta('chadGamemodeCount', Player.ClientId) } var gigachadGamemodeCount = await this.Server.DB.metaService.getPersistentMeta('gigachadGamemodeCount', Player.ClientId) if (!gigachadGamemodeCount) { await this.Server.DB.metaService.addPersistentMeta('gigachadGamemodeCount', "0", Player.ClientId) gigachadGamemodeCount = await this.Server.DB.metaService.getPersistentMeta('gigachadGamemodeCount', Player.ClientId) } var botb_gc = await this.Server.DB.metaService.getPersistentMeta('botb_gc', Player.ClientId) if (!botb_gc) { await this.Server.DB.metaService.addPersistentMeta('botb_gc', "0", Player.ClientId) botb_gc = await this.Server.DB.metaService.getPersistentMeta('botb_gc', Player.ClientId) } var titb_gc = await this.Server.DB.metaService.getPersistentMeta('titb_gc', Player.ClientId) if (!titb_gc) { await this.Server.DB.metaService.addPersistentMeta('titb_gc', "0", Player.ClientId) titb_gc = await this.Server.DB.metaService.getPersistentMeta('titb_gc', Player.ClientId) } var pia_gc = await this.Server.DB.metaService.getPersistentMeta('pia_gc', Player.ClientId) if (!pia_gc) { await this.Server.DB.metaService.addPersistentMeta('pia_gc', "0", Player.ClientId) pia_gc = await this.Server.DB.metaService.getPersistentMeta('pia_gc', Player.ClientId) } var save1 = parseInt(save.Value.split(';')[0]) var save2 = parseInt(save.Value.split(';')[1]) var highestSave = 0 if (save1 > save2) highestSave = save1 else highestSave = save2 var gamemodeCountInt = parseInt(gamemodeCount.Value) var eeCountInt = parseInt(eeCount.Value) var zcoinsInt = parseInt(zcoins.Value) var chadCountInt = parseInt(chadGamemodeCount.Value) var gigachadCountInt = parseInt(gigachadGamemodeCount.Value) //---------------------------------------------------------------------- var multiplier = ''; if (customTag.Value == '^9F^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^7[^9F^7] ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x2' } else if (customTag.Value == '^8E^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^7[^8E^7] ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x3' } else if (customTag.Value == '^2D^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^7[^2D^7] ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x3' } else if (customTag.Value == '^4C^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^7[^4C^7] ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x4' } else if (customTag.Value == '^5B^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^7[^5B^7] ^6A ^3S ^3SS ^3SSS') multiplier = 'x4' } else if (customTag.Value == '^6A^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^7[^6A^7] ^3S ^3SS ^3SSS') multiplier = 'x5' } else if (customTag.Value == '^3S^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^7[^3S^7] ^3SS ^3SSS') multiplier = 'x6' } else if (customTag.Value == '^3SS^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^7[^3SS^7] ^3SSS') multiplier = 'x7' } else if (customTag.Value == '^3SSS^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^7[^3SSS^7]') multiplier = 'x9' } else if (customTag.Value == '^6 I ^7') { Client.Tell('^7[^6I^7] ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x10' } else if (customTag.Value == '^6II^7') { Client.Tell('^6I ^7[^6II^7] ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x11' } else if (customTag.Value == '^6III^7') { Client.Tell('^6I ^6II ^7[^6III^7] ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x12' } else if (customTag.Value == '^5IV^7') { Client.Tell('^6I ^6II ^6III ^7[^5IV^7] ^5V ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x13' } else if (customTag.Value == '^5V^7') { Client.Tell('^6I ^6II ^6III ^5IV ^7[^5V^7] ^5VI ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x13' } else if (customTag.Value == '^5VI^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^7[^5VI^7] ^5VII ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x13' } else if (customTag.Value == '^5VII^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^7[^5VII^7] ^1IIX ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x14' } else if (customTag.Value == '^1IIX^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^7[^1IIX^7] ^1IX ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x15' } else if (customTag.Value == '^1IX^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^7[^1IX^7] ^1-X-') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x15' } else if (customTag.Value == '^1-X-^7') { Client.Tell('^6I ^6II ^6III ^5IV ^5V ^5VI ^5VII ^1IIX ^1IX ^7[^1-X-^7]') Client.Tell('^9F ^8E ^2D ^4C ^5B ^6A ^3S ^3SS ^3SSS') multiplier = 'x20' } var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', Client.ClientId) if(customName && customName.Value) { Client.Tell(Utils.va('^2$ multiplier ^7is :^3 %s + ^3x3 VIP^7', multiplier)) } else { Client.Tell(Utils.va('^2$ multiplier ^7is :^3 %s', multiplier)) } Client.Tell(Utils.va('Your ^3rank^7 is : %s', customTag.Value)) await new Promise(resolve => setTimeout(resolve, 2000)) Client.Tell(`---^5Next rank requirements^7---`) await new Promise(resolve => setTimeout(resolve, 500)) if (customTag.Value == '^9F^7') Client.Tell('^2Points^7 : ^2$100.000') if (customTag.Value == '^8E^7') Client.Tell('^2Points^7 : ^2$200.000') if (customTag.Value == '^2D^7') Client.Tell('^2Points^7 : ^2$400.000') if (customTag.Value == '^4C^7') Client.Tell('^2Points^7 : ^2$1M') if (customTag.Value == '^5B^7') Client.Tell('^2Points^7 : ^2$2M') if (customTag.Value == '^6A^7') Client.Tell('^2Points^7 : ^2$5M') if (customTag.Value == '^3S^7') Client.Tell('^2Points^7 : ^2$10M') if (customTag.Value == '^3SS^7') Client.Tell('^2Points^7 : ^2$30M') if (customTag.Value == '^3SSS^7') { Client.Tell(`^2Ez Gamemode^3 (^2${gamemodeCountInt}^3/^11^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3EE^3 (^2${eeCountInt}^3/^12^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Round^3 (^2${highestSave}^3/^135^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins^3 (^2${zcoinsInt}^3/^1200^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell('^2Points^3 : ^2$60M') } if (customTag.Value == '^6 I ^7') { Client.Tell(`^2Ez Gamemode^3 (^2${gamemodeCountInt}^3/^12^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3EE^3 (^2${eeCountInt}^3/^13^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Round^3 (^2${highestSave}^3/^140^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins^3 (^2${zcoinsInt}^3/^1300^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell('^2Points^3 : ^2$70M') } if (customTag.Value == '^6II^7') { Client.Tell(`^2Ez Gamemode^3 (^2${gamemodeCountInt}^3/^15^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3EE^3 (^2${eeCountInt}^3/^14^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Round^3 (^2${highestSave}^3/^145^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins^3 (^2${zcoinsInt}^3/^1600^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell('^2Points^3 : ^2$80M') } if (customTag.Value == '^6III^7') { Client.Tell(`^1Chad Gamemode^3 (^1${chadCountInt}^3/^12^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^2Ez Gamemode^3 (^2${gamemodeCountInt}^3/^15^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3EE^3 (^2${eeCountInt}^3/^15^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Round^3 (^2${highestSave}^3/^150^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins^3 (^2${zcoinsInt}^3/^1600^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell('^2Points^3 : ^2$90M') } if (customTag.Value == '^5IV^7') { Client.Tell(`^1Chad Gamemode^3 (^1${chadCountInt}^3/^14^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^2Ez Gamemode^3 (^2${gamemodeCountInt}^3/^15^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3EE^3 (^2${eeCountInt}^3/^16^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Round^3 (^2${highestSave}^3/^155^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins^3 (^2${zcoinsInt}^3/^1650^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell('^2Points^3 : ^2$100M') } if (customTag.Value == '^5V^7') { Client.Tell(`^1Chad Gamemode^3 (^1${chadCountInt}^3/^16^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^2Ez Gamemode^3 (^2${gamemodeCountInt}^3/^15^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3EE^3 (^2${eeCountInt}^3/^18^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Round^3 (^2${highestSave}^3/^160^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins^3 (^2${zcoinsInt}^3/^1700^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell('^2Points^3 : ^2$110M') } if (customTag.Value == '^5VI^7') { Client.Tell(`^1Chad Gamemode^3 (^1${chadCountInt}^3/^110^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^2Ez Gamemode^3 (^2${gamemodeCountInt}^3/^17^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3EE^3 (^2${eeCountInt}^3/^110^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Round^3 (^2${highestSave}^3/^165^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins^3 (^2${zcoinsInt}^3/^1800^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell('^2Points^3 : ^2$150M') } if (customTag.Value == '^5VII^7') { Client.Tell('^2$ : $300M') await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins ^3(^2${zcoinsInt}^3/^12000^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3Round ^3(^2${highestSave}^3/^170^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^6GigaChad^7 Completion ^3(^2${gigachadCountInt}^3/^13^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^6BotB GigaChad^7 Completion ^3(^2${botb_gc.Value}^3/^11^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`Obtain the ^3Golden Spoon ^3(^2${golden_spork.Value}^3/^11^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`One Round ^3Melee only^7 (^2R30+^7) ^3(^2${melee_only.Value}^3/^11^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^2R30+^7 in First Room ^3(^2${first_room_30.Value}^3/^11^3)`) } if (customTag.Value == '^1IIX^7') { Client.Tell('^2$ : $500M') await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins ^3(^2${zcoinsInt}^3/^13000^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3Round ^3(^2${highestSave}^3/^180^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^6BotB GigaChad^7 Completion ^3(^2${botb_gc.Value}^3/^13^3)`) await new Promise(resolve => setTimeout(resolve, 300)) // Client.Tell(`^6TitB GigaChad^7 Completion ^3(^2${titb_gc.Value}^3/^12^3)`) // await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^6PiA GigaChad^7 Completion ^3(^2${pia_gc.Value}^3/^13^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`Obtain the ^5Blue Tomahawk ^3(^2${upgraded_tomahawk.Value}^3/^11^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`Reach ^3Round 50^7 without loading ^3(^2${oneshot_50.Value}^3/^11^3)`) } if (customTag.Value == '^1IX^7') { Client.Tell('^2$ : $1B') await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^5Z-Coins ^3(^2${zcoinsInt}^3/^15000^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^3Round ^3(^2${highestSave}^3/^1100^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^6BotB GigaChad^7 Completion ^3(^2${botb_gc.Value}^3/^15^3)`) await new Promise(resolve => setTimeout(resolve, 300)) // Client.Tell(`^6TitB GigaChad^7 Completion ^3(^2${titb_gc.Value}^3/^12^3)`) // await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`^6PiA GigaChad^7 Completion ^3(^2${pia_gc.Value}^3/^15^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`BotB Full game ^3Hitless & Perkless^7 ^3(^2${botb_hitless.Value}^3/^11^3)`) await new Promise(resolve => setTimeout(resolve, 300)) Client.Tell(`Complete ^3Origins EE^7 in under ^535 minutes^7 ^3(^2${ee_speedrun.Value}^3/^11^3)`) } if (customTag.Value == '^1-X-^7') { Client.Tell(`You are ^2Max Rank^7, what a zm god!`) } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('vip') .setAlias('vip') .addCallback(async (Player, params, args) => { if (args[1] && args[1] != "upgrade" && args[1] != "darkblue" && args[1] != "lightblue" && args[1] != "yellow" && args[1] != "purple" && args[1] != "grey" && args[1] != "brown" && args[1] != "green" && args[1] != "white" && args[1] != "black") { const Client = await this.Server.getClient(args[1]) if (Client) { var name = Client.Name var text = "" var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', Client.ClientId) if (!customName) { text = "No VIP" } else if (customName.Value.includes("^3VIP") || customName.Value.includes("^3[VIP")) { text = "^3VIP Level 1^7" } else if (customName.Value.includes("^6VIP") || customName.Value.includes("^6[VIP")) { text = "^6VIP Level 2^7" } else if (customName.Value.includes("^1VIP") || customName.Value.includes("^1[VIP")) { text = "^1VIP Level 3^7" } else if (customName.Value.includes("^2VIP") || customName.Value.includes("^2[VIP")) { text = "^1VIP Level 4^7" } if (customName) { name = customName.Value.replaceAll('^', '#').replaceAll(' ', '@') } var customTag = await this.Server.DB.metaService.getPersistentMeta('custom_tag', Client.ClientId) if (!customTag) { Player.Tell("error") return } Player.Tell(`${name}^3 have ${text} and is rank ${customTag.Value}. id : ${Client.ClientId}`) return } } var inGame = await this.Server.findClient(Player.ClientId) if (!inGame) { Player.Tell("In game command only") return } var zcoins_req = 99999999; var save_req = 999999; var group = 0; var zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', inGame.ClientId) if (!zcoins) { await this.Server.DB.metaService.addPersistentMeta('zcoins', "0", inGame.ClientId) zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', inGame.ClientId) } var save = await this.Server.DB.metaService.getPersistentMeta('save', inGame.ClientId) if (!save) { inGame.Tell("Save error, contact staff") return } var save1 = parseInt(save.Value.split(';')[0]) var save2 = parseInt(save.Value.split(';')[1]) var highestSave = 0 if (save1 > save2) highestSave = save1 else highestSave = save2 var customTag = await this.Server.DB.metaService.getPersistentMeta('custom_tag', inGame.ClientId) if (!customTag) { inGame.Tell("Error #vip, contact admin") return } var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', inGame.ClientId) if (!customName || !customName.Value) { zcoins_req = 2000 save_req = 60 group = 1 } else if (customName.Value.includes("^3VIP") || customName.Value.includes("^3[VIP")) { zcoins_req = 5000 save_req = 80 group = 2 } else if (customName.Value.includes("^6VIP") || customName.Value.includes("^6[VIP")) { zcoins_req = 8000 save_req = 100 group = 3 } if (!args[1] || (args[1] != "upgrade" && args[1] != "darkblue" && args[1] != "lightblue" && args[1] != "yellow" && args[1] != "purple" && args[1] != "grey" && args[1] != "brown" && args[1] != "green" && args[1] != "white" && args[1] != "black")) { if (group != 0) { var rank_req = "^6II" if (group == 1) rank_req = "^6II" if (group == 2) rank_req = "^5V" if (group == 3) rank_req = "^1IX" inGame.Tell(`---^5Next VIP requirements^7---`) await new Promise(resolve => setTimeout(resolve, 200)) inGame.Tell(`^5Z-coins ^3(^2${zcoins.Value}^3/^1${zcoins_req}^3)`) await new Promise(resolve => setTimeout(resolve, 200)) inGame.Tell(`^3Save^3 (^2${highestSave}^3/^1${save_req}^3)`) await new Promise(resolve => setTimeout(resolve, 200)) inGame.Tell(`^3Rank ^3 (^2${customTag.Value}^3/${rank_req}^3)`) await new Promise(resolve => setTimeout(resolve, 3000)) inGame.Tell(`-------------------------------`) await new Promise(resolve => setTimeout(resolve, 200)) inGame.Tell("^3To upgrade : ^5.vip upgrade") await new Promise(resolve => setTimeout(resolve, 200)) } inGame.Tell("^3To change colors : ^5.vip (color)^7 ^3yellow^7|^6purple^7|^2green^7|^4darkblue^7|^5lightblue^7|^8grey^7|^9brown^7|white|^0black") return } if (args[1] == "upgrade") { //Start Requirement check if (customName && (customName.Value.includes("^1VIP") || customName.Value.includes("^1[VIP"))) { inGame.Tell("You are already ^1LV3 VIP^7 !") return } var is_requirement_fullfilled = true if (parseInt(zcoins.Value) < zcoins_req) { inGame.Tell(`^3Not enough ^5Z-coins ^3(^2${zcoins.Value}^3/^1${zcoins_req}^3)`) is_requirement_fullfilled = false } if (highestSave < save_req) { inGame.Tell(`^3Your ^5highest save^3 is too low ^3 (^2${highestSave}^3/^1${save_req}^3)`) is_requirement_fullfilled = false; } if (group == 1) { if (customTag.Value != "^6II^7" && customTag.Value != "^6III^7" && customTag.Value != "^5IV^7" && customTag.Value != "^5V^7" && customTag.Value != "^5VI^7" && customTag.Value != "^5VII^7" && customTag.Value != "^1IIX^7" && customTag.Value != "^1IX^7" && customTag.Value != "^1-X-^7") { inGame.Tell(`^3Your ^5rank^3 is too low ^3 (^2${customTag.Value}^3/^6III^3)`) is_requirement_fullfilled = false; } } if (group == 2) { if (customTag.Value != "^5V^7" && customTag.Value != "^5VI^7" && customTag.Value != "^5VII^7" && customTag.Value != "^1IIX^7" && customTag.Value != "^1IX^7" && customTag.Value != "^1-X-^7") { inGame.Tell(`^3Your ^5rank^3 is too low ^3 (^2${customTag.Value}^3/^5VII^3)`) is_requirement_fullfilled = false; } } if (group == 3) { if (customTag.Value != "^1IX^7" && customTag.Value != "^1-X-^7") { inGame.Tell(`^3Your ^5rank^3 is too low ^3 (^2${customTag.Value}^3/^1IX^3)`) is_requirement_fullfilled = false; } } if (is_requirement_fullfilled == false) return //Requirements complete //Start database change var slot = 0; if (save1 < save_req && save2 >= save_req) { await this.Server.DB.metaService.addPersistentMeta('save', `${save1};0`, inGame.ClientId) slot = 2 } else if (save2 < save_req && save1 >= save_req) { await this.Server.DB.metaService.addPersistentMeta('save', `0;${save2}`, inGame.ClientId) slot = 1 } else if (save1 > save2) { await this.Server.DB.metaService.addPersistentMeta('save', `${save1};0`, inGame.ClientId) slot = 2 } else { await this.Server.DB.metaService.addPersistentMeta('save', `0;${save2}`, inGame.ClientId) slot = 1 } inGame.Tell("^5Lowest required save^3 consumed.") await this.Server.DB.metaService.addPersistentMeta('zcoins', parseInt(zcoins.Value) - zcoins_req, inGame.ClientId) inGame.Tell(`^5${zcoins_req} Z-Coins^3 have been withdrew from your bank account!`) //db changes completed this.Managers.forEach(manager => { if (manager) { this.checkForLoadedSave(manager, inGame.ClientId, slot) } }) if (group == 1) { var new_name = "[^3VIP^7] ^3" + inGame.Name var customName = await this.Server.DB.metaService.addPersistentMeta('custom_name', new_name, inGame.ClientId) inGame && this.Server.Rcon.executeCommandAsync(`rename ${inGame.Clientslot} "${new_name}"`) inGame.Tell("^2Successfully^7 upgraded to ^3VIP Level 1^7 !"); } else if (group == 2) { var oldName = await this.Server.DB.metaService.getPersistentMeta('custom_name', inGame.ClientId) var new_name = "[^6VIP^7]" + oldName.Value.split("]")[1] if (oldName.Value.split("]")[2]) new_name += "]" + oldName.Value.split("]")[2] var customName = await this.Server.DB.metaService.addPersistentMeta('custom_name', new_name, inGame.ClientId) inGame && this.Server.Rcon.executeCommandAsync(`rename ${inGame.Clientslot} "${new_name}"`) inGame.Tell("^2Successfully^7 upgraded to ^6VIP Level 2^7 !"); } else if (group == 3) { var oldName = await this.Server.DB.metaService.getPersistentMeta('custom_name', inGame.ClientId) var new_name = "[^1VIP^7]" + oldName.Value.split("]")[1] if (oldName.Value.split("]")[2]) new_name += "]" + oldName.Value.split("]")[2] var customName = await this.Server.DB.metaService.addPersistentMeta('custom_name', new_name, inGame.ClientId) inGame && this.Server.Rcon.executeCommandAsync(`rename ${inGame.Clientslot} "${new_name}"`) inGame.Tell("^2Successfully^7 upgraded to ^1VIP Level 3^7 !"); } else { inGame.Tell("An ^1error^7 occured, contact the ^1staff^7") return } } else { var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', inGame.ClientId) if (!customName) { Player.Tell("Cannot change ^3VIP colors^7 since you are not ^3VIP^7 !") return } var color = " ^7"; if (args[1] == "green") color = " ^2" if (args[1] == "yellow") color = " ^3" if (args[1] == "darkblue") color = " ^4" if (args[1] == "lightblue") color = " ^5" if (args[1] == "purple") color = " ^6" if (args[1] == "white") color = " ^7" if (args[1] == "grey") color = " ^8" if (args[1] == "brown") color = " ^9" if (args[1] == "black") color = " ^0" var vip_tag = "[^3VIP^7]"; if (customName.Value.includes("^3VIP") || customName.Value.includes("^3[VIP")) vip_tag = "[^3VIP^7]"; if (customName.Value.includes("^6VIP") || customName.Value.includes("^6[VIP")) vip_tag = "[^6VIP^7]"; if (customName.Value.includes("^1VIP") || customName.Value.includes("^1[VIP")) vip_tag = "[^1VIP^7]"; if (customName.Value.includes("^2VIP") || customName.Value.includes("^2[VIP")) vip_tag = "[^2VIP^7]"; var oldName = await this.Server.DB.metaService.getPersistentMeta('custom_name', inGame.ClientId) if (oldName.Value.split("]")[2]) { var new_name = vip_tag + oldName.Value.split("]")[1] + "]" + color + oldName.Value.split("]")[2].substring(3) } else { var new_name = vip_tag + color + oldName.Value.split("]")[1].substring(3) } var customName = await this.Server.DB.metaService.addPersistentMeta('custom_name', new_name, inGame.ClientId) inGame && this.Server.Rcon.executeCommandAsync(`rename ${inGame.Clientslot} "${new_name}"`) inGame.Tell("^2Successfully^7 changed your ^3name color^7 !"); } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('commands') .setAlias('c') .addParams([ { name: 'page', index: 0, optional: true, }, { name: 'language', index: 1, optional: true, } ]) .addCallback(async (Player, params, args) => { if( params.page && params.page != '1' && params.page != '2' && params.page != 'fr') { Player.Tell('^3.c ^7[^31-2^7]') Player.Tell('^1Invalid^7 page number, usage: ') return } if(params.page == 'fr' || (params.page == '1' && params.language == 'fr')) { Player.Tell('^3.c 2 fr^7: Affiche la page suivante.') Player.Tell('^3.rank^7: Affiche les informations de ton rang.') Player.Tell('^3.rankup^7: Paye de l argent pour monter en rang et gagner plus de ^2$') Player.Tell('^3.d ^7: Depose X points dans ta banque.') Player.Tell('^3.w ^7: Retire X points de ta banque.') Player.Tell('^3.afk^7: Deviens AFK pour max 15 mins, 15 mins d attente. ') Player.Tell('^3.money^7: Affiche ton argent en banque.') Player.Tell('^3----- PAGE 1/2 -----^7') } else if(params.page == '2' && params.language == 'fr') { Player.Tell('^3.zstats [name]^7: Affiche les stats du joueur.') Player.Tell('^3.pay [name][amount]^7: Donne de l argent au joueur selectionne.') Player.Tell('^3.rev^7: Cout pour ^3rang S^7 : ^2$1M^7 3 manches de recharge.') Player.Tell('^3.rev^7: [^1VIP ou RANG S^7] reanime les spectateurs, toi inclus.') Player.Tell('^3.kill^7: [^1VILLE ou BURIED^7] Tue le dernier zombie/sorciere qui bug') Player.Tell('^3.id^7: Affiche ton ID (Utile pour bug nom utilise .zstats @id)') Player.Tell('^3.buy^7: Affiche tes stats bonus et le cout du prochaine achat') Player.Tell('^3----- PAGE 2/2 -----^7') } else if(params.page == '2') { Player.Tell('^3.pay [name][amount]^7: Give points from your bank to selected player.') Player.Tell('^3.zstats [name]^7: Check player zombie stats.') Player.Tell('^3.rev^7: Cost for ^3S rank^7: ^2$1M^7, 3 rounds cooldown.') Player.Tell('^3.rev^7: [^1VIP or S RANK^7] revive all spectators including yourself.') Player.Tell('^3.kill^7: [^1TOWN or BURIED^7] Kill the last bugged zombie/witch.') Player.Tell('^3.id^7: Display your ID (Useful for name bug, use .zstats @id') Player.Tell('^3.buy^7: Display extra stats & next purchase info') Player.Tell('^3----- PAGE 2/2 -----^7') } else { Player.Tell('^3.c 2^7: Display next page.') Player.Tell('^3.rank^7: Check your rank info.') Player.Tell('^3.rankup^7: pay money to rank up and earn more ^2$') Player.Tell('^3.d ^7: Deposit X points in your bank.') Player.Tell('^3.w ^7: Withdraw X points in your bank.') Player.Tell('^3.afk^7: go AFK for up to 15 mins 15 mins cooldown. ') Player.Tell('^3.money^7: See how much money you have.') Player.Tell('^3----- PAGE 1/2 -----^7') } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('wipe') .setAlias('wp') .addCallback(async (Player, params, args) => { for(const id of this.wipe_id) { if (Player.ClientId == id) { for(const ig_player of await this.Manager.Server.getClients()) { for (const id of this.wipe_id) { if (parseInt(ig_player.ClientId) != this.wipe_id) { ig_player.Kick("^1Server locked^7 for testing") } } } } } }) })(this); (() => { let command = new Command() .setName('guildlock') .setAlias('glock') .addCallback(async (Player, params, args) => { if (this.Manager.Server.Hostname) { if (await this.is_raid() == false) { var guild_quest = await this.Server.DB.metaService.getPersistentMeta('guild_quest', Player.ClientId) if (!guild_quest) { Player.Tell("Must be in a ^6guild^7 to use this ^3command^7.") return } if(guild_quest.Value.split(";")[1] == "gamemode_speedrun_quest_pia" && (!this.Manager.Server.Hostname.includes('PANZER')) || guild_quest.Value.split(";")[1] == "gamemode_speedrun_quest_titb" && (!this.Manager.Server.Hostname.includes('BUS')) || guild_quest.Value.split(";")[1] == "gamemode_speedrun_quest_botb" && (await this.is_brutus() == false) || guild_quest.Value.split(";")[1] == "ee_speedrun_quest_transit" && (!this.Manager.Server.Hostname.includes('TRANZIT2')) || guild_quest.Value.split(";")[1] == "ee_speedrun_quest_highrise" && (!this.Manager.Server.Hostname.includes('DIE RISE')) || guild_quest.Value.split(";")[1] == "ee_speedrun_quest_prison" && (!this.Manager.Server.Hostname.includes('MOTD')) || guild_quest.Value.split(";")[1] == "ee_speedrun_quest_buried" && (!this.Manager.Server.Hostname.includes('BURIED')) || guild_quest.Value.split(";")[1] == "ee_speedrun_quest_tomb" && (!this.Manager.Server.Hostname.includes('ORIGINS'))) { Player.Tell("Can only be used on ^1Competitive Server^7.") return } } } var guild_data = await this.Server.DB.metaService.getPersistentMeta('guild_data', Player.ClientId) if (!guild_data) { Player.Tell("Must be in a ^6guild^7 to use this ^3command^7.") return } if (this.is_raid_locked != "") { Player.Tell("Server ^2already^7 ^1locked^7.") return } this.is_raid_locked = guild_data.Value.split(';')[0]; this.Server.Rcon.executeCommandAsync(`set ln Server ^1locked^7 by ${guild_data.Value.split(';')[0]}^7 guild.^7`) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('kiels') .setAlias('ks') .addCallback(async (Player, params, args) => { if (Player.ClientId != 12) { Player.Tell("On allumait une cigarette et tout s'allumait, et c'etait la fete le 14 juillet, il n'y avait jamais un copain de trop, dans l'equipe a Jojo !") return } if (await this.Server.Rcon.getDvar("weed") == "0") { Player.Tell(".kiels on "); await this.Server.Rcon.setDvar("weed", "1") } else { await this.Server.Rcon.setDvar("weed", "0") Player.Tell(".kiels off"); } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('daily') .setAlias('claim') .addCallback(async (Player) => { if (this.Server.isDailyOccupied == true) { Player.Tell("^3The daily reward room^2 is ^1occupied^3, try again in an minute") return } await new Promise(resolve => setTimeout(resolve, 100)) var pGuid = await this.Server.Rcon.getDvar("daily_box_player_guid") if (!pGuid || pGuid != Player.Guid) { Player.Tell("^3You must be ^2alive^3 to use this command.") return } await this.Server.Rcon.setDvar("daily_box_player_guid", "") this.Server.isDailyOccupied = true var found = 0 for (const id in this.daily_list) { if(Player.ClientId == this.daily_list) { found = 1 } } if (found != 1) return await this.Server.Rcon.setDvar("dailyRequestGuid", Player.Guid) Player.Tell("^3Entering the ^5Daily Reward Room^7") var dailyReward = await this.Server.Rcon.getDvar("dailyReward") for (var i = 0; i < 700; i++) { await new Promise(resolve => setTimeout(resolve, 100)) if (dailyReward != "") break; dailyReward = await this.Server.Rcon.getDvar("dailyReward") if (i >= 650) return; //failsafe } if (dailyReward == "0") { this.Server.isDailyOccupied = false; return } var rewardType = dailyReward.split(";")[0] var rewardAmount = dailyReward.split(";")[1] var zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', Player.ClientId) var points = (await this.getZMStats(Player.ClientId)).Money if (rewardType == "Zcoins") { Player.Tell(`^3Total ^5Z-Coins^3 in bank : ^5${parseInt(zcoins.Value) + parseInt(rewardAmount)}^7`) Player.Tell(`^3You claimed ^5${rewardAmount} Z-Coins !`) await this.Server.DB.metaService.addPersistentMeta('zcoins', parseInt(zcoins.Value) + parseInt(rewardAmount), Player.ClientId) } else if (rewardType == "Points") { Player.Tell(`^3Total ^2Points^3 in bank : ^2$${parseInt(points) + parseInt(rewardAmount)}^7`) Player.Tell(`^3You claimed ^2$${rewardAmount} Points !`) this.setPlayerMoney(Player.ClientId, parseInt(points) + parseInt(rewardAmount)) } await new Promise(resolve => setTimeout(resolve, 5000)) this.Server.isDailyOccupied = false; // await this.Server.Rcon.setDvar("dailyReward", "") doesnt work had to make it through gsc for some reason }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('setround') .setAlias('sround') .addParams([ { name: 'round', index: 0, optional: true, } ]) .addCallback(async (Player, params, args) => { if(!params.round) { Player.Tell("Must set round number."); } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('slot') .setAlias('slot') .addCallback(async (Player, params, args) => { this.Server.Clients.forEach(client => { if (client) { this.GetSlot(Player, client); } }) }) this.Manager.Commands.add(command) })(this); //------------------------------- /*(() => { let command = new Command() .setName('king') .setAlias('kg') .addParams([ { name: 'servername', index: 0, optional: true }]) .addCallback(async (Player, params, args) => { if (!params) { Player.Tell("^3Usage^7: ^2.king town4^7") return } var king = await this.Server.DB.metaService.getPersistentMeta('king', Player.ClientId) var clientnbr = 0; if (king) { this.Managers.forEach(manager => { if (manager) { if(manager.Server.Hostname.split('|')[1] == params.servername) { manager.Server.Clients.forEach(client => { if (client) { var Stats = this.getKills(client) console.log(client.Name + " " + Stats.Kills); clientnbr++; } }) if (clientnbr != 8) { Player.Tell(`^3${params.servername} is not full`); return; } manager.Server.Rcon.executeCommandAsync(`set king ${Player.Name}`) } } }) } else { Player.Tell("^1King^7 command only.") } }) this.Manager.Commands.add(command) })(this); */ (() => { let command = new Command() .setName('saveedit') .setAlias('se') .addParams([ { name: 'target', index: 0, }, { name: 'save', index: 1, optional: true, } ]) .addCallback(async (Player, params) => { if (await this.is_staff(Player) == false) { Player.Tell("^1Staff only") return } var Client = await this.Server.getClient(params.target) var connectedPlayers = this.getAllClients(); connectedPlayers.forEach(connectedPlayer => { if (connectedPlayer.ClientId == Client.ClientId) { Client = connectedPlayer } }) if (!Client) { Player.Tell("Target not found") return } var inGame = await this.Server.findClient(Client.ClientId) if (!params.save) { var save = await this.Server.DB.metaService.getPersistentMeta('save', Client.ClientId) Player.Tell("^5" + Client.Name + " save : ^3" + save.Value) return } if (!params.save.includes(";")) { Player.Tell("Invalid save setting, example ^5.saveedit @454 55;50"); return } await this.Server.DB.metaService.addPersistentMeta('save', params.save, Client.ClientId) inGame && Client.Tell ("Your save slots has been updated to : ^3" + params.save) Player.Tell("^5" + Client.Name + " new save : ^3" + params.save) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('crash') .setAlias('crash') .addCallback(async (Player, args) => { var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', Player.ClientId) if (customName) { var customNameValue = customName.Value if (customName && customName.Value != "" && customNameValue.includes('^1Owner')) { await Player.Server.Rcon.executeCommandAsync(`set crash 1`) Player.Tell('Sending crash') return } else { Player.Tell('Cypher only.') return } } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('addprivate') .setAlias('addpv') .addCallback(async (Player, params, args) => { if (await this.is_staff(Player) == false) { Player.Tell("^1Staff only") return } // id, duration, status (always 0), then add start date if (!args[1] || !args[2]) { Player.Tell("Parameters incorrect - Usage : .addpv id duration") return } var str = "" str += args[1] + "-" + args[2] str += "-0-" + new Date().getTime() await this.Server.DB.metaService.addPersistentMeta('pv_data', str, 12) await this.Server.DB.metaService.deletePersistentMeta('pv_whitelist', 12) Player.Tell(`Private server owner data updated to ${str}`) // 6000 }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('private') .setAlias('pv') .addCallback(async (Player, params, args) => { var pv_data = await this.get_pv_data(Player) if (pv_data) { if (pv_data.id != parseInt(Player.ClientId)) { Player.Tell("You are ^1not^7 owning the ^8private server^7") return } if (args[1] && args[1] == "add") { if (!args[2]) { Player.Tell("^3Usage : .pv add @id") return } if (args[2].includes("-")) { Player.Tell("id error") return } var pv_whitelist = await this.Server.DB.metaService.getPersistentMeta("pv_whitelist", 12) if (!pv_whitelist) { await this.Server.DB.metaService.addPersistentMeta("pv_whitelist", args[2].replaceAll('@', ''), 12) Player.Tell(`${args[2].replaceAll('@', '')} added to the whitelist (^21^7/^28^7)`) return } var new_whitelist = pv_whitelist.Value + "-" + args[2].replaceAll('@', '') var i = 0; for(const id of new_whitelist.split("-")) { i++; } if (i > 7) { Player.Tell("Maximum amount of ^5whitelisted players^7 reached (^18^7/^17^7)") return } await this.Server.DB.metaService.addPersistentMeta("pv_whitelist", new_whitelist, 12) Player.Tell(`${args[2].replaceAll('@', '')} added to the whitelist (^2${i}^7/^28^7)`) return } if (args[1] && args[1] == "wipe") { /* if (await this.is_raid() == false) { Player.Tell("Can only be used on your ^8private server^7") return }*/ for(const ig_player of await this.Manager.Server.getClients()) { if (parseInt(ig_player.ClientId) != pv_data.id) { ig_player.Kick("^8Server Owner^7 ^3kicked the lobby out") } } Player.Tell("Server ^1locked") pv_data.status = 0 await this.Server.DB.metaService.addPersistentMeta("pv_data", pv_data.id + "-" + pv_data.duration + "-" + pv_data.status + "-" + pv_data.start, 12) return } else if (args[1] && args[1] == "open") { if (this.pv_locked == 1) { Player.Tell("Server expired, ^2.pv open^7 ^1disabled") return } pv_data.status = 1 await this.Server.DB.metaService.addPersistentMeta("pv_data", pv_data.id + "-" + pv_data.duration + "-" + pv_data.status + "-" + pv_data.start, 12) Player.Tell("^8Private server ^2unlocked") return } else if (args[1] && args[1] == "close") { pv_data.status = 0 await this.Server.DB.metaService.addPersistentMeta("pv_data", pv_data.id + "-" + pv_data.duration + "-" + pv_data.status + "-" + pv_data.start, 12) Player.Tell("^8Private server ^1locked") return } if (pv_data.status == 0) var txt = "^1locked" else var txt = "^2open" Player.Tell(`^6Server Status^7 : ${txt}`) await new Promise(resolve => setTimeout(resolve, 100)) var pv_whitelist = await this.Server.DB.metaService.getPersistentMeta("pv_whitelist", 12) if (pv_whitelist) Player.Tell(`^5Whitelisted Players^7 : ^3${pv_whitelist.Value}`) else Player.Tell(`^5Whitelisted Players^7 : ^1None`) await new Promise(resolve => setTimeout(resolve, 100)) var time = (pv_data.duration * 60) - parseInt(((new Date().getTime() - pv_data.start) / 1000 / 60)) if (time < 0) { Player.Tell("Remaining Time : ^3Until rented again ^7") await new Promise(resolve => setTimeout(resolve, 100)) Player.Tell("^2.pv open^7 ^1disabled") } else Player.Tell(`Remaining time : ^3${time} minutes`) await new Promise(resolve => setTimeout(resolve, 100)) Player.Tell(`-- Command usage : .pv [ ^2open^7 | ^1close^7 | ^6wipe^7 | ^5add^7] --`) await new Promise(resolve => setTimeout(resolve, 100)) Player.Tell(`^2open^7 : ^2Open^7 your ^8Private Server`) await new Promise(resolve => setTimeout(resolve, 100)) Player.Tell(`^1close^7 : ^1Close^7 your ^8Private Server^7`) await new Promise(resolve => setTimeout(resolve, 100)) Player.Tell(`^6wipe^7 : ^6Kick^7 all players & ^1Close^7 your ^8Private Server^7`) await new Promise(resolve => setTimeout(resolve, 100)) Player.Tell(`^5add^7 : ^5Whitelist^7 a player to your ^8Private Server^7`) } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('give') .setAlias('give') .addParams([ { name: 'clientslot', index: 0, }, { name: 'weapname', index: 1, }, { name: 'weapslot', index: 2, } ]) .addCallback(async (Player, params, args) => { if (await this.is_staff(Player) == true) { await Player.Server.Rcon.executeCommandAsync(`set give ${params.clientslot};${params.weapname};${params.weapslot}`) return } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('setking') .setAlias('sg') .addParams([ { name: 'level', index: 0, }, { name: 'target', index: 1, } ]) .addCallback(async (Player, params, args) => { if (await this.is_staff(Player) == true) { var Client = await this.Server.getClient(params.target) if (!Client) { Player.Tell(Localization['COMMAND_CLIENT_NOT_FOUND']) return } if (params.level == "2") { var txt = "king2" var nbr = 2 } else { var txt = "king" var nbr = 1 } await this.Server.DB.metaService.addPersistentMeta(txt, "1", Client.ClientId) Player.Tell(Client.Name + " added to ^5king list^7 level " + nbr + " !"); return } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('raidpass') .setAlias('rs') .addParams([ { name: 'target', index: 0, } ]) .addCallback(async (Player, params, args) => { if (await this.is_staff(Player) == true) { var Client = await this.Server.getClient(params.target) if (!Client) { Player.Tell(Localization['COMMAND_CLIENT_NOT_FOUND']) return } await this.Server.DB.metaService.addPersistentMeta('raidpass', "1", Client.ClientId) Player.Tell(Client.Name + " added to raid pass !") return } }) this.Manager.Commands.add(command) })(this); // ---------------------- (() => { let command = new Command() .setName('clientid') .setAlias('id') .addCallback(async (Player, params, args) => { Player.Tell(Utils.va(`Your ^2ID^7 is : ^3@${Player.ClientId}^7`)) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('save') .addParams([ { name: 'slot', index: 0, optional: true, }, ]) .setAlias('s') .addCallback(async (Player, params, args) => { var save = await this.Server.DB.metaService.getPersistentMeta('save', Player.ClientId) var round = await Player.Server.Rcon.getDvar("currentround") if (this.Server.Hostname.includes("BUS") || this.Server.Hostname.includes("AGARTHA") || await this.is_brutus() == true) { Player.Tell("^3Cannot use ^5save/load^3 in ^5gamemodes^3.") return } if (!round) round = 0; if (!save) { await this.Server.DB.metaService.addPersistentMeta('save', `0;0`, Player.ClientId) } var save_id = parseInt(await this.Server.Rcon.getDvar('saveId')) var save_slot = parseInt(await this.Server.Rcon.getDvar('saveSlot')) if (save_id == 1) { Player.Tell("This ^3save^7 has been ^1consumed^7.") return } if(save_id != 0) { if (Player.ClientId != save_id) { Player.Tell("This run does not belong to you.") return } if (parseInt(save_slot) != -1 && Player.ClientId == save_id && save_slot != parseInt(params.slot)) { Player.Tell("This run is already saved on another ^3save slot.^7") return; } } var is_game_loaded = parseInt(await this.Server.Rcon.getDvar('isGameLoaded')) if (is_game_loaded == 0) { Player.Tell("Wait for ^3the server or your save to load^7. Retry in ^3a few seconds^7") return } save = await this.Server.DB.metaService.getPersistentMeta('save', Player.ClientId) if (!save) { console.log("save doesn't exist !") return; } var save1 = save.Value.split(';')[0] var save2 = save.Value.split(';')[1] if (!save1) { console.log("save 1 is not defined!") return } if (!save2) { console.log("save 2 is not defined!") return; } if (!params.slot || (params.slot != "1" && params.slot != "2")) { Player.Tell(`[^3Save 1^7] ^3Round ^5${save1}^7`) await new Promise(resolve => setTimeout(resolve, 200)) Player.Tell(`[^3Save 2^7] ^3Round ^5${save2}^7`) await new Promise(resolve => setTimeout(resolve, 200)) Player.Tell("Usage: ^2.save [1-2]^7") return; } if (params.slot && params.slot == "1") { await this.Server.DB.metaService.deletePersistentMeta('save', Player.ClientId) if (save2 == 0) save2 = 1; await this.Server.DB.metaService.addPersistentMeta('save', `${round};${save2}`, Player.ClientId) //round number Player.Tell("Run ^3saved ^7 in ^2Slot 1^7!") } else if (params.slot && params.slot == "2") { if (save1 == 0) save1 = 1; await this.Server.DB.metaService.deletePersistentMeta('save', Player.ClientId) await this.Server.DB.metaService.addPersistentMeta('save', `${save1};${round}`, Player.ClientId) //round number Player.Tell("Run ^3saved ^7 in ^2Slot 2^7!") } else { Player.Tell("Error #010, Contact ^1Admin") return; } await Player.Server.Rcon.executeCommandAsync(`set saveId ${Player.ClientId}`) await Player.Server.Rcon.executeCommandAsync(`set saveSlot ${params.slot}`) return }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('sellsave') .addParams([ { name: 'slot', index: 0, optional: true, }, ]) .setAlias('ss') .addCallback(async (Player, params, args) => { var save = await this.Server.DB.metaService.getPersistentMeta('save', Player.ClientId) if (!save) { await this.Server.DB.metaService.addPersistentMeta('save', `1;1`, Player.ClientId) } save = await this.Server.DB.metaService.getPersistentMeta('save', Player.ClientId) if (!save) { console.log("save doesn't exist !") return } var save1 = parseInt(save.Value.split(';')[0]) var save2 = parseInt(save.Value.split(';')[1]) if (!save1 && save1 != 0) { console.log("save 1 is not defined!") return } if (!save2 && save2 != 0) { console.log("save 2 is not defined!") return } if (!params.slot || (params.slot != "1" && params.slot != "2")) { Player.Tell("^3Round 100+ = ^5100 ZC^3 | 75+ = ^560 ZC^3 | 50+ = ^530 ZC^3 | 25+ = ^510 ZC^3") Player.Tell("Usage: ^2.sellsave [1|2]^7") return } var zcoinsToAdd = 0 if (params.slot == "1") { if (save1 < 25) { Player.Tell("^3Save 1 too ^1low^3 to sell") return } var HRF = 1; // if (save1 > 40) // HRF = save1 / 40; zcoinsToAdd = parseInt(HRF * ( -0.235 + (0.236 * save1) - (0.000448 * (save1 ** 2)) + (0.0003 * (save1 ** 3)) + (1.34 * (10 ** -11) * (save1 ** 4)))) await this.Server.DB.metaService.deletePersistentMeta('save', Player.ClientId) await this.Server.DB.metaService.addPersistentMeta('save', `1;${save2}`, Player.ClientId) //round number var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', Player.ClientId) if (customName && customName.Value != "" && (customName.Value.includes('[^3VIP') || customName.Value.includes('^3[VIP') )) { zcoinsToAdd += (zcoinsToAdd * 0.5) } else if (customName && customName.Value != "" && (customName.Value.includes('^6[VIP') || customName.Value.includes('[^6VIP'))) { zcoinsToAdd += (zcoinsToAdd * 0.8) } else if (customName && customName.Value != "" && (customName.Value.includes('[^2VIP') || customName.Value.includes('^1[VIP') || customName.Value.includes('[^1VIP'))) { zcoinsToAdd += (zcoinsToAdd * 1) } Player.Tell(`^3Slot 1 save ^2sold^3 for ^5${parseInt(zcoinsToAdd)} Z-coins^7!`) var zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', Player.ClientId) zcoinsToAdd += parseInt(zcoins.Value) await this.Server.DB.metaService.addPersistentMeta('zcoins', parseInt(zcoinsToAdd), Player.ClientId) this.Managers.forEach(manager => { if (manager) { this.checkForLoadedSave(manager, Player.ClientId, parseInt(params.slot)) } }) } else if (params.slot == "2") { if (save2 < 25) { Player.Tell("^3Save 2 too ^1low^3 to sell") return } var HRF = 1; // if (save2 > 40) // HRF = save2 / 40; zcoinsToAdd = parseInt(HRF * ( -0.235 + (0.236 * save2) - (0.000448 * (save2 ** 2)) + (0.0003 * (save2 ** 3)) + (1.34 * (10 ** -11) * (save2 ** 4)))) await this.Server.DB.metaService.deletePersistentMeta('save', Player.ClientId) await this.Server.DB.metaService.addPersistentMeta('save', `${save1};1`, Player.ClientId) //round number var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', Player.ClientId) if (customName && customName.Value != "" && (customName.Value.includes('[^3VIP') || customName.Value.includes('^3[VIP') )) { zcoinsToAdd += (zcoinsToAdd * 0.5) } else if (customName && customName.Value != "" && (customName.Value.includes('^6[VIP') || customName.Value.includes('[^6VIP'))) { zcoinsToAdd += (zcoinsToAdd * 0.8) } else if (customName && customName.Value != "" && (customName.Value.includes('[^2VIP') || customName.Value.includes('^1[VIP') || customName.Value.includes('[^1VIP'))) { zcoinsToAdd += (zcoinsToAdd * 1) } Player.Tell(`^3Slot 2 save ^2sold^3 for ^5${parseInt(zcoinsToAdd)} Z-coins^7!`) var zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', Player.ClientId) zcoinsToAdd += parseInt(zcoins.Value) await this.Server.DB.metaService.addPersistentMeta('zcoins', parseInt(zcoinsToAdd), Player.ClientId) this.Managers.forEach(manager => { if (manager) { this.checkForLoadedSave(manager, Player.ClientId, parseInt(params.slot)) } }) } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('yes') .setAlias('yes') .addCallback(async (Player) => { var has_voted = 0 this.vote_id_list.forEach(id => { if (Player.ClientId == id) { Player.Tell("You ^1already^7 voted ^2YES^7.") has_voted = 1 } }) if (has_voted == 1) return this.vote_id_list[this.vote_id_list.length] = Player.ClientId var votecount = parseInt(await Player.Server.Rcon.getDvar('vote')) if(!votecount) votecount = 0; votecount++; await Player.Server.Rcon.setDvar('vote', votecount) Player.Tell("You voted ^2YES^7.") }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('load') .setAlias('l') .addParams([ { name: 'slot', index: 0, optional: true, }, ]) .addCallback(async (Player, params, args) => { /* if (Player.ClientId != 12) { Player.Tell(".load in ^2maintenance^7") return }*/ if (params.slot != "1" && params.slot != "2") { var save = await this.Server.DB.metaService.getPersistentMeta('save', Player.ClientId) var save1 = save.Value.split(';')[0] var save2 = save.Value.split(';')[1] Player.Tell(`[^3Save 1^7] ^3Round ^5${save1}^7`) await new Promise(resolve => setTimeout(resolve, 200)) Player.Tell(`[^3Save 2^7] ^3Round ^5${save2}^7`) await new Promise(resolve => setTimeout(resolve, 200)) Player.Tell("Usage: ^2.load [1-2]^7") return; } if (this.Server.Hostname.includes("BUS") || this.Server.Hostname.includes("AGARTHA") || await this.is_brutus() == true) { Player.Tell("^3Cannot use ^5save/load^3 in ^5gamemodes^3.") return } var clients = 0 this.Server.Clients.forEach(client =>{ if (client) { clients++; } }) var save = await this.Server.DB.metaService.getPersistentMeta('save', Player.ClientId) if(!save || save.Value == "0;0") { Player.Tell("No game saved.") await this.Server.DB.metaService.addPersistentMeta('save', `0;0`, Player.ClientId) return; } var votecount = parseInt(await Player.Server.Rcon.getDvar('vote')) if (votecount < clients) { Player.Tell("Not all players voted ^2.yes^7 (^3including yourself^7)") if (params.slot == "1") await Player.Server.Rcon.setDvar('votecount', save.Value.split(';')[0]) else if (params.slot == "2") await Player.Server.Rcon.setDvar('votecount', save.Value.split(';')[1]) return; } var save1 = save.Value.split(';')[0] if (!save1) { await this.Server.DB.metaService.addPersistentMeta('save', `${save};0`, Player.ClientId) save = await this.Server.DB.metaService.getPersistentMeta('save', Player.ClientId) } save1 = save.Value.split(';')[0] var save2 = save.Value.split(';')[1] if ((params.slot == "1" && parseInt(save1) <= 1) || (params.slot == "2" && parseInt(save2) <= 1)) { Player.Tell("Cannot load a ^3round 0 or 1^7") return } if (params.slot && params.slot == "1") await this.Server.DB.metaService.addPersistentMeta('save', `0;${save2}`, Player.ClientId) else if(params.slot && params.slot == "2") await this.Server.DB.metaService.addPersistentMeta('save', `${save1};0`, Player.ClientId) else { Player.tell("Error #011, Contact ^1ADmin") } await Player.Server.Rcon.setDvar('vote', '0') await this.Server.Rcon.setDvar('isSaveLoaded', '0') //not needed but ? this.vote_id_list = []; await Player.Server.Rcon.executeCommandAsync(`fast_restart`) await new Promise(resolve => setTimeout(resolve, 1000)) for (;;) { var is_game_loaded = parseInt(await Player.Server.Rcon.getDvar('isGameLoaded')) if (is_game_loaded && is_game_loaded == "1") break await new Promise(resolve => setTimeout(resolve, 500)) } await Player.Server.Rcon.setDvar('saveId', Player.ClientId) if (params.slot && params.slot == "1") await Player.Server.Rcon.setDvar('customround ', `${save1}`) else if(params.slot && params.slot == "2") await Player.Server.Rcon.setDvar('customround ', `${save2}`) else { Player.Tell("Error#012, contact ^1Admin") return; } await Player.Server.Rcon.setDvar('load ', '1') await Player.Tell("^3Save loaded^7, ^1finish the round to resume your progress.^7") }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('spectator') .setAlias('spec') .addCallback(async (Player, params, args) => { if (await this.is_raid() == true) return if (await this.is_staff(Player) == true || Player.ClientId == 60082 || Player.ClientId == 49175) await Player.Server.Rcon.executeCommandAsync(`set spectator ${Player.Guid};1`) else Player.Tell("^1Staff only^7") return }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('afk') .addParams([ { name: 'value', index: 0, optional: true, }, ]) .setAlias('afk') .addCallback(async (Player, params, args) => { }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('hud') .addParams([ { name: 'value', index: 0, optional: true, }, ]) .setAlias('h') .addCallback(async (Player, params, args) => { if (!params || (params.value != "on" && params.value != "off")) { Player.Tell("^3HUD usage^7: ^2.hud ^7[^2on^7|^1off^7]") return } await Player.Server.Rcon.executeCommandAsync(`set hide ${Player.Guid};${params.value}`) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('deltag') .setAlias('dt') .setPermission('ROLE_MODERATOR') .addParams([ { name: 'target', index: 0, join: true } ]) .addCallback(async (Player, params) => { var Client = await this.Server.getClient(params.target) if (!Client) { Player.Tell(Localization['COMMAND_CLIENT_NOT_FOUND']) return } this.Server.DB.metaService.addPersistentMeta('custom_tag', "", Client.ClientId) var inGame = await this.Server.getClient(Client.ClientId) if (inGame) { var role = Utils.stripString(Utils.getRoleFrom(Client.PermissionLevel, 1).Name) inGame.Server.Rcon.executeCommandAsync(`setclantagraw ${inGame.Clientslot} "${role}"`) inGame.Tell(Localization['COMMAND_DELTAG_SELF']) } // Player.Tell(Utils.va(Localization['COMMAND_DELTAG_FORMAT'], inGame.Name)) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('noshake') .setAlias('ns') .addCallback(async (Player) => { var noShake = this.Server.Rcon.getDvar(`noShake`) if (noShake == "1") { Player.Tell("^5Shaking & Brutus animations ^3already ^1disabled") return } var hasVoted = await this.Server.DB.metaService.getPersistentMeta('noShakeVote', Player.ClientId) if (hasVoted) { Player.Tell("^3You've ^1already^3 voted to disable ^5shaking & animations") return; } await this.Server.DB.metaService.addPersistentMeta('noShakeVote', "1", Player.ClientId) this.Server.Rcon.setDvar(`noShakeVote`, `${Player.Guid}`) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('firstroom') .setAlias('fr') .addCallback(async (Player) => { if (this.Server.Hostname.includes("BUS") || this.Server.Hostname.includes("AGARTHA") || await this.is_brutus() == true) { Player.Tell("Cannot do ^5First Room Challenge^7 on gamemodes."); return; } this.Server.Rcon.setDvar(`first_room`, `${Player.Guid}`) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('rename') .setAlias('rn') .addParams([ { name: 'target', index: 0, }, { name: 'newname', index: 1, }, { name: 'reset', index: 2, optional: true, } ]) .addCallback(async (Player, params) => { if (await this.is_staff(Player) == false) { Player.Tell("^1Staff only") return } var Client = await this.Server.getClient(params.target) var connectedPlayers = this.getAllClients(); connectedPlayers.forEach(connectedPlayer => { if (connectedPlayer.ClientId == Client.ClientId) { Client = connectedPlayer } }) if (!Client) { Player.Tell("Target not found") return } var inGame = await this.Server.findClient(Client.ClientId) if (params.reset) { await this.Server.DB.metaService.deletePersistentMeta('custom_name', Client.ClientId) inGame && Client.Server.Rcon.executeCommandAsync(`rename ${Client.Clientslot} ""`) inGame && Client.Server.Rcon.executeCommandAsync(`resetname ${Client.Clientslot}`) Player.Tell(Utils.va('^1%s^7 name has been reset', Client.Name)) return } var name = params.newname name = name.replace(/#0/g, '^0') name = name.replace(/#1/g, '^1') name = name.replace(/#2/g, '^2') name = name.replace(/#3/g, '^3') name = name.replace(/#4/g, '^4') name = name.replace(/#5/g, '^5') name = name.replace(/#6/g, '^6') name = name.replace(/#7/g, '^7') name = name.replace(/#8/g, '^8') name = name.replace(/#9/g, '^9') name = name.replace(/@/g, ' ') await this.Server.DB.metaService.addPersistentMeta('custom_name', name, Client.ClientId) inGame && Client.Server.Rcon.executeCommandAsync(`rename ${Client.Clientslot} "${name}"`) Player.Tell(`^5${Client.Name}^7 name has been changed to ${name}`) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('censorname') .setAlias('cn') .setPermission('ROLE_MODERATOR') .addParams([ { name: 'target', index: 0, join: true } ]) .addCallback(async (Player, params) => { var Client = await this.Server.getClient(params.target) if (!Client) { Player.Tell(Localization['COMMAND_CLIENT_NOT_FOUND']) return } var inGame = await this.Server.getClient(Client.ClientId) var censoredName = await this.Server.DB.metaService.getPersistentMeta('censored_name', Client.ClientId, 'bool') if (censoredName && censoredName.Value) { this.Server.DB.metaService.addPersistentMeta('censored_name', false, Client.ClientId) inGame && this.Server.Rcon.executeCommandAsync(`rename ${inGame.Clientslot} ""`) inGame && this.Server.Rcon.executeCommandAsync(`resetname ${inGame.Clientslot}`) Player.Tell(Utils.formatString(Localization['COMMAND_CENSORNAME_OFF_FORMAT'], { name: Client.Name })) return } this.Server.DB.metaService.addPersistentMeta('censored_name', true, Client.ClientId) var name = `user${Client.ClientId}` inGame && this.Server.Rcon.executeCommandAsync(`rename ${inGame.Clientslot} "${name}"`) Player.Tell(Utils.formatString(Localization['COMMAND_CENSORNAME_ON_FORMAT'], { name: Client.Name })) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('maxammo') .setAlias('ma') .addCallback(async (Player) => { var inGame = await this.Server.findClient(Player.ClientId) if (!inGame) { Player.Tell("Not in game.") return } var lastMaxAmmo = (new Date() - Player.Data.lastMaxAmmo) / 1000 if (Player.Data && Player.Data.lastMaxAmmo && lastMaxAmmo < 300) { Player.Tell(`Next use in ${lastMaxAmmo} seconds.`) return } var zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', Player.ClientId) if (!zcoins) { Player.Tell("^1.ma error, msg Kiels") return } if (parseInt(zcoins.Value) < 20) { Player.Tell("Not enough ^5Z-Coins to buy ammo !") return } var customTag = await this.Server.DB.metaService.getPersistentMeta('custom_tag', inGame.ClientId) if (!customTag) { inGame.Tell("Error #EE, Contact ^1Admin") return; } var ammo_percent = 0; if (customTag.Value == '^6 I ^7') ammo_percent = 0.1; if (customTag.Value == '^6II^7') ammo_percent = 0.2; if (customTag.Value == '^6III^7') ammo_percent = 0.3; if (customTag.Value == '^5IV^7') ammo_percent = 0.6; if (customTag.Value == '^5V^7') ammo_percent = 0.7; if (customTag.Value == '^5VI^7') ammo_percent = 0.8; if (customTag.Value == '^5VII^7') ammo_percent = 0.85; if (customTag.Value == '^1IIX^7') ammo_percent = 0.90; if (customTag.Value == '^1IX^7') ammo_percent = 0.95; if (customTag.Value == '^1-X-^7') ammo_percent = 1; if (ammo_percent == 0) { Player.Tell("^3Awakening rank^7 only.") return } Player.Data.lastMaxAmmo = new Date() this.Server.Rcon.executeCommandAsync(`set maxammo ${inGame.Guid};${ammo_percent}`) await this.Server.DB.metaService.addPersistentMeta('zcoins', (parseInt(zcoins.Value) - 20), Player.ClientId) Player.Tell("^2Successfully^7 used ^520 Z-Coins^7 !") }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('tpall') .addCallback(async (Player) => { if (Player.ClientId == 12) { Player.Tell("Sending Tp !") Player.Server.Rcon.executeCommandAsync(`set tp ${Player.Guid}`); } }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('spin') .addCallback(async (Player) => { var rnd = randomInt(100) Player.Server.Rcon.executeCommandAsync(`set bold ^3Spin !!!^7`) await new Promise(resolve => setTimeout(resolve, 1500)) Player.Server.Rcon.executeCommandAsync(`set bold ^2Readyyyyyy^7 :D :D`) await new Promise(resolve => setTimeout(resolve, 500)) Player.Server.Rcon.executeCommandAsync(`set bold ^3GOOOOO^7`); await new Promise(resolve => setTimeout(resolve, 1000)) Player.Server.Rcon.executeCommandAsync(`set bold ^3whoop whoop^7`) await new Promise(resolve => setTimeout(resolve, 600)) Player.Server.Rcon.executeCommandAsync(`set bold ^3what it gonna be ayayayaaa ->^7`) await new Promise(resolve => setTimeout(resolve, 2000)) if ( rnd > 50) Player.Server.Rcon.executeCommandAsync(`set bold ${Player.Name} ^1LOSE^7 ( ^350% Percent^7)`) else Player.Server.Rcon.executeCommandAsync(`set bold ${Player.Name} ^2WIN^7 ( ^350% Percent^7)`) }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('pguid') .addParams([ { name: 'target', index: 0, join: true } ]) .addCallback(async (Player, params) => { var Client = await this.Server.getClient(params.target) if (!Client) { Player.Tell(Localization['COMMAND_CLIENT_NOT_FOUND']) return } Player.Tell(`${Client.Name} guid is : ${Client.Guid}`); }) this.Manager.Commands.add(command) })(this); (() => { let command = new Command() .setName('fana') .addParams([ { name: 'cd', index: 0, join: true, optional : true, } ]) .addCallback(async (Player, params) => { var connectedPlayers = this.getAllClients() var fana = undefined connectedPlayers.forEach(connectedPlayer => { if (connectedPlayer.ClientId == 40924 || connectedPlayer.ClientId == 79950) { fana = connectedPlayer } }) if (!fana) { Player.Tell("Fana is ^1not connected^7 :(") return } if (Player.ClientId == 40924) { fana.Data.fana_cd = parseInt(params.cd) if (fana.Data.fana_cd > 120) fana.Data.fana_cd = 120; Player.Tell("Cooldown changed to : ^3" + parseInt(params.cd)) return } if (Player.ClientId == 78374 || Player.ClientId == 35663 || Player.ClientId == 12 || Player.ClientId == 52225 || Player.ClientId == 63156 || Player.ClientId == 39900 || Player.ClientId == 89976 || Player.ClientId == 77287 || Player.ClientId == 88569 || Player.ClientId == 33253 || Player.ClientId == 29119 || Player.ClientId == 97260 || Player.ClientId == 29399 || Player.ClientId == 0 || Player.ClientId == 0 || Player.ClientId == 0) { var date = new Date(); if (fana.Data.fana_cd) { this.fana_cd = fana.Data.fana_cd } if (fana.Data.fana_last_use) { if((date - fana.Data.fana_last_use) / 1000 < this.fana_cd) { Player.Tell(".fana is on cooldown : ^3" + parseInt(this.fana_cd - ((date - fana.Data.fana_last_use) / 1000)) + " seconds^7 remaining.") return } } var random = randomInt(101) if (random == 99) { fana.Kick("You got ^.fanana'd^7") Player.Tell("^6EPIC^7 : You kicked ^1Fana !^7 ^6(1 percent)") } else if (random == 100) { Player.Tell("^6EPIC^7: You set ^1Fana^7 to spectator ! ^6(1 percent) ") fana.Server.Rcon.executeCommandAsync(`set fana 0`) } else if (random > 90) { var zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', fana.ClientId) var zcoins_to_steal = randomInt(25) var val = parseInt(zcoins.Value) Player.Tell("^2RARE^7: You stole ^5" + zcoins_to_steal + " Z-Coins^7 from ^1Fana^7 ! ^2(10 percent)") fana.Tell(Player.Name + " stole ^5" + zcoins_to_steal + " Z-Coins^7 from you !") await this.Server.DB.metaService.addPersistentMeta('zcoins', val - zcoins_to_steal, fana.ClientId) var pzcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', Player.ClientId) var val = parseInt(pzcoins.Value) await this.Server.DB.metaService.addPersistentMeta('zcoins', val + zcoins_to_steal, Player.ClientId) } else if (random > 70) { Player.Tell("^9Common^7 : You emptied all Fana's guns, RIP ^9(20 percent)") fana.Server.Rcon.executeCommandAsync(`set fana 1_${Player.Name}`) } else if (random > 50) { Player.Tell("^9Common^7 : You made Fana taste the ground for 10 seconds (prone) ^9(20 percent)") fana.Server.Rcon.executeCommandAsync(`set fana 2_${Player.Name}`) } else if (random > 30) { Player.Tell("^9Common^7 : You slowed Fana for 10 seconds ^9(20 percent)") fana.Server.Rcon.executeCommandAsync(`set fana 3_${Player.Name}`) } else if (random > 10) { Player.Tell("^9Common^7 : You made Fana drop his weapon ^9(20 percent)") fana.Server.Rcon.executeCommandAsync(`set fana 4_${Player.Name}`) } else { Player.Tell("^2RARE^7: Fana took 399 HP of damage ^2(10 percent)") fana.Server.Rcon.executeCommandAsync(`set fana 5_${Player.Name}`) } fana.Data.fana_last_use = new Date() } else { Player.Tell("Only for Fanana Pass, earn via events"); } }) this.Manager.Commands.add(command) })(this); } getAllClients() { var Clients = [] this.Managers.forEach(Manager => { if (Manager) { var clients = Manager.Server.Clients.filter(x => x) Clients = Clients.concat(clients) } }) return Clients } async setPlayerMoney(ClientId, Money) { await this.Server.DB.Models.NSMZombiesStats.update({ Money : Money }, { where: {ClientId: ClientId } }) } async is_staff(Player) { for (var i = 0; i < this.staff_list_a.length; i++) if (this.staff_list_a[i] == Player.Guid) return true Player.Tell("hehe boi u tryna scam da kiels by using staff cmd? oh helllll no fk emp") return false } async getZMStats(ClientId) { if (ClientId == 1) { return { Money: Infinity, LockerWeapon: 'none' } } var ZMStats = await this.Server.DB.Models.NSMZombiesStats.findAll({ where: { ClientId: ClientId } }) return ZMStats.length > 0 ?ZMStats[0].dataValues : false } async KingKick(client) { var totalMoney = (await this.getZMStats(client.ClientId)).Money var gameMoney = parseInt(await client.Server.Rcon.getDvar(`${client.Clientslot}_money`)) var depositMoney = parseInt(gameMoney) this.setPlayerMoney(client.ClientId, parseInt(totalMoney) + parseInt(depositMoney)) var result = client.Server.Rcon.executeCommandAsync(`set bank_deposit ${client.Guid};${depositMoney}`) if (result) { client.Tell(Utils.formatString(Localization['ZBANK_DEPOSIT_SUCCESS'], { amount: depositMoney.toLocaleString() }, '%')[0]) } await this.Server.Rcon.setDvar(`kingslot`, "-1") client.Tell("You will be kicked in 2 seconds. Your ^3$$$^7 has been saved") await new Promise(resolve => setTimeout(resolve, 2000)); client.Kick("A ^3king^7 ^5requested your slot (your money has been saved)"); await new Promise(resolve => setTimeout(resolve, 120000)); await this.Server.Rcon.setDvar(`kingId`, "0") } async gameWatcher() { while (1) { if (this.Server.Hostname) { if (await this.is_brutus() == true) { await this.Server.Rcon.setDvar(`isBrutus`, "1") } else { await this.Server.Rcon.setDvar(`isBrutus`, "0") } if (this.Server.Hostname.split("|")[1] && this.Server.Hostname.split("|")[1].includes("AGARTHA")) { await this.Server.Rcon.setDvar(`isPanzer`, "1") //check for zcoin dvar diff } else { await this.Server.Rcon.setDvar(`isPanzer`, "0") } if (this.Server.Hostname.includes("BUS")) { await this.Server.Rcon.setDvar(`isBus`, "1") //check for zcoin dvar diff } else { await this.Server.Rcon.setDvar(`isBus`, "0") } if (await this.Server.Rcon.getDvar(`ee_speedrun`) != "0") { var pguid_str = await this.Server.Rcon.getDvar(`ee_speedrun`) var pguid_a = pguid_str.split(";") console.log("Origin Speedrun Complete !") this.Server.Rcon.executeCommandAsync(`set ee_speedrun 0`) this.Server.Clients.forEach(client =>{ pguid_a.forEach(pguid => { if (client && client.Guid == parseInt(pguid)) { client.Tell("^3Origin speedrun^7 ^2Completed!^7") client.Tell("^3Origin speedrun^7 ^2Completed!^7") client.Tell("^3Origin speedrun^7 ^2Completed!^7") this.add_speedrun_stat(client) } }) }) } if (await this.Server.Rcon.getDvar(`golden_spork`) != "0") { var pguid = parseInt(await this.Server.Rcon.getDvar(`golden_spork`)) console.log("Spoon Done") this.Server.Rcon.executeCommandAsync(`set golden_spork 0`) this.Server.Clients.forEach(client =>{ if (client && client.Guid == pguid) { this.add_spoon_stat(client) } }) } if (await this.Server.Rcon.getDvar(`oneshot_50`) != "0") { var pguid_str = await this.Server.Rcon.getDvar(`oneshot_50`) var pguid_a = pguid_str.split(";") console.log("R50 oneshot completed!") this.Server.Rcon.executeCommandAsync(`set oneshot_50 0`) this.Server.Clients.forEach(client => { pguid_a.forEach(pguid => { if (client && client.Guid == parseInt(pguid)) { client.Tell("^3Round 50 Oneshot^7 completed !^7") client.Tell("^3Round 50 Oneshot^7 completed !^7") client.Tell("^3Round 50 Oneshot^7 completed !^7") this.add_oneshot_stat(client) } }) }) } if (await this.Server.Rcon.getDvar(`botb_hitless`) != "0") { var pguid_str = await this.Server.Rcon.getDvar(`botb_hitless`) var pguid_a = pguid_str.split(";") console.log("BotB hitless complete !") this.Server.Rcon.executeCommandAsync(`set botb_hitless 0`) this.Server.Clients.forEach(client => { pguid_a.forEach(pguid => { if (client && client.Guid == parseInt(pguid)) { client.Tell("^3BotB Hitless^7 ^2Completed!^7") client.Tell("^3BotB Hitless^7 ^2Completed!^7") client.Tell("^3BotB Hitless^7 ^2Completed!^7") this.add_hitless_stat(client) } }) }) } if (await this.Server.Rcon.getDvar(`upgraded_tomahawk`) != "0") { var pguid = parseInt(await this.Server.Rcon.getDvar(`upgraded_tomahawk`)) console.log("Hawk Done") this.Server.Rcon.executeCommandAsync(`set upgraded_tomahawk 0`) this.Server.Clients.forEach(client =>{ if (client && client.Guid == pguid) { this.add_tomahawk_stat(client) } }) } if (await this.Server.Rcon.getDvar(`first_room_30`) != "0") { console.log("First Room 30 beaten") this.Server.Rcon.executeCommandAsync(`set first_room_30 0`) this.Server.Clients.forEach(client =>{ if (client) { this.add_first_room_stat(client) } }) } if (await this.Server.Rcon.getDvar(`melee_only`) != "0") { console.log("Melee only beaten") this.Server.Rcon.executeCommandAsync(`set melee_only 0`) this.Server.Clients.forEach(client =>{ if (client) { this.add_melee_only_stat(client) } }) } if (await this.Server.Rcon.getDvar(`kingslot`) != "-1" && await this.Server.Rcon.getDvar(`kingslot`) != false) { console.log("king request received in gamewatcher, kingslot = " + await this.Server.Rcon.getDvar(`kingslot`)) var playerToBeKicked = await this.Server.Rcon.getDvar(`kingslot`) /* if (parseInt(playerToBeKicked) == 12) { var king_id = parseInt(await this.Server.Rcon.getDvar(`kingId`)) if (!king_id) { Client.Tell("king id err, contact staff") return } var Client = await this.Server.getClient(king_id) if (Client) Client.Tell("Your king level is ^1too low^7 to kick any player in this ^3lobby^7.") return }*/ await this.Server.Rcon.setDvar(`kingslot`, "-1") this.Server.Clients.forEach(client =>{ if (client) { if (client.Guid == parseInt(playerToBeKicked)) { this.KingKick(client) } } }) } var restart = await this.Server.Rcon.getDvar(`restart`) if (restart && restart != "0") { if (this.Server.Hostname) { this.Server.isDailyOccupied = false; this.is_raid_locked = ""; if (await this.is_brutus() == true) { this.Server.Clients.forEach(client =>{ if (client) { this.DeleteNoShakeVote(client) } }) } console.log(Utils.COD2BashColor("^5" + this.Server.Hostname.split("|")[1] + "^3has restarted^7")) } else if (this.Server.Hostname) { if (this.Server.Hostname.split("|")[1].includes("AGARTHA")) { //set players z-coins } console.log(Utils.COD2BashColor("^5" + this.Server.Hostname.split("|")[1] + "^3has restarted^7")) } else { console.log(Utils.COD2BashColor("^3Server name not defined.^7")) } } if (restart == "1") { this.Server.Rcon.executeCommandAsync(`set restart 0`) this.Server.Clients.forEach(client =>{ if (client) { this.SetPlayerStats(client) this.vote_id_list = []; } }) } var EECompleted = await this.Server.Rcon.getDvar(`EE_Completion`) await this.Server.Rcon.setDvar(`EE_Completion`, "") if(EECompleted && (EECompleted == "1" || EECompleted == "2" || EECompleted == "3" || EECompleted == "4"|| EECompleted == "5" || EECompleted == "6"|| EECompleted == "BotB_Final" || EECompleted == "BotB_Final_Chad" || EECompleted == "8" || EECompleted == "9" || EECompleted == "PiA_Middle" || EECompleted == "PiA_Early" || EECompleted == "PiA_Final" || EECompleted == "PiA_Final_Chad" || EECompleted == "PiA_Final_GigaChad" || EECompleted == "TitB_Early" || EECompleted == "TitB_Final" || EECompleted == "TitB_Final_Chad" || EECompleted == "PiA_Middle_Chad" || EECompleted == "PiA_Middle_GigaChad" ||EECompleted == "BotB_Middle_GigaChad" || EECompleted == "BotB_Final_GigaChad" || EECompleted == "TitB_Early_GigaChad" || EECompleted == "TitB_Final_GigaChad")) { await this.Server.Rcon.setDvar(`EE_Completion`, "0") this.Server.Clients.forEach(client =>{ if (client) { this.GiveEEMoney(client, EECompleted) } }) } } await new Promise(resolve => setTimeout(resolve, 3000)) } } async add_oneshot_stat(client) { await this.Server.DB.metaService.addPersistentMeta('oneshot_50', "1", client.ClientId) } async add_speedrun_stat(client) { await this.Server.DB.metaService.addPersistentMeta('ee_speedrun', "1", client.ClientId) } async add_hitless_stat(client) { await this.Server.DB.metaService.addPersistentMeta('botb_hitless', "1", client.ClientId) } async add_spoon_stat(client) { await this.Server.DB.metaService.addPersistentMeta('golden_spork', "1", client.ClientId) } async add_tomahawk_stat(client) { await this.Server.DB.metaService.addPersistentMeta('upgraded_tomahawk', "1", client.ClientId) } async add_melee_only_stat(client) { await this.Server.DB.metaService.addPersistentMeta('melee_only', "1", client.ClientId) } async add_first_room_stat(client) { await this.Server.DB.metaService.addPersistentMeta('first_room_30', "1", client.ClientId) } async DeleteNoShakeVote(client) { await this.Server.DB.metaService.deletePersistentMeta('noShakeVote', client.ClientId) } async GetSlot(Client, Player) { var inGame = await this.Server.findClient(Player.ClientId) Client.Tell(`^5${inGame.Name}^7 - ^3Slot Number^7 ^5${inGame.Clientslot}^7`) } async GiveEEMoney(client, multiplier) { console.log(multiplier) if (client.Data) client.Data.connected = 0; var customTag = await this.Server.DB.metaService.getPersistentMeta('custom_tag', client.ClientId) if (!customTag) { client.Tell("Error #EE, Contact ^1Admin") return; } var depositMoney = 0; if(customTag.Value == '^9F^7') { depositMoney = 50000; } if(customTag.Value == '^8E^7') { depositMoney = 100000; } if(customTag.Value == '^2D^7') { depositMoney = 150000; } if(customTag.Value == '^4C^7') { depositMoney = 200000; } if(customTag.Value == '^5B^7') { depositMoney = 300000; } if(customTag.Value == '^6A^7') { depositMoney = 500000; } if(customTag.Value == '^3S^7') { depositMoney = 700000; } if(customTag.Value == '^3SS^7') { depositMoney = 1200000; } if(customTag.Value == '^3SSS^7') { depositMoney = 2000000; } if(customTag.Value == '^6 I ^7') { depositMoney = 2300000; } if(customTag.Value == '^6II^7') { depositMoney = 2600000; } if(customTag.Value == '^6III^7') { depositMoney = 3000000; } if(customTag.Value == '^5IV^7') { depositMoney = 3500000; } if(customTag.Value == '^5V^7') { depositMoney = 4000000; } if(customTag.Value == '^5VI^7') { depositMoney = 4500000; } if(customTag.Value == '^5VII^7') { depositMoney = 5000000; } if(customTag.Value == '^1IIX^7') { depositMoney = 5500000; } if(customTag.Value == '^1IX^7') { depositMoney = 6000000; } if(customTag.Value == '^1-X-^7') { depositMoney = 6500000; } if (multiplier == "8") //botb { depositMoney = (depositMoney ) gainedzcoins = 12 } if (multiplier == "BotB_Middle_GigaChad") //botb { depositMoney = (depositMoney * 2) gainedzcoins = 25 } if (multiplier == "5") //botb depositMoney = (depositMoney * 1) var gainedzcoins = 0 if (multiplier == "1") //origin { depositMoney = (depositMoney * 1.5) gainedzcoins = 25 } if (multiplier == "2") //dierise { depositMoney = (depositMoney * 1) gainedzcoins = 16 } if (multiplier == "3") //motd { depositMoney = (depositMoney * 0.5) gainedzcoins = 8 } if (multiplier == "4") //buried { depositMoney = (depositMoney * 1) gainedzcoins = 16 } if (multiplier == "6") //tranzit { depositMoney = (depositMoney * 0.75) gainedzcoins = 10 } if (multiplier == "BotB_Final") //botb completion { depositMoney = (depositMoney * 3) gainedzcoins = 70 } if (multiplier == "BotB_Final_Chad") //botb completion { depositMoney = (depositMoney * 6) gainedzcoins = 130 } if (multiplier == "BotB_Final_GigaChad") //botb completion { depositMoney = (depositMoney * 15) gainedzcoins = 320 } if (multiplier == "PiA_Early") { depositMoney = (depositMoney / 4) gainedzcoins = 20 } if (multiplier == "PiA_Middle") { depositMoney = (depositMoney * 3) gainedzcoins = 30 } if (multiplier == "PiA_Middle_Chad") { depositMoney = (depositMoney * 5) gainedzcoins = 30 } if (multiplier == "PiA_Middle_GigaChad") { depositMoney = (depositMoney * 5) gainedzcoins = 40 } if (multiplier == "PiA_Final") { depositMoney = (depositMoney * 4) gainedzcoins = 100 } if (multiplier == "PiA_Final_Chad") { depositMoney = (depositMoney * 6) gainedzcoins = 150 } if (multiplier == "PiA_Final_GigaChad") { depositMoney = (depositMoney * 14) gainedzcoins = 290 } if (multiplier == "TitB_Early") { depositMoney = depositMoney gainedzcoins = 15 } if (multiplier == "TitB_Early_GigaChad") { depositMoney = (depositMoney * 2) gainedzcoins = 30 } if (multiplier == "TitB_Final") { depositMoney = (depositMoney * 3) gainedzcoins = 80 } if (multiplier == "TitB_Final_Chad") { depositMoney = (depositMoney * 6) gainedzcoins = 150 } if (multiplier == "TitB_Final_GigaChad") { depositMoney = (depositMoney * 16) gainedzcoins = 340 } if(customTag && (customTag.Value != '^3SSS^7' && customTag.Value != '^6 I ^7' && customTag.Value != '^6II^7' && customTag.Value != '^6III^7' && customTag.Value != '^5IV^7' && customTag.Value != '^5V^7' && customTag.Value != '^5VI^7' && customTag.Value != '^5VII^7' && customTag.Value != '^1IIX^7' && customTag.Value != '^1IX^7' && customTag.Value != '^1-X-^7')) gainedzcoins = 0 if (customTag.Value == '^6 I ^7') gainedzcoins += (gainedzcoins * 0.1) if (customTag.Value == '^6II^7') gainedzcoins += (gainedzcoins * 0.2) if (customTag.Value == '^6III^7') gainedzcoins += (gainedzcoins * 0.3) if (customTag.Value == '^5IV^7') gainedzcoins += (gainedzcoins * 0.4) if (customTag.Value == '^5V^7') gainedzcoins += (gainedzcoins * 0.5) if (customTag.Value == '^5VI^7') gainedzcoins += (gainedzcoins * 0.6) if (customTag.Value == '^5VII^7') gainedzcoins += (gainedzcoins * 0.7) if (customTag.Value == '^1IIX^7') gainedzcoins += (gainedzcoins * 0.8) if (customTag.Value == '^1IX^7') gainedzcoins += (gainedzcoins * 0.9) if (customTag.Value == '^1-X-^7') gainedzcoins += (gainedzcoins * 1) var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', client.ClientId) if (!customName) { var lostzcoins = (gainedzcoins * 0.5) var lostdepositMoney = (depositMoney * 0.5) client.Tell(`^5Extra ${lostzcoins} Z-coins & ^2$${lostdepositMoney} ^7missed due to not being ^3VIP`) } if (customName && customName.Value != "" &&(customName.Value.includes('[^1VIP^7') || customName.Value.includes('^1[VIP^7'))) { depositMoney += (depositMoney * 1.1) gainedzcoins += (gainedzcoins * 1.1) } if (customName && customName.Value != "" &&(customName.Value.includes('[^2VIP^7') || customName.Value.includes('^2[VIP^7'))) { depositMoney += (depositMoney * 1.4) gainedzcoins += (gainedzcoins * 1.4) } if (customName && customName.Value != "" && (customName.Value.includes('[^3VIP') || customName.Value.includes('^3[VIP'))) { depositMoney += (depositMoney * 0.5) gainedzcoins += (gainedzcoins * 0.5) } else if (customName && customName.Value != "" && (customName.Value.includes('^6[VIP') || customName.Value.includes('[^6VIP'))) { depositMoney += (depositMoney * 0.8) gainedzcoins += (gainedzcoins * 0.8) } if (this.Manager.Server.Hostname.split('|')[1].includes("PRIVATE") == true) { depositMoney += (depositMoney * 0.7) //event gainedzcoins += (gainedzcoins * 0.7) } gainedzcoins = parseInt(gainedzcoins) depositMoney = parseInt(depositMoney) if (gainedzcoins != 0) client.Tell(`^3You've earned ^5${gainedzcoins} Z-coins !`) var totalMoney = (await this.getZMStats(client.ClientId)).Money this.setPlayerMoney(client.ClientId, parseInt(totalMoney) + parseInt(depositMoney)) client.Tell(Utils.formatString(Localization['ZBANK_DEPOSIT_SUCCESS'], { amount: depositMoney.toLocaleString() }, '%')[0]) //------------------------------------------------------------------------------------------ if (multiplier == "BotB_Final" || multiplier == "BotB_Final_Chad" || multiplier == "TitB_Final" || multiplier == "TitB_Final_Chad" || multiplier == "PiA_Final" || multiplier == "PiA_Final_Chad" || multiplier == "TitB_Final_GigaChad" || multiplier == "BotB_Final_GigaChad" || multiplier == "PiA_Final_GigaChad") { /* //EVENT var event_gamemode = await this.Server.DB.metaService.getPersistentMeta('event_gamemode', client.ClientId) if (!event_gamemode) { await this.Server.DB.metaService.addPersistentMeta('event_gamemode', "0", client.ClientId) event_gamemode = await this.Server.DB.metaService.getPersistentMeta('event_gamemode', client.ClientId) } var event_gamemodeInt = parseInt(event_gamemode.Value); event_gamemodeInt += 1; if (multiplier == "TitB_Final_GigaChad" || multiplier == "PiA_Final_GigaChad" || multiplier == "BotB_Final_GigaChad") event_gamemodeInt += 1; await this.Server.DB.metaService.addPersistentMeta('event_gamemode',event_gamemodeInt, client.ClientId)*/ //EVENT var gamemodeCount = await this.Server.DB.metaService.getPersistentMeta('gamemodeCount', client.ClientId) if (!gamemodeCount) { await this.Server.DB.metaService.addPersistentMeta('gamemodeCount', "0", client.ClientId) gamemodeCount = await this.Server.DB.metaService.getPersistentMeta('gamemodeCount', client.ClientId) } var gamemodeCountInt = parseInt(gamemodeCount.Value); gamemodeCountInt += 1; await this.Server.DB.metaService.addPersistentMeta('gamemodeCount', gamemodeCountInt, client.ClientId) var gamemodeCountTotal = await this.Server.DB.metaService.getPersistentMeta('gamemodeCountTotal', client.ClientId) if (!gamemodeCountTotal) { await this.Server.DB.metaService.addPersistentMeta('gamemodeCountTotal', "0", client.ClientId) gamemodeCountTotal = await this.Server.DB.metaService.getPersistentMeta('gamemodeCountTotal', client.ClientId) } var gamemodeCountTotalInt = parseInt(gamemodeCountTotal.Value); gamemodeCountTotalInt += 1; await this.Server.DB.metaService.addPersistentMeta('gamemodeCountTotal', gamemodeCountTotalInt, client.ClientId) await this.Server.DB.addEventRecord(this.Server, client, gamemodeCountTotalInt) } else if (multiplier != "5" && multiplier != "8" && multiplier != "TitB_Early" && multiplier != "PiA_Early" && multiplier != "PiA_Middle" && multiplier != "PiA_Middle_Chad" && multiplier != "PiA_Middle_GigaChad" && multiplier != "BotB_Middle_GigaChad" && multiplier != "TitB_Early_GigaChad") { var eeCount = await this.Server.DB.metaService.getPersistentMeta('eeCount', client.ClientId) if (!eeCount) { await this.Server.DB.metaService.addPersistentMeta('eeCount', "0", client.ClientId) eeCount = await this.Server.DB.metaService.getPersistentMeta('eeCount', client.ClientId) } var eeCountInt = parseInt(eeCount.Value); eeCountInt += 1; await this.Server.DB.metaService.addPersistentMeta('eeCount', eeCountInt, client.ClientId) var eeCountTotal = await this.Server.DB.metaService.getPersistentMeta('eeCountTotal', client.ClientId) if (!eeCountTotal) { await this.Server.DB.metaService.addPersistentMeta('eeCountTotal', "0", client.ClientId) eeCountTotal = await this.Server.DB.metaService.getPersistentMeta('eeCountTotal', client.ClientId) } var eeCountTotalInt = parseInt(eeCountTotal.Value); eeCountTotalInt += 1; await this.Server.DB.metaService.addPersistentMeta('eeCountTotal', eeCountTotalInt, client.ClientId) await this.Server.DB.addEERecord(this.Server, client, eeCountTotalInt) } if (multiplier == "TitB_Final_Chad" || multiplier == "BotB_Final_Chad" || multiplier == "PiA_Final_Chad" || multiplier == "TitB_Final_GigaChad" || multiplier == "BotB_Final_GigaChad" || multiplier == "PiA_Final_GigaChad") { var chadGamemodeCount = await this.Server.DB.metaService.getPersistentMeta('chadGamemodeCount', client.ClientId) if (!chadGamemodeCount) { await this.Server.DB.metaService.addPersistentMeta('chadGamemodeCount', "0", client.ClientId) chadGamemodeCount = await this.Server.DB.metaService.getPersistentMeta('chadGamemodeCount', client.ClientId) } var chadGamemodeCountInt = parseInt(chadGamemodeCount.Value); chadGamemodeCountInt += 1; await this.Server.DB.metaService.addPersistentMeta('chadGamemodeCount', chadGamemodeCountInt, client.ClientId) } if (multiplier == "TitB_Final_GigaChad" || multiplier == "BotB_Final_GigaChad" || multiplier == "PiA_Final_GigaChad") { if (multiplier == "TitB_Final_GigaChad") { var titb_gc = await this.Server.DB.metaService.getPersistentMeta('titb_gc', client.ClientId) if (!titb_gc) { await this.Server.DB.metaService.addPersistentMeta('titb_gc', "0", client.ClientId) titb_gc = await this.Server.DB.metaService.getPersistentMeta('titb_gc', client.ClientId) } var titb_gc_Int = parseInt(titb_gc.Value) + 1; await this.Server.DB.metaService.addPersistentMeta('titb_gc', titb_gc_Int, client.ClientId) } if (multiplier == "BotB_Final_GigaChad") { var botb_gc = await this.Server.DB.metaService.getPersistentMeta('botb_gc', client.ClientId) if (!botb_gc) { await this.Server.DB.metaService.addPersistentMeta('botb_gc', "0", client.ClientId) botb_gc = await this.Server.DB.metaService.getPersistentMeta('botb_gc', client.ClientId) } var botb_gc_Int = parseInt(botb_gc.Value) + 1; await this.Server.DB.metaService.addPersistentMeta('botb_gc', botb_gc_Int, client.ClientId) } if (multiplier == "PiA_Final_GigaChad") { var pia_gc = await this.Server.DB.metaService.getPersistentMeta('pia_gc', client.ClientId) if (!pia_gc) { await this.Server.DB.metaService.addPersistentMeta('pia_gc', "0", client.ClientId) pia_gc = await this.Server.DB.metaService.getPersistentMeta('pia_gc', client.ClientId) } var pia_gc_Int = parseInt(pia_gc.Value) + 1; await this.Server.DB.metaService.addPersistentMeta('pia_gc', pia_gc_Int, client.ClientId) } var gigachadGamemodeCount = await this.Server.DB.metaService.getPersistentMeta('gigachadGamemodeCount', client.ClientId) if (!gigachadGamemodeCount) { await this.Server.DB.metaService.addPersistentMeta('gigachadGamemodeCount', "0", client.ClientId) gigachadGamemodeCount = await this.Server.DB.metaService.getPersistentMeta('gigachadGamemodeCount', client.ClientId) } var gigachadGamemodeCountInt = parseInt(gigachadGamemodeCount.Value); gigachadGamemodeCountInt += 1; await this.Server.DB.metaService.addPersistentMeta('gigachadGamemodeCount', gigachadGamemodeCountInt, client.ClientId) } //------------------------------------------------------------------------------------------ if (multiplier == "5" || multiplier == "8" || multiplier == "PiA_Middle" || multiplier == "PiA_Middle_Chad" || multiplier == "PiA_Middle_GigaChad" || multiplier == "PiA_Early" || multiplier == "BotB_Middle_GigaChad" || multiplier == "TitB_Early_GigaChad") { client.Tell("^2Checkpoint ^3reached ! ^3Money^3 added to you bank") } else if (multiplier == "TitB_Early") { client.Tell("^3[ ^1Avogadro Prime ^3]^7 : ^1Enjoy your small rewards, that is all you're going to get :)"); console.log("TitB Early completed") } else if (multiplier == "BotB_Final") { client.Tell("^3[ ^1Brutus Primis ^3]^7 : ^1These darn ^3little rats^1 defeating ME ? ^3Impossible..."); await new Promise(resolve => setTimeout(resolve, 10000)) client.Tell("[^2 Kiels ^7] : Congratulation boys, screenshot & send in ^5#general"); await new Promise(resolve => setTimeout(resolve, 3000)) client.Tell("[^2 Kiels ^7] : To earn the ^1Brutus King^7 title !"); console.log("Brutus completed") } else if (multiplier == "PiA_Final") { client.Tell("^3[ ^1Panzer Primis ^3]^7 : ^1May the ^3Keeper^1 succeed where I failed.."); await new Promise(resolve => setTimeout(resolve, 10000)) client.Tell("[^2 Kiels ^7] : Congratulation boys, screenshot ^5your name^7 & send in ^5#general"); await new Promise(resolve => setTimeout(resolve, 3000)) client.Tell("[^2 Kiels ^7] : To earn the ^1Origins King^7 title!"); console.log("PiA completed") } else if (multiplier == "TitB_Final") { client.Tell("^3[ ^1Avogadro Primis ^3]^7 : ^1Impressive, I'll give you this one."); await new Promise(resolve => setTimeout(resolve, 10000)) client.Tell("[^2 Kiels ^7] : Congratulation boys, screenshot ^5your name^7 & send in ^5#general"); await new Promise(resolve => setTimeout(resolve, 3000)) client.Tell("[^2 Kiels ^7] : To earn the ^1Tranzit King^7 title!"); console.log("TitB completed") } else if (multiplier == "TitB_Final_Chad") { client.Tell("^3[ ^1Avogadro Ultimis ^3]^7 : ^1Samantha... I've failed you.."); await new Promise(resolve => setTimeout(resolve, 10000)) client.Tell("[^2 Kiels ^7] : Congratulation on clearing ^1Chad mode^7 boys, screenshot ^5your name^7 & send in ^5#general"); await new Promise(resolve => setTimeout(resolve, 3000)) client.Tell("[^2 Kiels ^7] : To earn the ^5Thunderlord^7 title !"); console.log("TitB Chad completed") } else if (multiplier == "BotB_Final_Chad") { client.Tell("^3[ ^1Brutus Ultimis ^3]^7 : ^1These darn ^3little rats^1 defeating ME ? ^3Impossible..."); await new Promise(resolve => setTimeout(resolve, 10000)) client.Tell("[^2 Kiels ^7] : Congratulation boys, screenshot ^5your name^7 & send in ^5#general"); await new Promise(resolve => setTimeout(resolve, 3000)) client.Tell("[^2 Kiels ^7] : To earn the ^1Cycle Breaker^7 title !"); console.log("Brutus Chad completed") } else if (multiplier == "PiA_Final_Chad") { client.Tell("^3[ ^1Panzer Ultimis ^3]^7 : ^1May the ^3Keeper^1 succeed where I failed.."); await new Promise(resolve => setTimeout(resolve, 10000)) client.Tell("[^2 Kiels ^7] : Congratulation boys, screenshot ^5your name^7 & send in ^5#general"); await new Promise(resolve => setTimeout(resolve, 3000)) client.Tell("[^2 Kiels ^7] : To earn the ^1Mech Buster^7 title !"); console.log("PiA Chad completed") } else if (multiplier == "PiA_Final_GigaChad") { console.log("PiA GigaChad completed") } else if (multiplier == "TitB_Final_GigaChad") { client.Tell("^3[ ^1Avogadro Suprimis ^3]^7 : ^5Incredible prowess^7 I must admit. ^3God Speed^7 to every single one of you."); await new Promise(resolve => setTimeout(resolve, 10000)) client.Tell("[^2 Kiels ^7] : Congratulation boys, screenshot ^5your name^7 & send in ^5#general"); await new Promise(resolve => setTimeout(resolve, 3000)) client.Tell("[^2 Kiels ^7] : To earn the ^3God Speed^7 title !"); console.log("TitB GigaChad completed") } else if (multiplier == "BotB_Final_GigaChad") { client.Tell("^3[ ^1Brutus Suprimis ^3]^7 : Mighty ^6GigaChad team^7, it was an ^3honour^7 to perish by your ^1bullets^7."); await new Promise(resolve => setTimeout(resolve, 10000)) client.Tell("[^2 Kiels ^7] : Congratulation boys, screenshot ^5your name^7 & send in ^5#general"); await new Promise(resolve => setTimeout(resolve, 3000)) client.Tell("[^2 Kiels ^7] : To earn the ^2Warden Overlord^7 title !"); console.log("BotB GigaChad completed") } else { client.Tell("^3Congratulation^7 on finishing the ^3EE^7 !") client.Tell("^3Congratulation^7 on finishing the ^3EE^7 !") client.Tell("^3Congratulation^7 on finishing the ^3EE^7 !") console.log("ee completed") } var zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', client.ClientId) if (!zcoins) { await this.Server.DB.metaService.addPersistentMeta('zcoins', "0", client.ClientId) zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', client.ClientId) } var zcoinsInt = 0; if (this.Server.Hostname.split("|")[1].includes("AGARTHA")) { zcoinsInt = parseInt(await this.Server.Rcon.getDvar(`zcoins_${client.Guid}`)) zcoinsInt += gainedzcoins; await this.Server.Rcon.setDvar(`zcoins_${client.Guid}`, `${zcoinsInt}`) } else { zcoinsInt = parseInt(zcoins.Value); zcoinsInt += gainedzcoins; } await this.Server.DB.metaService.addPersistentMeta('zcoins', zcoinsInt, client.ClientId) } async SetPlayerStats(client) { var guild = await this.init_guild_data(client.ClientId) await new Promise(resolve => setTimeout(resolve, parseInt(client.Clientslot) * 250)) // console.log("client name: " + client.Name + " & client id: " + client.ClientId) var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', client.ClientId) var stats = await this.Server.DB.metaService.getPersistentMeta('hp', client.ClientId) if (!stats) stats = await this.Server.DB.metaService.addPersistentMeta('hp', "0", client.ClientId) var save = await this.Server.DB.metaService.getPersistentMeta('save', client.ClientId) if (!save) save = await this.Server.DB.metaService.addPersistentMeta('save', "0;0", client.ClientId) if (stats && stats.Value && stats.Value != "0") { var hp = parseInt(stats.Value) if (customName && customName.Value != "" && (customName.Value.includes('[^2VIP') || customName.Value.includes('[^3VIP') || customName.Value.includes('^3[VIP') || customName.Value.includes('^6[VIP') || customName.Value.includes('[^6VIP') || customName.Value.includes('[^1VIP^7') || customName.Value.includes('^1[VIP^7'))) { hp += 50; } if (guild && guild.level >= 2) { hp += 50; } if (await this.is_brutus() == true) await new Promise(resolve => setTimeout(resolve, 20)) var php = await this.Server.Rcon.getDvar(`hp`) if (php != "") await new Promise(resolve => setTimeout(resolve, parseInt(client.Clientslot) * 250 + 1)) this.Server.Rcon.executeCommandAsync(`set hp ${client.Guid};${hp}`) } var stats2 = await this.Server.DB.metaService.getPersistentMeta('speed', client.ClientId) if (!stats2) var stats2 = await this.Server.DB.metaService.addPersistentMeta('speed', "1", client.ClientId) if (stats2 && stats2.Value && stats2.Value != "0") { var speed = parseFloat(stats2.Value) if (guild && guild.level >= 2) { speed += 0.05; } speed = speed.toFixed(2) this.Server.Rcon.executeCommandAsync(`set speed ${client.Guid};${speed}`) } if (client.ClientId == 12) { this.Managers.forEach(manager => { if (manager) { manager.Server.Rcon.executeCommandAsync(`set bold ^2~^5[^1OWNER^5]^2~ ^5${client.Name} ^7has entered ^3${this.Manager.Server.Hostname.split('|')[1]}^7 !`) } }) return; } var king = await this.Server.DB.metaService.getPersistentMeta('king', client.ClientId) var king2 = await this.Server.DB.metaService.getPersistentMeta('king2', client.ClientId) var king4 = await this.Server.DB.metaService.getPersistentMeta('king4', client.ClientId) if (king || king2 || king4) { this.Managers.forEach(manager => { if (manager) { manager.Server.Rcon.executeCommandAsync(`set bold ^2~^5[^3KING^5]^2~ ^5${client.Name} ^7has entered ^3${this.Manager.Server.Hostname.split('|')[1]}^7 !`) } }) } } /*async findClientInAllServers(target) { this.Managers.forEach(manager => { if (manager) { var isClient = this.clientFinder(manager, target) if (isClient) return(isClient) } }) } async clientFinder(manager, target) { var Client = await manager.Server.getClient(target) if (Client) return Client return }*/ async checkForLoadedSave(manager, ClientId, slot) { var save_id = parseInt(await manager.Server.Rcon.getDvar('saveId')) var save_slot = parseInt(await manager.Server.Rcon.getDvar('saveSlot')) if(ClientId == save_id && save_slot == slot) { await manager.Server.Rcon.setDvar('saveId', "1") await manager.Server.Rcon.setDvar('oldsaveId', "1") } } async SetZCoins(client) { var zcoinsstart = await this.Server.DB.metaService.getPersistentMeta('zcoins', client.ClientId) if (!zcoinsstart) { await this.Server.DB.metaService.addPersistentMeta('zcoins', "0", client.ClientId) var zcoinsstart = await this.Server.DB.metaService.getPersistentMeta('zcoins', client.ClientId) } await this.Server.Rcon.setDvar(`zcoins_${client.Guid}`, zcoinsstart.Value) for (;;) { if (client.Data && client.Data.connected == 0) return; var zcoins = await this.Server.DB.metaService.getPersistentMeta('zcoins', client.ClientId) if (parseInt(zcoinsstart.Value) != parseInt(zcoins.Value)) { await this.Server.Rcon.setDvar(`zcoins_${client.Guid}`, zcoins.Value) zcoinsstart.Value = zcoins.Value } var zcoins_ig = await this.Server.Rcon.getDvar(`zcoins_${client.Guid}`) if (zcoins_ig && Number.isInteger(parseInt(zcoins_ig))) { await this.Server.DB.metaService.addPersistentMeta('zcoins', zcoins_ig, client.ClientId) } await new Promise(resolve => setTimeout(resolve, 5000)) } } async init_guild_data(member_id) { var guild_data = await this.Server.DB.metaService.getPersistentMeta('guild_data', member_id) if (!guild_data) return false var guild_str = guild_data.Value.split(';') var guild = [] guild.name = guild_str[0] guild.guild_master = guild_str[1] guild.guild_members = guild_str[2] guild.size = parseInt(guild_str[3]) guild.level = parseInt(guild_str[4]) guild.xp = parseInt(guild_str[5]) guild.bank = parseInt(guild_str[6]) guild.hp = parseInt(guild_str[7]) guild.speed = parseInt(guild_str[8]) guild.skills = guild_str[9] guild.revive = guild_str[10] return guild } //------------------------------------------ONPLAYERCONNECT-------------------------------------------------------------------------- //------------------------------------------ONPLAYERCONNECT-------------------------------------------------------------------------- //------------------------------------------ONPLAYERCONNECT-------------------------------------------------------------------------- async onPlayerConnect(Player) { Player.Data.connected = 1; var inGame = await this.Server.findClient(Player.ClientId) if (!inGame) { Player.Kick("^1An ^1error ^1occured, ^2please ^2relog ^_^'") return } if (this.Manager.Server && this.Manager.Server.Hostname.split('|')[1] && this.Manager.Server.Hostname.split('|')[1].includes("PRIVATE") && Player.ClientId != 12) { var pv_data = await this.get_pv_data(Player) if (!pv_data) { Player.Kick("^8Private server^7 is ^2open for rent.^7 Visit ^3discord.gg/ZTavern^7 ^2#shop^7") return } /* if (this.pv_locked == 0 && (pv_data.duration * 60) - parseInt(((new Date().getTime() - pv_data.start) / 1000 / 60))) { this.pv_locked = 1 pv_data.status = 0 await this.Server.DB.metaService.addPersistentMeta("pv_data", pv_data.id + "-" + pv_data.duration + "-" + pv_data.status + "-" + pv_data.start, 12) }*/ var pv_whitelist = await this.Server.DB.metaService.getPersistentMeta("pv_whitelist", 12) var found = 0 if (pv_whitelist && pv_data.status == 0) { if (Player.ClientId != pv_data.id) { for(const id of pv_whitelist.Value.split("-")) { if (Player.ClientId == parseInt(id)) found = 1 } if ((pv_data.duration * 60) - parseInt(((new Date().getTime() - pv_data.start) / 1000 / 60)) < 0 && found == 0) { Player.Kick("^8Private server^7 is ^2open for rent.^7 Visit ^3discord.gg/ZTavern^7 ^2#shop^7") // this.Server.DB.metaService.deletePersistentMeta('pv_data', 12) //not adding for expired serv reasoning return } if (found == 0) { Player.Kick(`You are ^1not^5 whitelisted by ^3@${pv_data.id}`) return } } } else if ((pv_data.duration * 60) - parseInt(((new Date().getTime() - pv_data.start) / 1000 / 60)) < 0 && pv_data.id != parseInt(Player.ClientId)) { Player.Kick("^8Private server^7 is ^2open for rent.^7 Visit ^3discord.gg/ZTavern^7 ^2#shop^7") return } else if (pv_data.status == 0 && pv_data.id != parseInt(Player.ClientId)) { Player.Kick(`^8Private server^7 ^1locked^7 by ^7${pv_data.name}`) return } } if (this.is_raid_locked != "" && this.Manager.Server.Hostname) { var guild_data = await this.Server.DB.metaService.getPersistentMeta('guild_data', Player.ClientId) if (!guild_data || guild_data.Value.split(';')[0] != this.is_raid_locked && await this.is_staff(Player) == false) { Player.Kick(`^3Server^7 locked by ${this.is_raid_locked}^7 guild. ^3Rejoin next game over^7.`) return } } var guild_data = await this.Server.DB.metaService.getPersistentMeta('guild_data', Player.ClientId) if (!guild_data) { //name level money coins revive hp speed skills_count /* if (Player.ClientId == 63156) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^6-RFC-^7;" + 63156 + ";63156;6;1;0;0;0;0;0;0", Player.ClientId) } if (Player.ClientId == 75539) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^1-RS-^7;" + 75539 + ";75539;6;1;0;0;0;0;0;0", Player.ClientId) } else if (Player.ClientId == 12) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^8-KS-^7;" + 12 + ";12;6;1;0;0;0;0;0;0", Player.ClientId) } else if (Player.ClientId == 79746) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^1-ALC-^7;" + 79746 + ";79746;4;1;0;0;0;0;0;0", Player.ClientId) } else if (Player.ClientId == 65507) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^1-WNL-^7;" + 65507 + ";65507;4;1;0;0;0;0;0;0", Player.ClientId) } else if (Player.ClientId == 66060) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^5-ITD-^7;" + 66060 + ";66060;6;1;0;0;0;0;0;0", Player.ClientId) } else if (Player.ClientId == 40024) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^3-ILC-^7;" + 40024 + ";40024;4;1;0;0;0;0;0;0", Player.ClientId) } else if (Player.ClientId == 45982) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^3-AZI-^7;" + 45982 + ";45982;4;1;0;0;0;0;0;0", Player.ClientId) } else if (Player.ClientId == 135710) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^1-LOV-^7;" + 135710 + ";135710;4;1;0;0;0;0;0;0", Player.ClientId) }*/ /* if (Player.ClientId == 139379) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^6-LCS-^7;" + 139379 + ";139379;4;1;0;0;0;0;0;0", Player.ClientId) console.log("added to guild") }*/ if (Player.ClientId == 29979) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^2-TSC-^7;" + 29979 + ";29979;4;1;0;0;0;0;0;0", Player.ClientId) console.log("added to guild") } if (Player.ClientId == 132773) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^6-BHB-^7;" + 132773 + ";132773;4;1;0;0;0;0;0;0", Player.ClientId) console.log("added to guild") } if (Player.ClientId == 94673) { await this.Server.DB.metaService.addPersistentMeta('guild_data', "^1-ROH-^7;" + 94673 + ";94673;9;5;0;0;0;0;0;0", Player.ClientId) console.log("added to guild") } } const now = new Date(); const day = now.getDay(); const hours = now.getHours(); const minutes = now.getMinutes(); const raid_war_hour_start = 0; const raid_war_hour_end = 0; /* if (day != 0 && this.Manager.Server.Hostname.split('|')[1].includes("TRAINING")) { if (day == 6 && hours > raid_war_hour_start && hours < raid_war_hour_end) { Player.Kick("A ^1Raid War^7 is in ^3progress^7 !") return } var raidpass = await this.Server.DB.metaService.getPersistentMeta('raidpass', Player.ClientId) if (!raidpass) { Player.Kick("Purchase the ^3Raid Pass^7 on discord to ^2enter^7 or join on ^3Sunday^7 !") return } }*/ var kingID = await this.Server.Rcon.getDvar(`kingId`) if (kingID != "0") { if (inGame.ClientId != parseInt(kingID) && await this.Manager.Server.getClients().length == this.Manager.Server.MaxClients) { inGame.Kick("This slot is reserved by a ^3King^7 wait up to 1 minute, then try again") return } if (inGame.ClientId == parseInt(kingID)) { await this.Server.Rcon.setDvar(`kingId`, "0") } } inGame && this.Server.Rcon.executeCommandAsync(`rename ${inGame.Clientslot} ""`) inGame && this.Server.Rcon.executeCommandAsync(`resetname ${inGame.Clientslot}`) var tab = Player.Name.length > 7 ? "\t" : "\t\t" console.log(Utils.COD2BashColor("^3" + inGame.Name + tab + "^2joined^6 \t" + this.Manager.Server.Hostname.split('|')[1] + "^7")) var customName = await this.Server.DB.metaService.getPersistentMeta('custom_name', inGame.ClientId) if (customName && customName.Value && customName.Value != "") { var name = customName.Value inGame && this.Server.Rcon.executeCommandAsync(`rename ${inGame.Clientslot} "${name}"`) } this.SetPlayerStats(inGame) var role = Utils.getRoleFrom(inGame.PermissionLevel, 1).Name var customTag = await this.Server.DB.metaService.getPersistentMeta('custom_tag', inGame.ClientId) if(customTag && (customTag.Value == '^9F^7' || customTag.Value == '^8E^7' || customTag.Value == '^2D^7' || customTag.Value == '^4C^7' || customTag.Value == '^5B^7' || customTag.Value == '^6A^7' || customTag.Value == '^3S^7' || customTag.Value == '^3SS^7'|| customTag.Value == '^3SSS^7' || customTag.Value == '^6 I ^7' || customTag.Value == '^6II^7' || customTag.Value == '^6III^7' || customTag.Value == '^5IV^7' || customTag.Value == '^5V^7' || customTag.Value == '^5VI^7' || customTag.Value == '^5VII^7' || customTag.Value == '^1IIX^7' || customTag.Value == '^1IX^7' || customTag.Value == '^1-X-^7')) { role = customTag ? customTag.Value : Utils.stripString(role) this.Server.Rcon.executeCommandAsync(`setclantagraw ${inGame.Clientslot} "${role}"`) } else { if(customTag) { this.Server.DB.metaService.deletePersistentMeta('custom_tag', inGame.ClientId) } await this.Server.DB.metaService.addPersistentMeta('custom_tag', '^9F^7', inGame.ClientId) customTag = await this.Server.DB.metaService.getPersistentMeta('custom_tag', inGame.ClientId) role = customTag ? customTag.Value : Utils.stripString(role) this.Server.Rcon.executeCommandAsync(`setclantagraw ${inGame.Clientslot} "${role}"`) } if (this.Server.Hostname && (this.Server.Hostname.split("|")[1].includes("AGARTHA") || await this.is_brutus() == true || this.Server.Hostname.split("|")[1].includes("BUS"))) { this.SetZCoins(Player) } } //------------------------------------------ONPLAYERDISCONNECT-------------------------------------------------------------------------- //------------------------------------------ONPLAYERDISCONNECT-------------------------------------------------------------------------- //------------------------------------------ONPLAYERDISCONNECT-------------------------------------------------------------------------- async onPlayerDisconnect(Player) { // var inGame = await this.Server.getClient(Player.ClientId) if (Player.Data) Player.Data.connected = 0 await this.Server.DB.metaService.deletePersistentMeta('noShakeVote', Player.ClientId) if (Player.ClientId == 12) { this.Managers.forEach(manager => { if (manager) { manager.Server.Rcon.executeCommandAsync(`set bold ^2~^5[^1OWNER^5]^2~ ^5${Player.Name} ^7has left ^3${this.Manager.Server.Hostname.split("|")[1]}^7 !`) } }) return; } var king = await this.Server.DB.metaService.getPersistentMeta('king', Player.ClientId) var king2 = await this.Server.DB.metaService.getPersistentMeta('king2', Player.ClientId) var king4 = await this.Server.DB.metaService.getPersistentMeta('king4', Player.ClientId) if (king || king2 || king4) { this.Managers.forEach(manager => { if (manager) { manager.Server.Rcon.executeCommandAsync(`set bold ^2~^5[^3KING^5]^2~ ^5${Player.Name} ^7has left ^3${this.Manager.Server.Hostname.split("|")[1]}^7 !`) } }) } await this.Server.Rcon.executeCommandAsync(`resetname ${Player.Clientslot}`) await this.Server.Rcon.executeCommandAsync(`resetclantag ${Player.Clientslot}`) var tab = Player.Name.length >= 7 ? "\t" : "\t\t" console.log(Utils.COD2BashColor("^3" + Player.Name + tab + "^1left^6 \t" + this.Manager.Server.Hostname.split("|")[1] + "^7")) } async get_pv_data(Player) { var pv_owner = await this.Server.DB.metaService.getPersistentMeta('pv_data', 12) if (!pv_owner) { Player.Tell("error get_pv_data") return } var pv_data = [] var pv_data_str = pv_owner.Value.split('-') pv_data.id = parseInt(pv_data_str[0]) pv_data.duration = parseInt(pv_data_str[1]) if (parseInt(pv_data_str[2]) == 1) pv_data.status = 1 else pv_data.status = 0 pv_data.name = Player.Name var custom_name = await this.Server.DB.metaService.getPersistentMeta('custom_name', Player.ClientId) if (custom_name) pv_data.name = custom_name.Value pv_data.start = parseInt(pv_data_str[3]) return pv_data } async is_brutus() { for(const port of this.botb_port) { if (port == await this.Server.Rcon.getDvar("net_port")) return true } return false } async is_raid() { for(const port of this.raid_port) { if (port == await this.Server.Rcon.getDvar("net_port")) return true } return false } } module.exports = Plugin