Postado Março 29, 2015 10 anos Já Foi Resolvido Topico Fechado ! Editado Abril 29, 2015 10 anos por SkyFrozer (veja o histórico de edições)
Postado Março 30, 2015 10 anos Autor É Poketibia 8.54 Se alguem puder ajudar, Ainda vou dar os REP+ UP !! Ajuda ae UP !!! UP -_- Ninguem pra ajudar? Gente, se não for possivel esse sistema, pelo menos um que seja assim : 2 Players Vão ao Tal npc, ou um comando por talckaction ex : !casar "nome do player que quer casar', e apos falar esse comando e a outra pessoa que você quer casar também vai ter que executar o mesmo comando para se aceito... E Apos ser aceito os 2 Players, que acabaram de ser casar ganha Informação adicional, ao qualquer outro Players dar Look nele, Ex : You see SkyFrozer (level 101). He is treinador. Casado com JulinhaaSZ Se Puderem me Ajudar dou 5 REP+
Postado Março 30, 2015 10 anos vá em data/NPC e crie um arquivo chamado Celest.xml e cole isso dentro <?xml version="1.0"?> <npc name="Celest" script="data/npc/scripts/marriagesystem.lua" walkinterval="50000" floorchange="0"> <health now="1000" max="1000"/> <look type="130" head="0" body="114" legs="114" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. You can {marriage} or may {divorce}."/> </parameters> </npc> E depois entre na pasta script e crie marriagesystem.lua e adicione o spoiler abaixo. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local Topic, Partner = {}, {} 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 say(msg, cid) local npc, _msg = getNpcId(), msg:gsub('{', ''):gsub('}', '') local pos = getThingPos(npc) for _, tid in ipairs(getSpectators(pos, 7, 5, false) or {}) do if isPlayer(tid) then doCreatureSay(npc, tid ~= cid and _msg or msg, tid == cid and TALKTYPE_PRIVATE_NP or TALKTYPE_SAY, false, tid, pos) end end end local function marry(cid, msg, ext) msg = msg:gsub('my heart belongs to ', '') local player = getPlayerByName(msg) if player then if player ~= cid then if getPlayerPartner(player) == 0 then if getPlayerStorageValue(cid, 46000) == 1 then if getPlayerStorageValue(player, 46001) == getPlayerGUID(cid) then doCreatureSay(cid, msg, TALKTYPE_SAY) say('Vossas almas estão agora unidos por toda a eternidade. Como um símbolo de seu amor, vocês receberam seus anéis de casamento gravado e roupas festivas. ...', cid) say('Tenham uma otima vida de casados. Vá agora e comemore sua lua de mel!', cid) for _, pid in ipairs({cid, player}) do doPlayerAddOutfitId(pid, 34, 0) local v = getCreatureOutfit(pid) v.lookType = getPlayerSex(pid) == 0 and 329 or 328 doCreatureChangeOutfit(pid, v) doSendMagicEffect(getThingPos(pid), CONST_ME_HEARTS) setPlayerStorageValue(pid, 46002, os.time() + 86400) end doSendMagicEffect(getNpcPos(), CONST_ME_MAGIC_BLUE) local nc, np = getCreatureName(cid), getCreatureName(player) doItemSetAttribute(doPlayerAddItem(cid, 10502, 1), 'description', np .. ' & ' .. nc .. ' forever - married on ' .. os.date('%b ' .. os.date('*t').day .. ', %Y') .. '.') doItemSetAttribute(doPlayerAddItem(player, 10502, 1), 'description', nc .. ' & ' .. np .. ' forever - married on ' .. os.date('%b ' .. os.date('*t').day .. ', %Y') .. '.') doPlayerSetPartner(cid, getPlayerGUID(player)) doPlayerSetPartner(player, getPlayerGUID(cid)) Topic[cid] = nil return true elseif ext == 1 then say(getCreatureName(cid) .. ', você tem certeza de seu amor para ' .. getCreatureName(player) .. ' e gostaria de juntar as suas almas para a eternidade?', cid) Topic[cid] = 5 Partner[cid] = getPlayerGUID(player) end else say('Oh não! Seu anel e caixa de equipamento estão em falta! Eu espero que você não esquecê-los! Você pode por favor dar-lhes para mim agora?', cid) Topic[cid] = 8 return true end else if ext then say('Esta pessoa já está casado com alguém.', cid) end end else if ext then say('Você não pode casar-se com si mesmo.', cid) end end else if ext then say('Esta pessoa não está online.', cid) end end if ext then doCreatureSay(cid, msg, TALKTYPE_SAY) end end function creatureSayCallback(cid, type, msg) if msgcontains(msg, 'meu coração pertence a') and not npcHandler:isFocused(cid) then local v = marry(cid, msg) if v then npcHandler:addFocus(cid) return true end elseif (msgcontains(msg, 'hello') or msgcontains(msg, 'hi')) and (not npcHandler:isFocused(cid)) then npcHandler:say('Olá '..getCreatureName(cid)..'! Eu tenho o poder {marriage} ou {divorce}.', cid) npcHandler:addFocus(cid) Topic[cid] = nil elseif not npcHandler:isFocused(cid) then return false elseif msgcontains(msg, 'bye') or msgcontains(msg, 'farewell') then npcHandler:say('Adeus, '..getCreatureName(cid)..'. Que o Deus cuide de você!', cid) Topic[cid] = nil npcHandler:releaseFocus(cid) elseif msgcontains(msg, 'marriage') or msgcontains(msg, 'marry') or msgcontains(msg, 'ceremony') or msgcontains(msg, 'wedding') then if getPlayerPartner(cid) ~= 0 then say('Sim, de fato, vocês estão casados, ' .. getCreatureName(cid) .. '. Espero que o seu amor ainda está florescendo e próspera.', cid) Topic[cid] = nil elseif getPlayerStorageValue(cid, 46000) < 1 then say('Antes de podermos começar a cerimônia de casamento, cada um de vocês precisa me entregar um anel de casamento em branco e uma caixa com uma roupa de casamento. ' .. getCreatureName(cid) .. ', você tem esses itens com você e você está disposto a dá-los a mim agora?', cid) Topic[cid] = 6 else say('Você me deseja iniciar a cerimônia de casamento agora?', cid) Topic[cid] = 1 end doCreatureSay(cid, msg, TALKTYPE_SAY) elseif Topic[cid] == 1 then if msgcontains(msg, 'yes') or (msgcontains(msg, 'i') and msgcontains(msg, 'will')) then say('Em nome de Deus e sua benevolência, pergunto-lhe, ' .. getCreatureName(cid) .. ': ambos estão prontos para casar?', cid) Topic[cid] = 2 else say('Talvez um outro tempo, o casamento não é um passo deve-se considerar, sem amor no coração.', cid) Topic[cid] = nil end doCreatureSay(cid, msg, TALKTYPE_SAY) elseif Topic[cid] == 2 then if msgcontains(msg, 'yes') or (msgcontains(msg, 'i') and msgcontains(msg, 'will')) then say('Um momento de silêncio por favor... Tenho a honra de invocar os poderes eternos que vigiam nossas almas e vidas. Por favor, repita comigo: {Que Deus nos Abençoe|}!', cid) doSendMagicEffect(getNpcPos(), CONST_ME_MAGIC_BLUE) Topic[cid] = 3 end doCreatureSay(cid, msg, TALKTYPE_SAY) elseif Topic[cid] == 3 then if msgcontains(msg, 'Que Deus nos Abençoe') or msgcontains(msg, 'que Deus nos Abençoe') or msgcontains(msg, 'que Deus nos abencoe') then say('Eu te pergunto: ' .. getCreatureName(cid) .. ', Qual é o nome da pessoa que {seu coração pertence}?', cid) Topic[cid] = 4 else -- end doCreatureSay(cid, msg, TALKTYPE_SAY) elseif Topic[cid] == 4 then marry(cid, msg, 1) elseif Topic[cid] == 5 then if msgcontains(msg, 'yes') or (msgcontains(msg, 'i') and msgcontains(msg, 'will')) then say('Então, pelos poderes dos deuses, sua alma está agora ligado ao seu amado. ' .. getPlayerNameByGUID(Partner[cid]) .. ', Agora dê um passo a frente e me diga se seu coração pertence a ' .. getCreatureName(cid) .. ' também.', cid) setPlayerStorageValue(cid, 46001, Partner[cid]) Topic[cid] = nil doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED) elseif msgcontains(msg, 'no') then say('Sua negação de amor dói em meu coração. Deixe agora!', cid) Topic[cid] = nil npcHandler:releaseFocus(cid) end doCreatureSay(cid, msg, TALKTYPE_SAY) elseif Topic[cid] == 6 then if msgcontains(msg, 'yes') or (msgcontains(msg, 'i') and msgcontains(msg, 'will')) then say('Obrigado. Eu vou dar-lhes de volta para você quando for a hora certa. Por favor, certifique-se de que você tem tanto de me entregou seus itens antes de começar a {ceremony}.', cid) setPlayerStorageValue(cid, 46000, 1) else say('Hm, then not.', cid) end Topic[cid] = nil elseif Topic[cid] == 8 then if msgcontains(msg, 'yes') then say('Obrigado. Agora vamos continuar - por favor me diga novamente, seu coração pertence a?', cid) setPlayerStorageValue(cid, 46000, 1) Topic[cid] = 9 return true else say('Hm, then not.', cid) end Topic[cid] = nil elseif Topic[cid] == 9 then marry(cid, msg, true) elseif msgcontains(msg, 'divorce') and getPlayerPartner(cid) > 0 then npcHandler:say('O que, pedido de um divórcio? Você anseia pelas alegrias da solteiro? Eu sei bem, meu casamento foi um campo de batalha ... mas menos do que isso. Você está infeliz no casamento?', cid) Topic[cid] = 10 elseif Topic[cid] == 10 and msgcontains(msg, 'yes') then npcHandler:say('Não há justiça no mundo, quando uma mulher bonita como você é tratada mal. Não que eu tenha uma conexão especial com os Deuses ou qualquer coisa - mas posso organizar o seu divórcio, se é isso que você deseja. Você quer?', cid) Topic[cid] = 11 elseif Topic[cid] == 11 and msgcontains(msg, 'yes') then npcHandler:say('Hm. Entenda, uh... Gostaria de fazê-lo gratuitamente, mas eu poderia, de fato, usar algum dinheiro. Faça-me um favor e \'donate\' 5000 gold coins, para que eu possa comprar algo, uhm... Então eu vou fazer o resto. O que você diz? ', cid) Topic[cid] = 12 elseif Topic[cid] == 12 and msgcontains(msg, 'yes') then npcHandler:say('Nenhum p ... problema. E não tem volta agora! Mas, só para ter certeza, - você tem certeza que você quer libertar-se da miséria do casamento, e se livrar da pessoa com quem se casou em um momento de loucura? ', cid) Topic[cid] = 13 elseif Topic[cid] == 13 and msgcontains(msg, 'yes') then if doPlayerRemoveMoney(cid, 5000) then npcHandler:say('Ehem. Pelos deuses e deixe este casamento infeliz e equivocado, chegou ao fim. Todos os títulos vão ser quebrado e assim por diante.- Não cometa o mesmo erro outra vez!', cid) local partner = getPlayerPartner(cid) if partner ~= 0 then local t = {cid} local player = getPlayerByGUID(partner) if player then table.insert(t, player) else db.executeQuery("UPDATE `players` SET `marriage` = 0 WHERE `id` = " .. partner) db.executeQuery("UPDATE `player_items` SET `itemtype` = 10510 WHERE `player_id` = " .. partner .. " AND `itemtype` = 10502") end for _, pid in ipairs(t) do doPlayerSetPartner(pid, 0) local v = getCreatureOutfit(pid) if isInArray({328, 329}, v.lookType) then v.lookType = getPlayerSex(pid) == 0 and 136 or 128 doCreatureChangeOutfit(pid, v) end doPlayerRemoveOutfitId(pid, 34) while doPlayerRemoveItem(pid, 10502, 1) do doPlayerAddItem(pid, 10510, 1) end end end else npcHandler:say('Damn, I bet <hicks> your cheating spouse took all of your money <hicks> from you. You\'re as poor as a church mouse. <hicks>', cid) end end return true end npcHandler:setMessage(MESSAGE_FAREWELL, 'Que Deus esteja com você') npcHandler:setMessage(MESSAGE_WALKAWAY, 'Que Deus esteja com você') npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
Postado Março 30, 2015 10 anos Autor Joadson Irei testar agora mesmo ! Funcionou Perfeitamente... Mais tipo Ve se tem como você me ajudar, Quando eu estou falando com o NPC, ao eu falar uma frase meu boneco repete ela umas 15x e o NPC também, e assim consecutivamente, queria aprender á tirar isso... E Outra coisa, não teria como aparecer no Look de tal player com quem estou casado? Mais Uma coisa, Queria Saber como troca as Roupas que quando a pessoa se divorcia, fica uma roupa do Tibia Normal, queria trocar ! Vou dar enquanto isso 1 REP+, me ajude ai, estarei Dando + Logo Logo @ Edit Á E já ia esquecendo quando se casa ganha varios anel, queria apenas ganhar 1
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.