Postado Novembro 12, 2016 8 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 8 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.