// TMW2 Script // Author: // Ernando (Creator) // Jesusalva // Description: // Hunger Games™ version for The Mana World Brazil v2, created by Ernando Quirino. // Entrance to Hungry Quirin Arena // Variables: // $@EQ_STATUS // 0: Register open // 1: Fight happening // 2: Event finished 003-1,48,73,0 script Quirin NPC_ERNANDO,{ if (is_gm()) goto L_Hub; if ($EVENT$ != "Hunger") goto L_NoSeason; if ($@EQ_STATUS == 0) goto L_Register; hello; end; L_NoSeason: npctalkonce l("Heya!"); end; L_Register: mesn; mesq l("Hello player, do you want to participate on HUNGRY QUIRIN event?!"); next; select l("Yeah, sign me up!"), l("No, not at the moment."), l("Information"); switch (@menu) { case 1: goto L_SignUp; case 2: close; case 3: goto L_Info; } L_Info: mesn col(l("Hungry Quirin Arena Rules"), 3); mesc l("1- You must not be carrying anything with you."); mesc l("2- You must not use a cart. If you do, YOU WILL BE SEVERELY PENALIZED."); mesc l("3- All items from the Arena are from the Arena. You won't carry any of them back with you."); mesc l("4- Experience and Gold earned during this event can be kept."); next; mesn col(l("Hungry Quirin Arena Information"), 3); mesc l("1- Survive. If you die, you will gain nothing. And people want to kill you."); mesc l("2- Take everything you can find. You'll be warped without equip or healing items! Kill monsters to get some stuff too!"); mesc l("3- Trust nobody. There can be only one winner, and it must be you."); mesc l("4- Take Care. Wildlife can kill you too. There can be traps."); mesc l("5- Trust yourself. You will lose the moment you enter in panic. This arena is not for the weak-willed!"); next; goto L_Register; L_SignUp: // Player cannot be carrying anything getinventorylist; if(@inventorylist_count>=1) goto L_Full; getcartinventorylist(); if(@cartinventorylist_count>=1) goto L_Full; // Warp player if (rand(1,2) == 1) warp "001-8", rand(42, 57), 42; else warp "001-8", rand(42, 57), 57; // Prevent further movements! setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_ITEM|PCBLOCK_MOVE|PCBLOCK_COMMANDS, true); //dispbottom l("Stay ready!"); dispbottom l("##1DON'T MOVE until the signal. Stay ready! If you move, you will desync client!"); close; L_Full: mesn; mesq l("You cannot bring anything to the arena. Please put everything on the storage."); close; L_Hub: mesn; mesc l("Welcome to HUNGRY QUIRIN ARENA mangment panel."); mesc l("Current Event: "+$EVENT$); mesc l("Event stage: "+$@EQ_STATUS); mes l("Current player count: @@/5 must be online.", getusers(1)); mes l("Current arena player count: @@ on map. (Min. 3 to begin event)", getmapusers("001-8")); // Open event? Minimum 5 connections or GM_OVERRIDE flag. if ($EVENT$ == "" && (getusers(1) >= 5 || $@GM_OVERRIDE)) { next; mesc l("Activate event?"), 1; if (askyesno() == ASK_YES) { $EVENT$="Hunger"; setcells "001-8", 41, 58, 41, 43, 6, "qhubN"; setcells "001-8", 41, 58, 56, 58, 6, "qhubS"; announce("##1HUNGRY QUIRIN EVENT: ##3##BRegister is now open! Talk to Quirin, on Tulimshar Guardhouse!", bc_all|bc_npc); } close; } // Main Control menu. Not using l() on purpose. select rif($@EQ_STATUS == 0 && (getmapusers("001-8") >= 3 || $@GM_OVERRIDE), "Start Event!"), rif($@EQ_STATUS == 1, "Send wave of items and monsters!"), rif($@EQ_STATUS == 0 && $@GM_OVERRIDE && is_admin(), "[DEBUG] Join Event"), rif($@EQ_STATUS == 0 && $@GM_OVERRIDE && is_admin(), "[DEBUG] Join & Start Event"), "I'm done."; if (@menu == 1) donpcevent("#QuirinoHUB::OnStart"); if (@menu == 2) donpcevent("#QuirinoHUB::OnSendWave"); if (@menu == 3) goto L_Register; if (@menu == 4) { addtimer 1000, "Quirin::OnDebugReg"; goto L_SignUp; } close; OnDebugReg: donpcevent("#QuirinoHUB::OnStart"); end; OnInit: .sex=G_MALE; .distance=5; end; } /* Blockwalls TileCondition and masks for setcells manaplus/src/enums/resources/map/blockmask.h WALL = 0x80, // 1000 0000 = 128 AIR = 0x04, // 0000 0100 = 4 WATER = 0x08, // 0000 1000 = 8 GROUND = 0x10, // 0001 0000 = 16 GROUNDTOP = 0x20, // 0010 0000 = 32 PLAYERWALL = 0x40, // 0100 0000 = 64 MONSTERWALL = 0x02 // 0000 0010 = 2 */