Postado Novembro 12, 2016 10 anos Olá pessoal vim trazer um "systema akatsuki" que fiz pro meu nto, como os outros systemas estavam dando varios bugs, resolver tentar fazer um, então vou compartilhar com vcs. O systema é uma quest que ganha hp, mana, e um effect com nome Akatsuki saindo do player. Vou postar aki o script da quest, o script do effect, e o script do npc. Bom vamos lá.. Crie em seu mapa uma quest e coloque um bau, nesse bau coloque actionid 9785. apos ter feito isso vai em data/actions/scripts e crie um arquivo chamado questakatsuki.lua, e dentro desse arquivo coloque: Spoiler function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, 89785) >= 1 then doPlayerSendTextMessage(cid,22,"Voce ja se tornou membro Akatsuki") return true end if getPlayerLevel(cid) >= 600 then -- level necessario para fazer a quest setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+300000) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+30000) doPlayerSendTextMessage(cid,22,"voce se tornou um membro Akatsuki.") doTeleportThing(cid, {x=1024,y=913,z=7}) -- Coloque aqui as coordenadas do seu templo setPlayerStorageValue(cid, 89785, 1) else doPlayerSendCancel(cid, "Isso nao e possivel.") end return true end Depois vai em data/actions/ e abra o arquivo actions.xml e adicione a tag: Spoiler <action actionid="9785" event="script" value="questakatsuki.lua"/> Agora vai em data/creaturescript/script e crie um arquivo chamado effect.lua e adicione o seguinte script nele: Spoiler local effect = 42 -- Efeito que vai usar local storage = 89785 -- Storage que o player precisa ter local tempo = 2 -- Tempo em segundos function onLogin(cid) if getPlayerStorageValue(cid, storage) == 1 then SendEffect(cid) end return TRUE end function SendEffect(cid) if not isCreature(cid) then return LUA_ERROR end doSendAnimatedText(getCreaturePosition(cid),'Akatsuki' , 180) doSendMagicEffect(getCreaturePosition(cid), 42) addEvent(SendEffect, tempo*1000, cid) return TRUE end vai em data/creaturescript/login.lua e adicone a tag: Spoiler registerCreatureEvent(cid, "Effect") agora vai em data/creaturescript/creaturescript.xml e acione essa tag: Spoiler <event type="login" name="Effect" event="script" value="effect.lua"/> agora vamos criar o npc. Va em Data/Npc/Scripts e crie um arquivo chamado akatsukiquestxx.lua e adicone esse script no arquivo: Spoiler local tab = { pos = {x=1106, y=904, z=9}, -- posição x, y, z do local a teleportar o player item = {5943, 6}, -- {itemID, count} price = 2 } 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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, 'akatsuki')) then talkState[talkUser] = 1 selfSay('tem certeza que quer entrar?', cid) selfSay('Lembre-se..voce precisa de '..tab.item[2]..' '..getItemNameById(tab.item[1])..' e '..tab.price..' gold bar para poder entrar.', cid) elseif (msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if (getPlayerItemCount(cid, tab.item[1]) >= tab.item[2] and doPlayerRemoveMoney(cid, tab.price * 10000)) then doTeleportThing(cid, tab.pos) doPlayerRemoveItem(cid, tab.item[1], tab.item[2]) doPlayerRemoveMoney(cid, tab.price * 10000) doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT) selfSay('Have a good trip.', cid) else talkState[talkUser] = 0 selfSay('Voce ainda nao tem os 6 coraçoes, volte quando tiver.', cid) end elseif (msgcontains(msg, 'no') and talkState[talkUser] == 1) then talkState[talkUser] = 0 selfSay('Okay, maybe another time.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) agora vamos em Data/Npc/ e crie um arquivo chamado Tobi.xml e dentro dele cole: Spoiler <?xml version="1.0" encoding="UTF-8"?> <npc name="Tobi" script="data/npc/scripts/akatsukiquestxx.lua" walkinterval="2000" speed="0" floorchange="0"> <health now="50" max="50"/> <look type="481" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Huum, então você quer entrar na quest akatsuki, somente jogadores com lvl 600 ou superior podem entrar. Tem certeza que quer entrar na quest {akatsuki}?"/> <parameter key="message_farewell" value="Até mais!" /> <parameter key="message_walkaway" value="Até mais!" /> </parameters> </npc> pronto acho q é só, o npc é configurado para retirar 6 corações do player para poder teleportá-lo para a quest. Quero pedir desculpas se postei o tópico na área errada, mais é que nele vai Actions, creaturescripts e npc. ae fiquei em duvida e postei nessa.
Postado Novembro 13, 2016 9 anos Parabéns, seu tópico de conteúdo foi aprovado! Muito obrigado pela sua contribuição, nós do Tibia King agradecemos. Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP. Spoiler Congratulations, your content has been approved! Thank you for your contribution, we of Tibia King we are grateful. Your content will help many other users, you received +1 REP.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.