summaryrefslogblamecommitdiff
path: root/world/map/npc/functions/clear_vars.txt
blob: e98def7d4ba791d97cf8fc2892d2c7139ae21c49 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12

                       
                              
 







                                            






                            
                       












                            
                            






                       
                            





                                              
 
                                                                
 










                                          
 

                                  



















                       
           
 























                                
 


                       
 
             
                                
           
 
                
                       
           
 
           
                              
           
 
             
                          

                                
 


                    
 
           
                                   
           
 


                                              




                                 
           
 

                               








                                   
           
 













                                   

                                






                             
           
 
             
                          
           
 


                  
 
           
                  
           
 
             
                          
           
 
           
                    
           
 
        
                                 
                                 
           
 
          




                                                                                                           




                                                                                                          





                                                                                                  
           
 




                                                                     
        

                                                   

                                           

                                                

                           







                                              


                                                
           
 

                                        
                              
                             
                  

                                          
           
 
                
                                  
                        
           
 





                                                  
 
       
                      




                                                                                                      
                                           
           
 

























































                                                                                                            
           
 

                                                                                               

                                                                                                  
                      
                   
           
 

                                                                       

                                                                                                      
                      
                   
           
 

                                                                         

                                                                                                       
                     
                    
           
 

                                                                     

                                                                                                     
                     
                  
           
 

                                                                                             

                                                                                                        
           
 






                                                                                            
 
                


                          



                                                                             

 
                               
 
                      


                                                                 
                     


































                                                          






                                                          

                                                                                          
           
 
// Clears old variables

