Você está desconectado.

Conecte-se e veja nossos conteúdos exclusivos!
 

  


Daily Catch

Compartilhe
avatar
Death Gun
Administrador
Administrador

King Coin(s) King Coin(s) : 32
Reputação : 13014
Facebook : Facebook.com/Vitor.Eduardo.5567
OTServ Favorito : Pokémon Paraíso V3 - O Retorno
Meu Char : Zed Stars
Seção Favorita : Spriting
Eu sou : Scripter
Tópicos : 256
Data de Cadastro : 27/09/2015
Idade : 18
Localização : Florianópolis - SC

Daily Catch

Mensagem por Death Gun em Qua Set 28, 2016 12:33 pm

Eae galera, trago-lhes mais um sistema básico, para animar seus jogadore(a)s quando estiverem no tédio, upando e tals.
Esse sistema funciona da seguinte maneira;
Testado no DarkXPoke;

O npc fala pra você escolher um entre dois pokémons;
Depois, é só ir capturar e voltar a falar com o NPC;

Sobre o sistema:
Existem 4 níveis;

facil;
médio;
difícil;
muito difícil;
recompensa configurável

Comece indo na LIB, e colocando este arquivo lá:
dailyCatch.lua

NPCS:

NPC.XML
Spoiler:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="NOMEDONPC" script="NOMEDOARQUIVO.lua" walkinterval="350000" floorchange="0" speed="0">
   <health now="150" max="150"/>
   <look type="510" head="91" body="102" legs="83" feet="0"/>
</npc>

NPC.lua
Spoiler:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
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 msgcontains(txt, str)
return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))
end

local talkState = {}
local opcao1 = "";
local opcao2 = "";
local opcaoEscolhida = "";
local tchau = false

function creatureSayCallback(cid, type, msg)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
local objetos = getListOfObjectsByDifficulty(cid)

if not (getDistanceToCreature(cid) <= 3) then
return true
end

if getPlayerStorageValue(cid, objetos.storages.endQuest) >= 1 then
selfSay("Você já completou minha task por hoje.", cid)
talkState[talkUser] = 0
tchau = true
focus = 0
return true
end  

if (msgcontains(msg, opcao1) or msgcontains(msg, opcao2)) and talkState[talkUser] == 1 then
opcaoEscolhida = msg;
setPokemonEscolhido(cid, opcaoEscolhida)
selfSay("Okay, volte quando conseguir capturar "..opcaoEscolhida.."!", cid)
setPlayerStorageValue(cid, objetos.storages.catch, 1)
talkState[talkUser] = 2;
end

if msgcontains(msg, "yes") and talkState[talkUser] ~= 2 and talkState[talkUser] ~= 3 then
setTaskDailyCatch(cid, objetos)
opcao1 = getPokemonForDailyCatch(cid, "opcao_poke1");
opcao2 = getPokemonForDailyCatch(cid, "opcao_poke2");
selfSay("Catch de nível "..getDificultyForDailyCatch(cid)..", deseja capturar "..opcao1.." ou "..opcao2.."?", cid)
talkState[talkUser] = 1;

elseif msgcontains(msg, "yes") and talkState[talkUser] == 2 then
  selfSay("Você conseguiu capturar "..getPokemonForDailyCatch(cid, "poke_escolhido").."?", cid)
  talkState[talkUser] = 3;
 
elseif msgcontains(msg, "yes") and talkState[talkUser] == 3 then
if (getPlayerStorageValue(cid, objetos.storages.catchSucess) >= 1) then
selfSay("Parabéns, pegue sua recompensa", cid)
doPlayerAddExp(cid, objetos.experiencia);
doPlayerAddItem(cid, objetos.recompensa.item, objetos.recompensa.quantidade);
doSendAnimatedText(getThingPos(cid), objetos.experiencia, 173)
doSendMagicEffect(getThingPos(cid), 173)
setPlayerStorageValue(cid, objetos.storages.endQuest, 1)
dificilPokesParaDailyCatch(cid, getDificultyForDailyCatch(cid))
addOpcaoForChoosePokemonDailyCatch(cid, objetos.pokes)
else
selfSay("Você ainda não capturou ".. opcaoEscolhida ..".", cid)
end
talkState[talkUser] = 0
tchau = true
focus = 0
return true
end
if msgcontains(msg, "no") then
selfSay("Então volte mais tarde...", cid)
tchau = true
focus = 0
return true
end

if tchau then
tchau = false
selfSay('Tchau.')
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Créditos:
Quinn - Pelo sistema.
GOD Vitor - Por trazer para o PK.

Testem, qualquer erro, comentem que ajudo!
Acho que está faltando alguma parte.. Então, testem ai, e me deem informações!


________________________________________
Não sou dono do mundo, mas sou filho do dono.

    Data/hora atual: Dom Jun 25, 2017 10:44 am