Land 0 #1 Postado 21 Junho, 2009 (editado) ------------------------------- Nome: Yalahar Quest Last Mission 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 = yalahar_azerus_quest EM "data\movements\scripts\yalahar_azerus_quest.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 queststatus = getPlayerStorageValue(cid, XXXXX) --Value ID DA QUEST QUANDO VOCE JA PEGO O ITEM local player_pos_entrada = {x = XXXXX, y = XXXXX, z = XXXXX} --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 == 1974 and queststatus == -1 then doCreatureSay(cid, "It seems by defeating Azarus you have stopprd this army from entering your world! Better leave this ghastly place forever.", TALKTYPE_ORANGE_1) setPlayerStorageValue(cid, XXXXX, 1) --Value ID PARA QUE O PLAYER POSSA ENTRA NA PORTA ONDE ESTAUM AS RECOMPENSA return TRUE end if item.actionid == 1973 and queststatus == -1 then totalmonsters = 0 monster = {} repeat creature = getThingfromPos(checking) if creature.itemid > 0 then 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 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) else doMoveCreature(cid, newdir) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Someone has already done this quest.') end end NO PORTAL PARA ENTRA NA SALA DA QUEST ADICIONE ACTIONID,1973 CONFORME A IMAGEM STARTING,ENDING:SAUM AS COORNADAS PARA QUE O SCRIPT CHECK SE TEM ALGUM BIXO NA SALA,SE ESTIVER ALGUM ELE REMOVERA PLAYER_POS_ENTRADA:É A COORDENADA DA ONDE O PLAYER SERA TELEPORTADO APOS ENTRA NA SALA NO FINAL DA QUEST ADICIONE ACTIONID,1974 NO TILE CONFORME A FIGURA PARA QUE QUANDO O PLAYER PISE NELE EXIBIRA A MSG FALANDO QUE ELE JA PODE ENTRA NA SALA DE RECOMPENSA AGORA LA NO SCRIPT NA ACTION,1974 NA PARTE ONDE ESTA OS 'X' ADICIONE UM VALUE E NAS PORTA DA QUEST COLOKE O MESMO VALUE CONFORME A IMAGEM ABAIXO PARA QUE O PLAYER POSSA ENTRA APOS TERMINA A QUEST movements.xml: <!-- Yalahar Set Quest --> <movevent type="StepIn" actionid="1973" event="script" value="yalahar_azerus_quest.lua" /> <movevent type="StepIn" actionid="1974" event="script" value="yalahar_azerus_quest.lua" /> <!-- End Yalahar Set Quest --> Configurando Actions: CRIE UM ARQUIVO .LUA EM "data\actions\scripts\" Nome = yalahar_azerus_quest EM "data\actions\scripts\yalahar_azerus_quest.lua": function onUse(cid, item, frompos, item2, topos) --Config--> local statue_pos = {x = XXXXX, y = XXXXX, z = XXXXX} local portal_quest01_pos = {x = XXXXX, y = XXXXX, z = XXXXX, stackpos = 2} local portal_quest02_pos = {x = XXXXX, y = XXXXX, z = XXXXX, stackpos = 2} local new_portal_pos = {x = XXXXX, y = XXXXX, z = XXXXX, stackpos = 1} local new_pos = {x = XXXXX, y = XXXXX, z = XXXXX} --End Config--> function Potwory1() if math.random (1,8) == 4 then doCreateMonster('Rift Brood', {x = statue_pos.x+1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Brood', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Brood', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) addEvent(Potwory2, 30 * 1000) else doCreateMonster('Azerus', {x = statue_pos.x, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Brood', {x = statue_pos.x+1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Brood', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Brood', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) addEvent(Potwory2, 30 * 1000) end end function Potwory2() doCreateMonster('Rift Brood', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Brood', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253}) addEvent(Potwory3, 35 * 1000) end function Potwory3() doCreateMonster('Rift Scythe', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Scythe', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Scythe', {x = statue_pos.x+1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) doCreateMonster('Rift Scythe', {x = statue_pos.x-1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) addEvent(Potwory4, 40 * 1000) end function Potwory4() doCreateMonster('Azerus', {x = statue_pos.x, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253}) doCreateMonster('War Golem', {x = statue_pos.x+1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253}) doCreateMonster('War Golem', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253}) doCreateMonster('War Golem', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253}) doCreateMonster('War Golem', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253}) addEvent(NewPortal, 90 * 1000) end function NewPortal() doCreateTeleport(1387, new_pos, new_portal_pos) addEvent(RemoveAll, 60 * 1000) end function RemoveAll() doRemoveItem(getThingfromPos(portal_quest01_pos).uid,1) doRemoveItem(getThingfromPos(portal_quest02_pos).uid,1) doRemoveItem(getThingfromPos(new_portal_pos).uid,1) end if item.uid == 1968 and getThingfromPos(portal_quest01_pos).itemid ~= 9772 then doCreateItem(9772,1,portal_quest01_pos) doCreateItem(9772,1,portal_quest02_pos) addEvent(Potwory1, 0) else doPlayerSendTextMessage(cid,22,"Sorry, not possible.") end return TRUE end STATUE_POS:COORDENADAS DA ONDE A ESTATUA VAI ESTA ADICIONE NA ESTATUA EM UNIQUEID,1968 NEW_PORTAL_POS:VAI SER NA ONDE O PORTAL APARECERA QUANDO ACABAR A QUEST PORTAL_QUEST01_POS:É A POSIÇÃO NA ONDE O PORTAL DE DENTRO DA SALA ESTA OBS:ISSO SERVE PARA QUE QUANDO A QUEST FOR ACIONADA CRIE UM ORB NO PORTAL PARA QUE NGM MAIS POSSA SAI PORTAL_QUEST02_POS:É A POSIÇÃO NA ONDE O PORTAL DE FORA DA SALA ESTA OBS:ISSO SERVE PARA QUE QUANDO A QUEST FOR ACIONADA CRIE UM ORB NO PORTAL PARA QUE NGM MAIS POSSA ENTRA NA SALA NEW_POS:SAUM AS COORDENADAS DA ONDE O PLAYER SERA TELEPORTADO APOS TERMINA A QUEST actions.xml: <!-- Yalahar Set Quest --> <action uniqueid="1968" script="yalahar_azerus_quest.lua"/> <!-- End Yalahar Set Quest --> Editado 28 Junho, 2009 por Land Compartilhar este post Link para o post
Gpwjhlkdcf 21 #2 Postado 24 Junho, 2009 Aprovado e Movido para Download de Outros Scripts. Observação: Compartilhar este post Link para o post
Jake 0 #3 Postado 29 Junho, 2009 O script está legal, mas não temos acesso ao mapa e mappear e conseguir acertar tudinho nos trinques é dificil. Outra coisa é o Azerus, poste a criatura porque ela está vindo toda bugada. obrigado (Y) Compartilhar este post Link para o post
ShufflezOr 0 #4 Postado 10 Agosto, 2009 Carakaa Veeiii '-' Script Nervoso Valew aee, tava precisando de uma yalahar room Te Amo =* Compartilhar este post Link para o post
chinok 0 #5 Postado 23 Agosto, 2009 no meu mapa esses script nao funcionou [22/08/2009 23:28:34] Lua Script Error: [MoveEvents Interface] [22/08/2009 23:28:34] data/movements/scripts/yalahar_azerus_quest.lua:onStepIn Compartilhar este post Link para o post