function|script|ClearVariables
{
    if(@login_event != 1) goto L_Deprecated;

    callsub S_Bernard_Mikhail;
    callsub S_Sarah;
    callsub S_Vincent;
    callsub S_Sandra;
    callsub S_Desert;
    callsub S_Bandit;
    callsub S_Tutorial;
    callsub S_Heathin;
    callsub S_Remove_Skills;
    callsub S_FixBank;
    callsub S_Angus;
    callsub S_Flags;
    callsub S_Bitmask;
    callsub S_BlueSage;

    callsub S_Easter;
    callsub S_Easter2008;
    callsub S_Easter2009;
    callsub S_Easter2010;
    callsub S_Easter2011;
    callsub S_Easter2012;
    callsub S_Halloween2006;
    callsub S_Halloween2007;
    callsub S_Halloween2008;
    callsub S_Halloween2009;
    callsub S_Halloween2010;
    callsub S_Halloween2011;
    callsub S_Halloween2016;
    callsub S_Xmas2006;
    callsub S_Xmas2007;
    callsub S_Xmas2008;
    callsub S_Xmas2009;
    callsub S_Xmas2010;
    callsub S_Xmas2011;
    callsub S_Xmas2012;
    callsub S_Valentine2021;

    callsub S_Misc;
    return; // go back to global handler

S_Return: // this is to end execution of a sub
    return;

////////////////////////////////////////////////////////////////

S_Xmas2007:
    if(!QUEST_xmas07_state) goto S_Return;
    set QUEST_xmas07_state, 0;
    set QUEST_xmas07_milk, 0;
    set QUEST_xmas07_cookies, 0;
    set QUEST_xmas07_presents, 0;
    return;

S_Halloween2007:
    set QUEST_Halloween07_state, 0;
    return;

S_Xmas2006:
    if(!XMASQUEST1) goto S_Return;
    set XMASQUEST1, 0;
    set XMASQUEST2, 0;
    set XMASQUEST3, 0;
    set XMASQUEST4, 0;
    set XMASQUEST5, 0;
    set XMASQUEST6, 0;
    set XMASQUEST7, 0;
    set XMASQUEST8, 0;
    set XMASQUEST9, 0;
    set XMASQUEST10, 0;
    set XMASQUEST11, 0;
    set XMASQUEST12, 0;
    set XMASQUEST13, 0;
    set XMASQUEST14, 0;
    set XMASQUEST15, 0;
    set XMASQUEST16, 0;
    set XMASQUEST17, 0;
    set XMASQUEST18, 0;
    set XMASQUEST19, 0;
    set XMASQUEST20, 0;
    return;

S_Halloween2006:
    if(!HWQUEST1) goto S_Return;
    set HWQUEST1, 0;
    set HWQUEST2, 0;
    set HWQUEST3, 0;
    set HWQUEST4, 0;
    set HWQUEST5, 0;
    set HWQUEST6, 0;
    set HWQUEST7, 0;
    set HWQUEST8, 0;
    set HWQUEST9, 0;
    set HWQUEST10, 0;
    set HWQUEST11, 0;
    set HWQUEST12, 0;
    set HWQUEST13, 0;
    set HWQUEST14, 0;
    set HWQUEST15, 0;
    set HWQUEST16, 0;
    set HWQUEST17, 0;
    set HWQUEST18, 0;
    set HWQUEST18, 0;
    set HWQUEST19, 0;
    set HWQUEST20, 0;
    return;

S_Easter:
    set EasterQuest, 0;
    return;

S_Easter2008:
    set QUEST_Easter08_state, 0;
    return;

S_Halloween2008:
    set Halloween08, 0;
    return;

S_Xmas2008:
    set QUEST_xmas08_state, 0;
    return;

S_Easter2009:
    set QUEST_Easter09, 0;
    set QUEST_Easter09_slots, 0;
    return;

S_Halloween2009:
    set Candyman, 0;
    return;

S_Xmas2009:
    set QUEST_Christmas09_state, 0;
    return;

S_Easter2010:
    if(!Easter_2010_QuestState) goto S_Return;
    set Easter_2010_QuestState, 0;
    set Easter_2010_EggState1, 0;
    set Easter_2010_EggState2, 0;
    set Easter_2010_EggState3, 0;
    set Easter_2010_EggState4, 0;
    set Easter_2010_EggState5, 0;
    return;

S_Halloween2010:
    if(!hween10) goto S_Return;
    set hween10, 0;
    set hween10_collect_canpump, 0;
    set hween10_credits, 0;
    set hween10_collect, 0;
    set hween10_collect_mmallow, 0;
    set hween10_collect_jelskul, 0;
    set hween10_bonecount, 0;
    set hween10_collect_tondel, 0;
    set hween10_paid, 0;
    return;

S_Halloween2016:
    set HWEEN16, 0;
    if(!hween16) goto S_Return;
    set hween16, 0;
    set hween16_collect_canpump, 0;
    set hween16_credits, 0;
    set hween16_collect, 0;
    set hween16_collect_mmallow, 0;
    set hween16_collect_jelskul, 0;
    set hween16_bonecount, 0;
    set hween16_collect_tondel, 0;
    set hween16_paid, 0;
    return;

S_Xmas2010:
    if(!Xmas2010) goto S_Return;
    set Count_Yellow, 0;
    set Count_White, 0;
    set Maze, 0;
    set Yellow, 0;
    set White, 0;
    set Xmas2010, 0;
    set Golbenez_Inn_Cost, 0;
    return;

S_Easter2011:
    set QUEST_Easter11, 0;
    return;

S_Halloween2011:
    set hw2011, 0;
    return;

S_Xmas2011:
    set xmas11, 0;
    return;

S_Easter2012:
    set QUEST_Easter12, 0;
    return;

S_Xmas2012:
    set xmas2012, 0;
    return;

S_Angus:
    set QUEST_clothdyer_angus, 0;
    set QUEST_clothdyer_state, 0;
    return;

S_Bitmask:
    // move Scythe quest into bitmasked variable QUEST_Hurnscald
    if (QUEST_Scythe_state)
        set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_1_MASK)) | (QUEST_Scythe_state << NIBBLE_1_SHIFT);
    set QUEST_Scythe_state, 0;

    // move Demon Mask quest into bitmasked variable QUEST_Hurnscald
    if (QUEST_demon_mines)
        set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_2_MASK)) | (QUEST_demon_mines << NIBBLE_2_SHIFT);
    set QUEST_demon_mines, 0;

    // move Inspector quest into bitmasked variable QUEST_Hurnscald
    set @inspector, ((QUEST_Hurnscald & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
    if (Inspector > @inspector)
        set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_3_MASK)) | (Inspector << NIBBLE_3_SHIFT);
    set Inspector, 0;
    set @inspector, 0;
    return;

S_BlueSage:
    if (QUEST_BlueSage & (1 << 7))
        set QUEST_BlueSage, QUEST_BlueSage & ~((1<<5)|(1<<6)|(1<<7));
    return;

S_Flags:
    if (Open_Underground_Palace_Barrier)
        set FLAGS, FLAGS | FLAG_OPENED_UNDERGROUND;
    set Open_Underground_Palace_Barrier, 0;

    if (Naem_Quest_Done)
        set FLAGS, FLAGS | FLAG_GOT_NAEM_GLOVES;
    set Naem_Quest_Done, 0;

    if (ChristmasQuest)
        set FLAGS, FLAGS | FLAG_SNOWMAN;
    set ChristmasQuest, 0;

    if (ChristmasQuest2)
        set FLAGS, FLAGS | FLAG_SANTAS_HELPER;
    set ChristmasQuest2, 0;

    if (ChestQuest)
        set FLAGS, FLAGS | FLAG_HURNSMINE_CHEST;
    set ChestQuest, 0;
    return;

