From 1af3466453ca15ffb829c8706165830e622cb360 Mon Sep 17 00:00:00 2001 From: ErikasKontenis Date: Sun, 5 Jan 2020 17:15:09 +0200 Subject: [PATCH] introduce raid sacrifices and bonus exp if you eat sabrehaven talon --- New Text Document.txt | 2 +- data/actions/actions.xml | 1 + .../actions/scripts/misc/sabrehaven_talon.lua | 10 + data/events/scripts/player.lua | 2 +- data/items/items.srv | 5 +- data/movements/movements.xml | 10 + .../movements/scripts/misc/raid_sacrifice.lua | 38 + data/raids/ferumbras.xml | 14 + data/raids/libertybaypirates.xml | 11 + data/raids/morgaroth.xml | 14 + data/raids/raids.xml | 3 + data/talkactions/scripts/raid.lua | 13 + data/talkactions/talkactions.xml | 1 + data/world/houses.xml | 138 +- data/world/map.otbm | Bin 79813161 -> 79813273 bytes sabrehaven.sql | 6321 +---------------- 16 files changed, 196 insertions(+), 6387 deletions(-) create mode 100644 data/actions/scripts/misc/sabrehaven_talon.lua create mode 100644 data/movements/scripts/misc/raid_sacrifice.lua create mode 100644 data/raids/ferumbras.xml create mode 100644 data/raids/libertybaypirates.xml create mode 100644 data/raids/morgaroth.xml create mode 100644 data/talkactions/scripts/raid.lua diff --git a/New Text Document.txt b/New Text Document.txt index 78fcfa8..7adc6b7 100644 --- a/New Text Document.txt +++ b/New Text Document.txt @@ -1 +1 @@ -next: 17578 \ No newline at end of file +next: 17583 \ No newline at end of file diff --git a/data/actions/actions.xml b/data/actions/actions.xml index 8202fe6..56ab43c 100644 --- a/data/actions/actions.xml +++ b/data/actions/actions.xml @@ -158,6 +158,7 @@ + diff --git a/data/actions/scripts/misc/sabrehaven_talon.lua b/data/actions/scripts/misc/sabrehaven_talon.lua new file mode 100644 index 0000000..5e9c989 --- /dev/null +++ b/data/actions/scripts/misc/sabrehaven_talon.lua @@ -0,0 +1,10 @@ +function onUse(player, item, fromPosition, target, toPosition, isHotkey) + if player:getStorageValue(17582) < os.time() then + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your experience earnings have been enchanted by the Sabrehaven Gods.") + player:setStorageValue(17582, os.time() + 24 * 60 * 60) -- 24 hour + item:remove(1) + else + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You shoud not take any more today.") + end + return true +end diff --git a/data/events/scripts/player.lua b/data/events/scripts/player.lua index 9e302d9..b65cb56 100644 --- a/data/events/scripts/player.lua +++ b/data/events/scripts/player.lua @@ -184,7 +184,7 @@ function Player:onGainExperience(source, exp, rawExp) useStamina(self) local staminaMinutes = self:getStamina() - if staminaMinutes > 2400 and self:isPremium() then + if staminaMinutes > 2400 and self:getStorageValue(17582) > os.time() then exp = exp * 1.5 elseif staminaMinutes <= 840 then exp = exp * 0.5 diff --git a/data/items/items.srv b/data/items/items.srv index d5d5a01..ecdb901 100644 --- a/data/items/items.srv +++ b/data/items/items.srv @@ -26078,7 +26078,10 @@ Flags = {Chest,Unpass,Unmove,Height,Disguise} Attributes = {DisguiseTarget=2481} TypeID = 5776 -Name = "" # this is nothing in client +Name = "a Sabrehaven talon" +Description = "Rumours say that the Gods enchanted these talons for the greatest good, or the greatest evil achievements" +Flags = {Cumulative,Take,Disguise} +Attributes = {DisguiseTarget=3034,Weight=20} TypeID = 5777 Name = "a target board" diff --git a/data/movements/movements.xml b/data/movements/movements.xml index a8893db..0cc6e30 100644 --- a/data/movements/movements.xml +++ b/data/movements/movements.xml @@ -398,6 +398,16 @@ + + + + + + + + + + diff --git a/data/movements/scripts/misc/raid_sacrifice.lua b/data/movements/scripts/misc/raid_sacrifice.lua new file mode 100644 index 0000000..479f9d0 --- /dev/null +++ b/data/movements/scripts/misc/raid_sacrifice.lua @@ -0,0 +1,38 @@ +local config = { + [17578] = { name = "edronorshabaal", message = "CHAMEK ATH UTHUL ARAK!", count=100 }, + [17579] = { name = "ferumbras", message = "Hahahaha! I have never been killed by the Avar Tar!", count=100 }, + [17580] = { name = "morgaroth", message = "THE TRIANGLE OF TERROR WILL RISE!", count=100 }, + [17581] = { name = "libertybaypirates", message = "Plundeeeeer!", count=100 } +} + +function onStepIn(creature, item, position, fromPosition) + doRelocate(item:getPosition(),{x = 33268, y = 31835, z = 9}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33268, y = 31835, z = 9}, 11) + item:getPosition():sendMonsterSay("Mystic flame ward you off.") +end + +function onAddItem(item, tileitem, position) + local movementId = tileitem:getMovementId() + local raid = config[movementId] + + if (item:getId() ~= 5776) then + doRelocate(item:getPosition(),{x = 33268, y = 31835, z = 9}) + item:getPosition():sendMagicEffect(11) + Game.sendMagicEffect({x = 33268, y = 31835, z = 9}, 11) + tileitem:getPosition():sendMonsterSay("Mystic flame spit out the sacrifice.") + return true + end + + local currentCount = getGlobalStorageValue(movementId) + item:getCount() + setGlobalStorageValue(movementId, currentCount) + if (currentCount >= raid.count) then + item:getPosition():sendMonsterSay(raid.message) + Game.startRaid(raid.name) + tileitem:remove() + setGlobalStorageValue(movementId, 0) + end + + item:getPosition():sendMagicEffect(CONST_ME_FIREAREA) + item:remove() +end diff --git a/data/raids/ferumbras.xml b/data/raids/ferumbras.xml new file mode 100644 index 0000000..41cd74a --- /dev/null +++ b/data/raids/ferumbras.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/data/raids/libertybaypirates.xml b/data/raids/libertybaypirates.xml new file mode 100644 index 0000000..caebcca --- /dev/null +++ b/data/raids/libertybaypirates.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/data/raids/morgaroth.xml b/data/raids/morgaroth.xml new file mode 100644 index 0000000..de7210e --- /dev/null +++ b/data/raids/morgaroth.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/data/raids/raids.xml b/data/raids/raids.xml index 1b12b15..59c40c0 100644 --- a/data/raids/raids.xml +++ b/data/raids/raids.xml @@ -46,4 +46,7 @@ + + + diff --git a/data/talkactions/scripts/raid.lua b/data/talkactions/scripts/raid.lua new file mode 100644 index 0000000..7eba681 --- /dev/null +++ b/data/talkactions/scripts/raid.lua @@ -0,0 +1,13 @@ +function onSay(player, words, param) + if not player:getGroup():getAccess() then + return true + end + + if player:getAccountType() < ACCOUNT_TYPE_GOD then + return false + end + + Game.startRaid(param) + player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Raid with name " .. param .. " started.") + return false +end diff --git a/data/talkactions/talkactions.xml b/data/talkactions/talkactions.xml index ac214b4..de95de2 100644 --- a/data/talkactions/talkactions.xml +++ b/data/talkactions/talkactions.xml @@ -19,6 +19,7 @@ + diff --git a/data/world/houses.xml b/data/world/houses.xml index a7236be..1adfc32 100644 --- a/data/world/houses.xml +++ b/data/world/houses.xml @@ -861,73 +861,73 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/world/map.otbm b/data/world/map.otbm index 69a36a719ff0151ff95358325695c29347a4f459..3b2de70430e592ff7ce57c74ef786d26eda8b667 100644 GIT binary patch delta 4865 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 G)jt8Ql~d3F delta 4791 zcmaLXRg@M+5(VJB#o+Gl?(XjH?(XjHg=jlCzXY@>-*|T_7&*s@Zhv)QMp4;N|ax@Af^u z*Z28;Ki~)bkRSFV9_B~=m>>5Oe$r3*X+Ps<{hXio3x3fr`8WQpU-m10)xY!a{RhA1 zKl*jQ;Wz!3|KvaWZNKAp{hr_V2ma6>`7i#f|K`8@V}IgL{h2@a7ygI;>3{j({?cFh zYk%W!{hhz}5B||V`Dgz!83brx1TYAU2u1=UgHgb!U^Fl~7z2z6#sXu5alp7>JTN|( z089ub0uzHtz@%U@Fgch4ObMm}Q-f*1v|u_gJ(vN^2xbB^gIU0=U^Xy2m;=lS<^pqr zdBD72J}^I604xX=0t{ICug)37!H^gJ;0A;5qO-cmcc!UIM=XzXdOYSHP>_ci{Kn58yTM zNANm$1H1{|0)GO325*CRz`Ni*@ILqed5S=(8H^c?nT(l@ zS&UhY*^JqZIgB}txs17ud5n3D`HcCE1&jrag^Y!bMT|v_#f-&`C5$DFrHrMGWsGHw z<&5Qx6^s>)m5h~*Rg6`Q)r{4RHH9gH1~os6B0U5s6g-HhFhJ&Zk#y^Ot$eT;pL{fzyM1B?TW zgN%cXLySX>!;Hg?Ba9=Bql}}CV~k^s!r3WyiQQt4*emvl{o;T)C=Q9k;)ntpUi=`gi66yvaYNh`x5Q84XK`EH5qHHsabG+T55*(# zi}+RiCVm%>#S`&VJQL5w3-O2eQ~V|V7B9ss@mjnQZ^b+DUVIQA#V7Gue6eYFk4Fd( z5GEpsAQ4eS5|Kp|5miJJ(M1dqQ^XRnMH~@V#1rvF0+CQ85{X3;kyIoT$wdm0Qlt{8 zMH-P-q!Z~y29Z%@5}8F7kyT_9*+mYKQ{)o4MIMn?ED>A85phL45nm(_2}L52SR@fiMKY0Gq!1}ZDv?^G5otv_kzQmF8AT?MS!5Ae zMK+OL%@AoL2MM8#AXp9wur4_o7gUPh)}Up>=L`h9