diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-04-09 13:33:57 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-04-09 13:33:57 -0300 |
commit | cf18ce071c79ae37e14ea38943e0b1d88da70a7b (patch) | |
tree | f9159c9b60b3018300dd22ffba0d797bc5e828e5 /npc/annuals/xmas/core.txt | |
parent | 8a4bf716002a017de77fe7df301ef8e4aaf00a2e (diff) | |
download | serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.tar.gz serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.tar.bz2 serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.tar.xz serverdata-cf18ce071c79ae37e14ea38943e0b1d88da70a7b.zip |
Override
Diffstat (limited to 'npc/annuals/xmas/core.txt')
-rwxr-xr-x | npc/annuals/xmas/core.txt | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/npc/annuals/xmas/core.txt b/npc/annuals/xmas/core.txt new file mode 100755 index 00000000..2abeefce --- /dev/null +++ b/npc/annuals/xmas/core.txt @@ -0,0 +1,229 @@ + +function script XmasNaughty { + @xmas_karma = ((XMASTIME & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT); + if((@xmas_karma - @karma_bonus) >= 0) + goto L_SetNaughty; + goto L_ResetNaughty; + +L_SetNaughty: + @xmas_karma = (@xmas_karma - @karma_bonus); + goto L_Return; + +L_ResetNaughty: + @xmas_karma = 0; + goto L_Return; + +L_Return: + XMASTIME = (XMASTIME & ~(NIBBLE_1_MASK) | (@xmas_karma << NIBBLE_1_SHIFT)); + @karma_bonus = 0; + return; +} + +function script XmasNice { + @xmas_karma = ((XMASTIME & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT); + if((@xmas_karma + @karma_bonus) < 16) + goto L_SetNice; + goto L_ResetNice; + +L_SetNice: + @xmas_karma = (@karma_bonus + @xmas_karma); + goto L_Return; + +L_ResetNice: + @xmas_karma = 15; + goto L_Return; + +L_Return: + XMASTIME = (XMASTIME & ~(NIBBLE_1_MASK) | (@xmas_karma << NIBBLE_1_SHIFT)); + @karma_bonus = 0; + return; +} + +function script XmasXpReward { + if (BaseLevel >= 10) + goto L_HigherLevel; + goto L_LowLevel; + +L_HigherLevel: + getexp ((BaseLevel / 10) * ($@xmas_base_bonus_xp * BaseLevel)), 0; + goto L_Return; + +L_LowLevel: + getexp ($@xmas_base_bonus_xp * BaseLevel), 0; + goto L_Return; + +L_Return: + return; +} + +function script XmasSetState { + XMASTIME = (XMASTIME & ~(NIBBLE_0_MASK) | (@xmas_state << NIBBLE_0_SHIFT)); + return; +} + +function script XmasSetSide { + XMASTIME = XMASTIME | $@xmas_side_bit; + return; +} + +function script XmasSetRoute { + XMASTIME = XMASTIME | $@xmas_route_bit; + return; +} + +function script XmasThrowOut { + XMASTIME = XMASTIME | $@xmas_thrown_out_bit; + return; +} + +function script XmasSetBossStart { + XMASTIME = XMASTIME | $@xmas_boss_start_bit; + return; +} + +function script XmasSetBossHero { + XMASTIME = XMASTIME | $@xmas_boss_hero_bit; + return; +} + +function script XmasSetReward { + @xmas_endgame = 0; + @xmas_reward_side = 0; + @xmas_reward_tally = 0; + if(@xmas_side) + goto L_SetSide; + goto L_NotSetSide; + +L_SetSide: + @xmas_reward_side = 1; + @xmas_reward_tally = (@xmas_reward_tally + ($@xmas_reward_max_karma - @xmas_karma)); + goto L_SetRewardBonus; + +L_NotSetSide: + @xmas_reward_tally = (@xmas_reward_tally + @xmas_karma); + goto L_SetRewardBonus; + +L_SetRewardBonus: + if(@xmas_boss_hero) + @xmas_reward_tally = (@xmas_reward_tally + $@xmas_reward_hero_boss); + if(@xmas_all_helpers) + @xmas_reward_tally = (@xmas_reward_tally + $@xmas_reward_all_helpers); + if(@xmas_all_lists) + @xmas_reward_tally = (@xmas_reward_tally + $@xmas_reward_all_lists); + //formula should: + if (@xmas_reward_tally > 5) + @xmas_reward_lower_bound = 2 * @xmas_reward_tally - rand(5); + if (@xmas_reward_tally <= 5) + @xmas_reward_lower_bound = @xmas_reward_tally; + @xmas_reward_upper_bound = @xmas_reward_lower_bound + ((Luk) / 5); + @xmas_reward = (rand(@xmas_reward_lower_bound, @xmas_reward_upper_bound)); + @xmas_reward_lower_bound = 0; + @xmas_reward_upper_bound = 0; + return; +} + +function script XmasMainXpBpReward { + callfunc "XmasSetReward"; + + if(BaseLevel >= 99) + goto L_EndGameReward; + goto L_LevelingReward; + +L_EndGameReward: + @xmas_bp_reward = 100 + rand(@xmas_reward, 2 * @xmas_reward); + BOSS_POINTS = BOSS_POINTS + @xmas_bp_reward; + message strcharinfo(0), "You gain " + @xmas_bp_reward + " Bosspoints, giving you a total of " + BOSS_POINTS + "."; + @xmas_bp_reward = 0; + return; + +L_LevelingReward: + if(@xmas_reward >= $@xmas_reward_tally_rare) + goto L_XmasLevel; + goto L_XmasExp; + +L_XmasLevel: + BaseLevel = BaseLevel + 1; + return; + +L_XmasExp: + getexp ((@xmas_reward * BaseLevel * (BaseLevel + 10)) / 10), 0; + return; +} + +function script XmasMainItemReward { + callfunc "XmasSetReward"; + + if (($@xmas_time == $@xmas_reward_time) && ((@xmas_reward_start_state) || (@xmas_reward1_done_state))) + goto L_FinalGift; + if (($@xmas_time == $@xmas_reward_time) && ((@xmas_reward_done_state) || (@xmas_reward2_done_state))) + goto L_GotGift; + if ($@xmas_time == $@xmas_reward_time) + goto L_NoGift; + goto L_Return; + +L_GotGift: + mes "Hey, this is not for you!"; + goto L_Return; + +L_NoGift: + mes "Oh someone got a present. Maybe you can get one too if help the right person?"; + goto L_Return; + +L_FinalGift: + mes "[To: " + strcharinfo(0) + "]"; + mes "[From: " + $@xmas_present_from$[@xmas_reward_side] + "]"; + mes "O look, a present from " + $@xmas_present_from$[@xmas_reward_side]; + next; + getinventorylist; + if (@inventorylist_count > 97) + goto L_FullInv; + @xmas_reward = (@xmas_reward + ((BaseLevel + 10)/10)); + if (debug > 0) + message strcharinfo(0), "Reward variable: " + @xmas_reward; + @xmas_uncommon_slot1 = rand(getarraysize($@xmas_uncommon_reward$)); + @xmas_uncommon_slot2 = rand(getarraysize($@xmas_uncommon_reward$)); + if(@xmas_reward >= $@xmas_reward_tally_rare) + @xmas_reward_item$ = $@xmas_rare_reward$[@xmas_reward_side]; + if(@xmas_reward >= $@xmas_reward_tally_common) + @xmas_reward_item1$ = $@xmas_uncommon_reward$[@xmas_uncommon_slot1]; + @xmas_reward_item2$ = $@xmas_uncommon_reward$[@xmas_uncommon_slot2]; + if(checkweight("Iten", 1) == 0) + goto L_FullInv; + if(@xmas_reward >= $@xmas_reward_tally_rare) + getitem @xmas_reward_item$, 1; + if(@xmas_reward >= $@xmas_reward_tally_common) + getitem @xmas_reward_item1$, 1; + getitem @xmas_reward_item2$, 1; + @xmas_uncommon_slot1 = 0; + @xmas_uncommon_slot2 = 0; + @xmas_reward_item$ = ""; + @xmas_reward_item1$ = ""; + @xmas_reward_item2$ = ""; + if (@xmas_reward_start_state) + @xmas_state = $@xmas_reward2_done; + if (@xmas_reward1_done_state) + @xmas_state = $@xmas_reward_done; + callfunc "XmasSetState"; + goto L_Return; + +L_FullInv: + mes "\"You have no place to put the present.\""; + goto L_Return; + +L_Return: + return; +} + +function script XmasCheckOld { + if(XMASYEAR == $XMAS_TIME_KEY[5]) + goto L_Return; + goto L_OldMatch; + +L_OldMatch: + XMASTIME = 0; + XMASYEAR = $XMAS_TIME_KEY[5]; + goto L_Return; + +L_Return: + return; +} |