S_FixBank:
    if(#BankAccount >= 0) goto S_Return;
    if (Zeny >= -#BankAccount)
        goto S_Fix_Bank_Full;
    // Partial fix
    set #BankAccount, #BankAccount + Zeny;
    set Zeny, 0;
    return;

S_Fix_Bank_Full:
    set Zeny, Zeny + #BankAccount;
    set #BankAccount, 0;
    return;

S_Remove_Skills:
    if(getskilllv(SKILL_TRADE) < 1) goto S_Return;
    setskill SKILL_TRADE, 0;
    setskill SKILL_PARTY, 0;
    setskill SKILL_EMOTE, 0;
    return;

S_Misc:
    set Death_Kill, 0;
    set Scorp, 0; // Tulimshar and Mine Variables which aren't used anymore
    set Bugleg, 0; // Tulimshar and Mine Variables which aren't used anymore
    set KatzeBeenOutside, 0; // variable was moved to a temporary player variable
    set LastHiss, 0; // variable was moved to Nibble 1 of the variable Katze
    set CaveSnakeLamp, 0; // quest was turned into a Daily Quest, so the variable isn't needed anymore
    set MAGIC_CAST_TICK, 0; // legacy stuff
    return;

S_Tutorial:
    if(!TUTORIAL && !sorfina) goto S_Return;
    //TUTORIAL to STARTAREA
    if ((sorfina) || (kaan) || (hasan) || (tanisha))
        goto S_ResetAllTut;
    set @tutorial_tmp, ((TUTORIAL & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
    // Tutorial
    // Nibble 0 (sorfina, tanisha, kaan & hasan)
    set STARTAREA, (STARTAREA & ~(NIBBLE_0_MASK) | (@tutorial_tmp << NIBBLE_0_SHIFT));
    // Nibble 1 (valon)
    set @tutorial_tmp, ((TUTORIAL & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
    set @valon_done, (TUTORIAL & (1 << 7));
    set @valon_start, (TUTORIAL & (1 << 6));
    if (@valon_start)
        set @tutorial_tmp, (@tutorial_tmp + 2);
    if (@valon_done)
        set @tutorial_tmp, 7;
    set STARTAREA, (STARTAREA & ~(NIBBLE_1_MASK) | (@tutorial_tmp << NIBBLE_1_SHIFT));
    // Nibble 2 (Counts)
    set @tutorial_tmp, ((TUTORIAL & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
    set STARTAREA, (STARTAREA & ~(NIBBLE_2_MASK) | (@tutorial_tmp << NIBBLE_2_SHIFT));
    // Nibble 3 (Morgan)
    set @tutorial_tmp, ((TUTORIAL & NIBBLE_6_MASK) >> NIBBLE_6_SHIFT);
    set STARTAREA, (STARTAREA & ~(NIBBLE_3_MASK) | (@tutorial_tmp << NIBBLE_3_SHIFT));
    // Nibble 4 (Zegas) Barrels shuffled
    set @zegas_done, (TUTORIAL & (1 << 23));
    set @zegas_start, (TUTORIAL & (1 << 16));
    set @zegas_met, (TUTORIAL & (1 << 30));
    set @tutorial_tmp, 0;
    if (@zegas_met)
        set @tutorial_tmp, 1;
    if (@zegas_start)
        set @tutorial_tmp, 2;
    if (@zegas_done)
        set @tutorial_tmp, 4;
    set STARTAREA, (STARTAREA & ~(NIBBLE_4_MASK) | (@tutorial_tmp << NIBBLE_4_SHIFT));
    // Nibble 5 (Barrels)
    set @tutorial_tmp, 0;
    set STARTAREA, (STARTAREA & ~(NIBBLE_5_MASK) | (@tutorial_tmp << NIBBLE_5_SHIFT));
    // Nibble 6 (Barrels)
    set STARTAREA, (STARTAREA & ~(NIBBLE_6_MASK) | (@tutorial_tmp << NIBBLE_6_SHIFT));
    set TUTORIAL, 0;
    return;

S_ResetAllTut:
    set sorfina, 0;
    set tanisha, 0;
    set hasan, 0;
    set kaan, 0;
    set TUTORIAL, 0;
    set STARTAREA, 0;
    set FLAGS, FLAGS &~ FLAG_TUTORIAL_DONE;
    return;

S_Heathin:
    if(!HEATHIN_QUEST) goto S_Return;
    set QUEST_NorthTulimshar, (QUEST_NorthTulimshar & ~(NIBBLE_6_MASK)) | (HEATHIN_QUEST << NIBBLE_6_SHIFT);
    set HEATHIN_QUEST, 0;
    return;

S_Desert: // move guard and miner subquest into Byte 2 (Nibble 4 and 5) of QUEST_SouthTulimshar
    if(!TMW_QUEST || TMW_QUEST > 40) goto S_Return;
    set @miners, TMW_Quest - 12;
    set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@miners << BYTE_2_SHIFT));
    set TMW_Quest, 12;
    set @miners, 0;
    return;

S_Sandra: // move Sandra subquest into Nibble 3 of QUEST_SouthTulimshar
    if(!TMW_QUEST || TMW_QUEST > 12) goto S_Return;
    set @sandra, TMW_Quest - 10;
    set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_3_MASK) | (@sandra << NIBBLE_3_SHIFT));
    set TMW_Quest, 10;
    set @sandra, 0;
    return;

S_Vincent: // move Vincent subquest into Nibble 2 of QUEST_SouthTulimshar
    if(!TMW_QUEST || TMW_QUEST > 10) goto S_Return;
    set @vincent, TMW_Quest - 8;
    set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_2_MASK) | (@vincent << NIBBLE_2_SHIFT));
    set TMW_Quest, 8;
    set @vincent, 0;
    return;

S_Sarah: // move Sarah subquest into Nibble 1 of QUEST_SouthTulimshar
    if(!TMW_QUEST || TMW_QUEST > 8) goto S_Return;
    set @sarah, TMW_Quest - 6;
    set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_1_MASK) | (@sarah << NIBBLE_1_SHIFT));
    set TMW_Quest, 6;
    set @sarah, 0;
    return;

