Ir para conteúdo

Porta De Quest E Npc


Drk Shadow

Posts Recomendados

ae Galerinha acho que é façil ein kk mais nao pra min que não sou script :/

teria como alguem me ajudar com uma porta de quest que funciona assim :

no caso, seria 2 portas porque quero colocar numa quest assim

são 3 baus de quests e 3 portas, o primeiro bau te da uma vocação e um storage ai, eu queria que a porta teletransportasse o player pra coordenada xxxx se ele tivesse tal vocation ou storage, o bau não precisa pq ja tenho o script ake.

Resumindo :

uma porta que te teleporta pra coordenada xxxx se vc tiver tal vocação ou storage.

isso ae galera vllw

Agora acho que ta na area certo né ? ¬¬

@EDiT

 

Esqueçi do npc hehe é o seguinte:

eu preciso de 1 npc assim, que chega se o player tem tal storage, se nao ticer mandar uma mensagem e se ele tiver ele continua a quest dando esses items ao o npc

1 Luck Medalion

5 Feathers

2 Bird Beaks

1 Heart Stone

e em recompensa, ele ganha 1 outift 604 se for homen e 605 se for mulher [ 605 e 604 é o looktype ]

e 6000 de xp e 1 box 3.

do rep por 4 dias pra qm ajudar ^^

Editado por Pokemonultimatetwo
Link para o comentário
Compartilhar em outros sites

Acho que isso serve como uma base.

 

Crie um arquivo chamado portaquest.lua na pasta data/actions/scripts/ e nele adicione isso.

 

function onUse(cid, item, frompos, item2, topos)

local storage = XXXXX -- storage que o player precisa ter para abrir a porta
local vocation = YYY -- numero da vocation que o player precisa ter para conseguir abrir a porta
local poss = {x=1000, y=1000, z=7} -- local para onde o player sera mandando

if getPlayerStoraveValue(cid, storage) >= 1 and getPlayerVocation(cid) == vocation then
doTeleportThing(cid, poss, false)
else
doPlayerSendCancel(cid, "Sorry, but you are not allowed to enter in this place.")
end
return true
end

 

depois no actions.xml adicione a tag

tag: <action itemid="iddaporta" event="script" value="portaquest.lua"/>

 

Não testei, qualquer coisa estamos ai! Abraço

 

edit: Lembrando que se você escolher aquelas portas que não fecham sozinhas o script muda um pouco :p

Editado por lucashgas
Link para o comentário
Compartilhar em outros sites

@lucashgas

finalmente ein kk acertei a area.

testei ake e deu certo vllw manin ^^

data/actions/scripts/quests né ? ;p

@Edit

vllw msm manow REP +

e sobre o npc, consege fazer ?

Editado por Pokemonultimatetwo
Link para o comentário
Compartilhar em outros sites

Crie um arquivo na pasta data/npc/ chamado Baltor.xml

 

nele coloque isso:

 

 


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Baltor" script="npcquest.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">
<health now="150" max="150"/>
<look type="614" head="91" body="114" legs="86" feet="0"/>
</npc>

 

 

 

Depois em data/npc/scripts crie um arquivo chamado npcquest.lua e dentro coloque isso:

 

 

 


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end

local stg = XXX -- storage para falar com o npc
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if msgcontains(msg, 'help') then
if getPlayerStorageValue(cid, stg) >= 1 then
selfSay("Sorry, but you already have completed this mission!", cid)
talkState[talkUser] = 0
else
selfSay("Ooooh good! I'm looking for some rare items... They are: 1 Luck Medalion, 5 Feathers, 2 Bird Beaks e uma Heart Stone. Do you have these items?", cid)
talkState[talkUser] = 1
end
end
---------------------------------------------------------
if (msgcontains(msg, "yes") or msgcontains(msg, "sim")) and talkState[talkUser] == 1 then
 if doPlayerRemoveItem(cid, 12186, 1) and doPlayerRemoveItem(cid, 12200, 5) and doPlayerRemoveItem(cid, 12172, 2) and doPlayerRemoveItem(cid, 11453, 1) == TRUE then
selfSay("Thank you!", cid)
setPlayerStorageValue(cid, 1004, 1) -- storage para liberar outfit
setPlayerStorageValue(cid, stg, 1) -- para ele nao fazer a missao novamente
doPlayerAddExperience(cid,6000) -- experiencia
local bags = getPlayerSlotItem(cid, 3)
doAddContainerItem(bags.uid, 11640, 1) -- box 3
else
selfSay("Sorry, but you don't have one of these items.", cid)
talkState[talkUser] = 0
 end
elseif (msgcontains(msg, "no") or msgcontains(msg, "nao")) and talkState[talkUser] == 1 then
selfSay("Good bye '..getCreatureName(cid)..'.", cid)
talkState[talkUser] = 0
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

Ai para liberar o outfit vá em data/XML/outfits.xml procure pelo outfit escolhido e adicione quest="numero da stg que voce colocou no arquivo" depois do ID

 

Espero ter ajudado!

Editado por lucashgas
Link para o comentário
Compartilhar em outros sites

vllw mano tu é foda, vou te dar os rep mais 3 dias ein vllw ^^

agora outra coisa pra terminar de encher e fuder seu saco totalmente ._.

tava tentano fazer um script, tpw rollout, que quando eu dizer "ad" se o monstro tiver a looktype xxxx a look type do monstro vai virar xxxx

tava tentano fazer isso e saiu mais ou menos assim:

 

 

getCreatureOutfit(cid, 598)

if creatureOutfit(cid,598)

doSetCreatureOutfit(cid, 599, 60)

return true

end

 

sera q tem mt coisa errada ? e_e daria mt trabalho pra fazer ? HMM perguntas intrigantes e.e

@EDIT

consegi fazer o script, com 1 problema:

eu useia spell rollout como base deletei e editei umas função, só que ele nao ta trocando o outiffit mais o comando e as outra coisa foi, o princiapl não e_e

Editado por Pokemonultimatetwo
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...