Ir para conteúdo
  • 0

[Pedido] Sistema De Casamento (Valendo 7 Rep+)


andretoprox

Pergunta

Versão: 8.60

Tipo do Script: CreatureScript e NPC

 

Eu quero um sistema de casamento assim:

Você diz HI pro npc que casa, ele pergunta com quem você deseja casar. Os dois precisam de um Crystal Ring para poder casar. Daí quando você diz o nome da pessoa, ele manda um PM para aquela pessoa perguntando se deseja casar. Você diz que sim e você ganha um anel de casamento. Você diz que não e não foi aceito o casamento.

Daí, depois que você casar, quando alguém dar LOOK em você ou em seu marido/ sua mulher , vai estar escrito:

"Esta casado(a) com ..Nome do marido/mulher.."

E se der, sistema de divórcio, pra desfazer tudo o casamento.

 

VALENDO 1 SEMANA DE REP +

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Esse esta como voce pediu menos 1 coisa igual, que é de mandar msg pro outro player, tipo quando o player 1 fala com o padre e cita o nome do player 2

só o player 2 ir no npc e falar com o padre e estao casados, e agora nao me lembro se fica escrito quando der look, mas no anel fica o nome do outro.

Os dois players precisa estar pperto 1 do outro e os 2 precisando estar logados!

Aqui vai:

 

 

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, 'casar') or msgcontains(msg, 'casamento') then

if getPlayerStorageValue(cid,3066) == -1 then

selfSay('Voc\ê quer se casar?', cid)

talkState[talkUser] = 1

elseif getPlayerStorageValue(cid,3066) == 1 then

local fid = getPlayerGUID(cid)

local marrystatus = getOwnMarryStatus(fid)

if marrystatus ~= 0 then

local newpartner = getPlayerNameByGUID(marrystatus)

selfSay('Espere a aceita\ç\ão de {' .. newpartner .. '} para prosseguir com o casamento. Voc\ê quer {cancelar} isso?', cid)

talkState[talkUser] = 5

else

setPlayerStorageValue(cid,3066,-1)

selfSay('Voc\ê quer se casar?', cid)

talkState[talkUser] = 1

end

elseif getPlayerStorageValue(cid,3066) == 2 then

selfSay('Voc\ê ja est\á casado(a). Se voc\ê quer um {divorcio}, diga isto.', cid)

talkState[talkUser] = 0

end

 

elseif msgcontains(msg, 'divorcio') then

if getPlayerStorageValue(cid,3066) == 2 then

selfSay('Tem certeza que deseja se separar? Isto lhe custar\á 5000 gold coins.', cid)

talkState[talkUser] = 6

else

selfSay('Voc\ê n\ão est\á casado(a). Se voc\ê quer casar, diga {casar}.', cid)

talkState[talkUser] = 0

end

end

 

if talkState[talkUser] == 1 then

if msgcontains(msg, 'yes') then

local fid = getPlayerGUID(cid)

local marrystatus = getMarryStatus(fid)

if marrystatus == FALSE then

selfSay('Traga uma roupa de casamento e um anel e me diga qual \é o nome do seu(sua) futuro(a) parceiro(a)?', cid)

talkState[talkUser] = 2

else

local marryname = getPlayerNameByGUID(marrystatus)

selfSay('{' .. marryname .. '} definiu se casar com voc\ê. Se quiser {prosseguir} traga a roupa de casamento e o anel ou se quiser {cancelar} o casamento, diga isto.', cid)

talkState[talkUser] = 4

end

end

 

 

 

elseif talkState[talkUser] == 2 then

local p = msg

local player = getPlayerName(cid)

local fid = getPlayerGUID(cid)

local sid = getPlayerGUIDByName(p)

if sid == 0 then

selfSay('O player com este nome n\ão existe.', cid)

talkState[talkUser] = 0

elseif sid == fid then

selfSay('N\ão se preocupe, voc\ê sempre vai estar casado(a) com si mesmo(a), crian\ça.', cid)

talkState[talkUser] = 0

else

local marrystatus = getMarryStatus(fid)

local pmarriage = getPlayerMarriage(sid)

local ownstatus = getOwnMarryStatus(cid)

if pmarriage == FALSE then

if marrystatus == FALSE then

if ownstatus == FALSE then

if doPlayerRemoveItem(cid, 2124,1) then

setPlayerStorageValue(cid,3066,1)

addMarryStatus(fid,sid)

selfSay('Voc\ê acabou de marcar um casamento com {' .. p .. '}.', cid)

talkState[talkUser] = 0

else

selfSay('Voc\ê n\ão trouxe um wedding ring e um wedding outfit box.', cid)

talkState[talkUser] = 0

end

else

local partnername = getPlayerNameByGUID(ownstatus)

selfSay('{' .. p .. '} já definiu a data do casamento com {' .. partnername .. '}.', cid)

talkState[talkUser] = 0

end

else

local marryname = getPlayerNameByGUID(marrystatus)

selfSay('{' .. marryname .. '} definiu se casar com voc\ê. Se quiser {prosseguir} traga a roupa de casamento ou se quiser {cancelar} o casamento, diga isto.', cid)