S_Bernard_Mikhail: // move Bernard and Mikhail subquest into Nibble 0 of QUEST_SouthTulimshar
    if(!TMW_QUEST || TMW_QUEST > 6) goto S_Return;
    set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_0_MASK) | (TMW_Quest << NIBBLE_0_SHIFT));
    set TMW_Quest, 0;
    return;

S_Bandit: // move Bandit subquest into Nibble 0 of QUEST_Hurnscald
    if(!TMW_QUEST) goto S_Return;
    set @bandit, TMW_Quest - 40;
    set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_0_MASK) | (@bandit << NIBBLE_0_SHIFT));
    set TMW_Quest, 40;
    set @bandit, 0;
    return;

S_Valentine2021:
    set #VALENTINE2021, 0;
    return;

L_Deprecated:
    debugmes "Explicitely calling ClearVariables after login is deprecated.";
    mapexit;
}


function|script|ClearGlobalVars
{
    goto L_IlliaClear;
// Clear the array which saves the teams who beat the Illia quest
L_IlliaClear:
    set $@loop, 0;
    goto L_IlliaLoop;

L_IlliaLoop:
    if ($Illia_Win_Records$[$@loop] == "")
        goto L_EventClear;

    set $Illia_Win_Records$[$@loop], "";

    set $@loop, $@loop + 1;
    goto L_IlliaLoop;

L_EventClear:
    set $@loop, 0;

// Clear global variable used in the Halloween event 2009
    set $CandyOpsComplete, 0;

// Clear global variables used in the Easter event 2010
    set $Easter_2010_Npc_State1, 0;
    set $Easter_2010_Npc_State2, 0;
    set $Easter_2010_Egg_Loc_State1, 0;
    set $Easter_2010_Egg_Loc_State2, 0;
    set $Easter_2010_Egg_Loc_State3, 0;
    set $Easter_2010_Egg_Loc_State4, 0;
    set $Easter_2010_Egg_Loc_State5, 0;

// Clear global variables used in the Halloween event 2010
    set $hween10, 0;
    set $hween10_tondel, 0;
    set $hween10_mmallow, 0;
    set $hween10_jelskul, 0;
    set $hween10_canpump, 0;

// Clear global variable used in Christmas event 2010
    set $Golbenez_Inn_Cost, 0;

// Clear global variables used in the Halloween event 2016
    set $hween16, 0;
    set $hween16_tondel, 0;
    set $hween16_mmallow, 0;
    set $hween16_jelskul, 0;
    set $hween16_canpump, 0;

// Variable was used in Voltain's script, was renamed and turned into a temporary variable
    set $state, 0;
    return;
}