-------------------------------
Nome: FireWalker Boots Quest
Versão: 8.4x
Tipo do script: Moviments,Creaturescripts
Servidor Testado: The Forgotten Server 0.3.4 (Crying Damson) Patch Level 2
Autor: Land
Creditos: Ta4e(uma parte do script foi tirada de um outro dele)
-------------------------------
TUDO QUE ESTIVER EM VERMELHO SAUM IMPORTANTE PARA O SCRIPT E É AONDE TERAUM QUE MUDAR DE ACORDO COM SEU MAP.
ROSA SAUM AS ACTIONID.
Configurando Moviments
CRIE UM ARQUIVO .LUA EM "data\movements\scripts\"
Nome = the_pythius_rotten_portal
AGORA EM "data\movements\scripts\the_pythius_rotten_portal.lua":
function onStepIn(cid, item, position, fromPosition)
--Config-->
local starting = {x = XXXXX, y = XXXXX, z = XXXXX, stackpos = 253}
local ending = {x = XXXXX, y = XXXXX, z = XXXXX, stackpos = 253}
local checking = {x = starting.x, y = starting.y, z = starting.z, stackpos = starting.stackpos}
local portal_in_pos = {x = XXXXX, y = XXXXX, z = XXXXX, stackpos = 1}
local portal_iten_pos = getThingfromPos(portal_in_pos)
local teleportId = 1387
local player_pos_entrada = {x = XXXXX, y = XXXXX, z = XXXXX}
local player_pos_saida = {x = XXXXX, y = XXXXX, z = XXXXX}
local boss_pos = {x = XXXXX, y = XXXXX, z = XXXXX}
local boss = "Pythius The Rotten"
local queststatus = getPlayerStorageValue(cid, XXXXX) --ValueID DA QUEST QUANDO VOCE JA PEGO O ITEM
--EndConfig-->
--Do not touch this--
if getPlayerLookDir(cid) == 0 then
newdir = 2
elseif getPlayerLookDir(cid) == 1 then
newdir = 3
elseif getPlayerLookDir(cid) == 2 then
newdir = 0
else
newdir = 1
end
--Don't edit this unless you know what you are doing.
if item.actionid == 9022 then
doTeleportThing(cid, player_pos_saida)
doSendMagicEffect(player_pos_saida, 10)
doRemoveItem(portal_iten_pos.uid, 1)
return TRUE
end
if item.actionid == 9021 and queststatus == -1 then
players = 0
totalmonsters = 0
monster = {}
repeat
creature = getThingfromPos(checking)
if creature.itemid > 0 then
if getPlayerAccess(creature.uid) == 0 then
players = players + 1
end
if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then
totalmonsters = totalmonsters + 1
monster[totalmonsters] = creature.uid
end
end
checking.x = checking.x + 1
if checking.x > ending.x then
checking.x = starting.x
checking.y = checking.y + 1
end
until checking.y > ending.y
if players == 0 then
if totalmonsters ~= 0 then
current = 0
repeat
current = current + 1
doRemoveCreature(monster[current])
until current >= totalmonsters
end
doTeleportThing(cid, player_pos_entrada)
doSendMagicEffect(player_pos_entrada, 10)
doCreateMonster(boss, boss_pos)
if portal_iten_pos.itemid == teleportId then
doRemoveItem(portal_iten_pos.uid, 1)
end
else
doMoveCreature(cid, newdir)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'is in the room now. Wait a moment!')
end
else
doMoveCreature(cid, newdir)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Sorry you already did this quest!')
end
end
movements.xml:
<!-- The Pythius Rotten Portal --><movevent type="StepIn" actionid="9021" event="script" value="the_pythius_rotten_portal.lua" />
<movevent type="StepIn" actionid="9022" event="script" value="the_pythius_rotten_portal.lua" />
<!-- End The Pythius Rotten Portal -->
NO PORTAL PARA ENTRA NA SALA DA QUEST COLOQUE ESSE ACTIONID,9021:
STARTING,ENDING:SAUM AS COORNADAS PARA QUE O SCRIPT CHECK SE TEM ALGUEM NA SALA OU ALGUM BIXO
PORTAL_IN_POS:É A COORDENADA DA ONDE O PORTAL DA SAIDA ESTARA,SERVE PARA Q QUANDO ALGUEM TERMINE A QUEST APOS ENTRA NO PORTAL PARA SAI DA QUEST ELE REMOVE O PORTAL
PLAYER_POS_ENTRADA:É A COORDENADA DA ONDE O PLAYER SERA TELEPORTADO APOS ENTRA NA SALA
PLAYER_POS_SAIDA:É A COORDENADA DA SALA DA RECOMPENSA
BOSS_POS:É A ONDE O BOSS SERA SUMONADO
Configurando Creaturescripts
CRIE UM ARQUIVO .LUA EM "data\creaturescripts\scripts\"
Nome = pythius_the_rotten
AGORA EM "data\creaturescripts\scripts\pythius_the_rotten.lua":
local config = {teleportId = 1387,
bosse = "Pythius The Rotten"
}
local portal_in_pos = {x = XXXXX, y = XXXXX, z = XXXXX}
function onDeath(cid, corpse, killer)
registerCreatureEvent(cid, "PythiusDead")
if config.bosse == getCreatureName(cid) then
local position = portal_in_pos
teleport = doCreateItem(config.teleportId,1,position)
doSetItemActionId(teleport, 9022)
end
return TRUE
end
PORTAL_IN_POS:É A COORDENADA DA ONDE O PORTAL SERA CRIADO APOS MATA O BOSS
AGORA EM "data\creaturescripts\scripts\login.lua" REGISTRE UM EVENTO:
NO FINAL, ANTES DE "RETURN TRUE" ADICIONE:
registerCreatureEvent(cid, "PythiusDead")
creaturescripts.xml:
<event type="death" name="PythiusDead" script="pythius_the_rotten.lua" />
Configurando Creature:
PRA QUEM JA TIVER A CREATURA:
DEPOIS DE "/FLAGS" ADICIONE:
<script><event name="PythiusDead"/>
</script>
PRA QUEM NAO TIVER A CREATURA:
<?xml version="1.0" encoding="UTF-8"?><monster name="Pythius The Rotten" nameDescription="pythius the rotten" race="undead" experience="100" speed="280" manacost="0">
<health now="9000" max="9000"/>
<look type="231" corpse="6306"/>
<targetchange interval="5000" chance="8"/>
<strategy attack="100" defense="0"/>
<flags>
<flag summonable="0"/>
<flag attackable="1"/>
<flag hostile="1"/>
<flag illusionable="1"/>
<flag convinceable="0"/>
<flag pushable="0"/>
<flag canpushitems="1"/>
<flag canpushcreatures="1"/>
<flag targetdistance="1"/>
<flag staticattack="90"/>
<flag runonhealth="0"/>
</flags>
<script>
<event name="PythiusDead"/>
</script>
<attacks>
<attack name="melee" interval="2000" skill="145" attack="135"/>
<attack name="fire" interval="2000" chance="20" range="7" radius="4" target="1" min="-165" max="-205">
<attribute key="shootEffect" value="fire"/>
<attribute key="areaEffect" value="redspark"/>
</attack>
<attack name="death" interval="9000" chance="100" radius="4" target="0" min="0" max="0">
<attribute key="areaEffect" value="mortarea"/>
</attack>
<attack name="poison" interval="2000" chance="20" range="7" radius="4" target="1" min="-55" max="-155">
<attribute key="shootEffect" value="poison"/>
<attribute key="areaEffect" value="poison"/>
</attack>
<attack name="poison" interval="2000" chance="20" length="8" spread="3" min="-300" max="-415">
<attribute key="areaEffect" value="poison"/>
</attack>
<attack name="manadrain" interval="2000" chance="12" range="5" radius="4" target="1" min="-85" max="-110">
<attribute key="areaEffect" value="greenshimmer"/>
</attack>
</attacks>
<defenses armor="35" defense="30">
</defenses>
<summons maxSummons="2">
<summon name="undead gladiator" interval="9000" chance="100"/>
<summon name="undead gladiator" interval="9000" chance="100"/>
</summons>
<elements>
<element physicalPercent="10"/>
<element icePercent="10"/>
<element holyPercent="-10"/>
</elements>
<immunities>
<immunity death="1"/>
<immunity earth="1"/>
<immunity energy="1"/>
<immunity lifedrain="1"/>
<immunity invisible="1"/>
</immunities>
<voices interval="5000" chance="10">
<voice sentence="YOU'LL NEVER GET MY TREASURE!"/>
<voice sentence="MINIONS, MEET YOUR NEW BROTHER!"/>
<voice sentence="YOU WILL REGRET THAT YOU ARE BORN!"/>
<voice sentence="YOU MADE A HUGE WASTE!"/>
</voices>
</monster>