talkState[talkUser] = 4

end

else

local pname = getPlayerNameByGUID(pmarriage)

selfSay('Desculpa, mas {' .. p .. '} j\á est\á casado(a) com {' .. pname .. '}.', cid)

talkState[talkUser] = 0

end

end

elseif talkState[talkUser] == 4 then

if msgcontains(msg, 'prosseguir') then

local fid = getPlayerGUID(cid)

local sid = getMarryStatus(fid)

local marryname = getPlayerNameByGUID(sid)

local pid = getPlayerByNameWildcard(marryname)

local tmf = getCreaturePosition(cid)

local tms = getCreaturePosition(pid)

local text = {'I love you!','My love!','Baby dear!'}

local chance1 = math.random(1,table.getn(text))

local chance2 = math.random(1,table.getn(text))

local dateFormat = "%A %d"..getMonthDayEnding(os.date("%d")).." %B %Y"

 

 

if isOnline(fid) == TRUE and isOnline(sid) == TRUE then

if getDistanceBetween(tmf, tms) <= 3 then

if doPlayerRemoveItem(cid, 2124,1) then setPlayerStorageValue(cid,3066,2)

setPlayerStorageValue(pid,3066,2)

doCancelMarryStatus(fid)

doCancelMarryStatus(sid)

setPlayerPartner(cid,sid)

setPlayerPartner(pid,fid)

setPlayerStorageValue(cid,10024,1)

setPlayerStorageValue(pid,10024,1)

local ring = doPlayerAddItem(cid,10502,1)

local ring2 = doPlayerAddItem(pid,10502,1)

doItemSetAttribute(ring, "description", 'Com amor, '.. getPlayerName(pid).. '.')

doItemSetAttribute(ring2, "description", 'Com amor, '.. getPlayerName(cid).. '.')

doCreatureSay(cid, text[chance1], TALKTYPE_ORANGE_1)

doCreatureSay(pid, text[chance2], TALKTYPE_ORANGE_1)

doSendMagicEffect(tmf, 35)

doSendMagicEffect(tms, 35)

selfSay('Parab\éns! Agora, noivo, pode beijar a noiva! Sejam felizes para sempre.', cid)

talkState[talkUser] = 0

else

selfSay('Voc\ê n\ão trouxe um wedding ring e um wedding outfit box.', cid)

end

 

else

selfSay('Seu parceiro(a) deve estar perto de voc\ê, assim voc\ê pode se casar!', cid)

talkState[talkUser] = 0

end

else

selfSay('Voc\ês precisam estar online ao mesmo tempo.', cid)

talkState[talkUser] = 0

end

 

 

 

elseif msgcontains(msg, 'cancelar') then

local fid = getPlayerGUID(cid)

local sid = getMarryStatus(fid)

local marryname = getPlayerNameByGUID(sid)

local pid = getPlayerByNameWildcard(marryname)

if isOnline(sid) == TRUE then

setPlayerStorageValue(pid,3066,-1)

end

doCancelMarryStatus(sid)

selfSay('Voc\ê cancelou seu casamento com {' .. marryname .. '}.', cid)

talkState[talkUser] = 0

end

 

elseif talkState[talkUser] == 5 then

if msgcontains(msg, 'cancel') or msgcontains(msg, 'yes') then

local fid = getPlayerGUID(cid)

setPlayerStorageValue(cid,3066,-1)

doCancelMarryStatus(fid)

talkState[talkUser] = 0

end

 

elseif talkState[talkUser] == 6 then

if msgcontains(msg, 'yes') then

if doPlayerRemoveMoney(cid, 5000) then

local fid = getPlayerGUID(cid)

local sid = getPlayerPartner(cid)

local marryname = getPlayerNameByGUID(sid)

local pid = getPlayerByNameWildcard(marryname)

if (isOnline(fid) == TRUE and isOnline(sid) == TRUE) then

setPlayerStorageValue(cid,3066,-1)

setPlayerStorageValue(pid,3066,-1)

setPlayerPartner(cid,0)

setPlayerPartner(pid,0)

setPlayerStorageValue(cid,10024,-1)

setPlayerStorageValue(pid,10024,-1)

selfSay('Voc\ê se divorciou.', cid)

talkState[talkUser] = 0

else

selfSay('Voc\ês precisam estar online ao mesmo tempo.', cid)

talkState[talkUser] = 0

end

else

selfSay('Voc\ê precisar para 5000 gold coins para se divorciar.',cid)

talkState[talkUser] = 0

end

end

end

 

 

return TRUE

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Link para o comentário
Compartilhar em outros sites

  • 0

data/npc/

 

 

 

 

 

<?xml version="1.0"?>

<npc name="Padre" script="data/npc/scripts/weedding.lua" access="3" lookdir="2">

<mana now="800" max="800"/>

<health now="200" max="200"/>

<look type="57" head="20" body="30" legs="40" feet="50"/>

<parameters>

<parameter key="message_greet" value="Ola |PLAYERNAME|. Eu realizo {casamentos}."/>

</parameters>

</npc>

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...