From 5409f2f899a685425757932c13154bc6340463d1 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Fri, 1 May 2020 06:30:33 -0300 Subject: Sketch about the keys to open the gate --- npc/042-10/ctrl.txt | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) (limited to 'npc/042-10') diff --git a/npc/042-10/ctrl.txt b/npc/042-10/ctrl.txt index 6b595d7d5..2915c0b4a 100644 --- a/npc/042-10/ctrl.txt +++ b/npc/042-10/ctrl.txt @@ -110,4 +110,77 @@ OnTouch: end; } +//////////////////////////////////////////////////////////////////// +// TODO: Catazuli spots +// TODO: Door Mechanism +// TODO: Spawn monsters +// KamelotSwitch( SWITCH ID ) +function script KamelotSwitch { + .@id=getarg(0); + .@g=getcharid(2); + if (!($KAMELOT_KEYMASK[.@g] & $KAMELOT_KEY[.@g])) end; // Don't care + .@st=($KAMELOT_PASSMASK[.@g] & .@id); + mes l("Status: %s", (.@st ? l("Active") : l("Inactive") )); + if (!countitem(KamelotKey)) + close; + mes "Change switch status?"; + next; + if (askyesno() == ASK_YES) { + $KAMELOT_PASSMASK[.@g]=$KAMELOT_PASSMASK[.@g]^.@id; + // The meaning of st is now mixed + if (.@st) + setnpcdisplay instance_npcname(.name$), NPC_SWITCH_OFFLINE; + else + setnpcdisplay instance_npcname(.name$), NPC_SWITCH_ONLINE; + } + // Check password and delete key + if ($KAMELOT_PASSMASK[.@g] == $KAMELOT_PASSCODE[.@g]) { + delitem KamelotKey, 1; + $KAMELOT_QUEST=$KAMELOT_QUEST|32; + mesc l("Your hear a clink, and the key breaks."), 2; + // Player Reward for completing this stage + getitem GuildCoin, 1; + getexp $KAMELOT_MX[.@g]*50, $KAMELOT_MX[.@g]*10; + // Guild Reward for completing this stage + .@ggp=1200+$KAMELOT_MX[.@g]*5; + .@gxp=$KAMELOT_MX[.@g]*25; + $GUILD_BANK[.@g]+=.@ggp; + guildgetexp(.@gxp); // 25xp per player average level (max 2500/3750) + // Announce + mapannounce getmap(), strcharinfo(0)+" has opened the gate!", 0; + // Guild Master Notification + .@gm$=getguildmaster(.@g); + if (!getcharid(3, .@gm$)) return; + .@gma=getcharid(3, .@gm$); + .@gmb=getcharid(0, .@gm$); + if (!isloggedin(.@gma, .@gmb)) return; + message .@gm$, strcharinfo(0)+" opened the gate: Guild GP +"+.@ggp+" Guild XP +"+.@gxp; + + } + return; +} + +042-10,128,85,0 script #K4210Note01 NPC_NO_SPRITE,{ + .@g=getcharid(2); + if (!($KAMELOT_KEYMASK[.@g] & $KAMELOT_KEY[.@g])) end; // Don't care + if ($KAMELOT_PASSCODE[.@g] & 1) + dispbottom l("Active"); + else + dispbottom l("Inactive"); + end; + +OnInit: + .distance=2; + end; +} + +042-10,128,85,0 script #K4210Switch01 NPC_SWITCH_OFFLINE,{ + KamelotSwitch(1); + close; + +OnInit: + .distance=2; + .id=1; + end; +} -- cgit v1.2.3-60-g2f50