Pesquisar na Comunidade
Mostrando resultados para as tags ''casamento''.
Encontrado 2 registros
-
Olá galera do XT, Boa tarde O que eu gostaria hoje era que meu npc de casamento retirasse o anel de casado ao se divorciarem e desse o broken com o look de divorcio. Exemplo: Você vê um engraved wedding ring. Fulano & Sicrano para sempre - casaram em 29 December 2015 11:39:46 . obs: Esse eles estão casados O do divorcio seria mais o menos assim: Exemplo: Você vê um broken engraved wedding ring. Fulano e Sicrano para sempre não existe - Se divorciaram em 29 December 2015 11:39:46 . Se não tiver o look não tem problema, poderia ser so o npc retirando o engraved ring e dando o broken aos jogadores. Então o script que eu uso é esse: http://www.xtibia.com/forum/topic/188712-marriage-system-npc/ Para aqueles que não quiserem entrar na pagina o script do NPC: <spoiler> domodlib('marry_func') 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 msg,players = string.lower(msg), {getPlayerGUID(cid)} if msgcontains(msg, 'marry') or msgcontains(msg, 'marriage') then if isMarried(cid) then npcHandler:say("Sorry, You already is wedded.", cid) elseif getPlayerStorageValue(cid, marry_config.storage3) >= 1 then npcHandler:say("you must sign the {divorce}.", cid) elseif getPlayerStorageValue(cid, marry_config.storage1) >= os.time() then local pid = getPlayerStorageValue(cid, marry_config.storage2) npcHandler:say(getPlayerNameByGUID(pid).." has set a wedding date with you. Do you want to {proceed} or {cancel} the wedding?", cid) talkState[talkUser] = 2 else npcHandler:say("Would you like to get married?", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, "yes") and talkState[talkUser] == 1 then npcHandler:say("And what\'s the name of your future partner?", cid) talkState[talkUser] = 3 elseif talkState[talkUser] == 3 then local player = getPlayerByNameWildcard(msg) if(not player)then npcHandler:say(msg.." is offline or does not exist.", cid) return true elseif isMarried(player) then npcHandler:say("He already is wedded.", cid) return true elseif getPlayerStorageValue(cid, marry_config.storage3) >= 1 or getPlayerStorageValue(player, marry_config.storage3) >= 1 then npcHandler:say((getPlayerStorageValue(cid, marry_config.storage1) >= 1 and "You" or "He").." must sign the divorce.", cid) return true elseif getPlayerLevel(cid) < marry_config.Level or getPlayerLevel(player) < marry_config.Level then npcHandler:say("players must to be level "..marry_config.Level, cid) return true elseif getPlayerStorageValue(player, marry_config.storage1) >= os.time() then npcHandler:say(msg.." already have a wedding invitation, wait.", cid) return true elseif getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(player)) > marry_config.MaxSqm then npcHandler:say("you are far away from each other to get married.", cid) return true elseif marry_config.OnlyDifferentSex and getPlayerSex(cid) == getPlayerSex(player) then npcHandler:say("you can only marry the opposite sex", cid) return true elseif not doPlayerRemoveMoney(cid, marry_config.Marry_Price) then npcHandler:say("Sorry, but you do not have "..marry_config.Marry_Price.." gp(s) to ask "..msg.." in marriage.", cid) return true end setPlayerStorageValue(player, marry_config.storage1,os.time()+marry_config.TimeAccept) setPlayerStorageValue(player, marry_config.storage2, getPlayerGUID(cid)) npcHandler:say("you asked "..msg.." in marriage, wait a answer!", cid) doPlayerSendTextMessage(player, MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid).." asked you in marriage.") talkState[talkUser] = 0 elseif msgcontains(msg, "proceed") and talkState[talkUser] == 2 then player = getPlayerStorageValue(cid, marry_config.storage2) if getPlayerStorageValue(cid, marry_config.storage1) >= os.time() then if not isMarried(cid) then if Ponline(player) then x = getPlayerByNameWildcard(getPlayerNameByGUID(player)) if getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(x)) <= marry_config.MaxSqm then table.insert(players, player) doMarry(cid, player) for i = 1, #players do local ring = doPlayerAddItem(getPlayerByNameWildcard(getPlayerNameByGUID(players[i])), marry_config.RingID, 1) doItemSetAttribute(ring, "description", getCreatureName(cid) .. " & " .. getPartner(cid) .. " forever - married on " ..getMarryDate(cid).. ".") doCreatureSay(getPlayerByNameWildcard(getPlayerNameByGUID(players[i])), marry_config.Text[math.random(1,#marry_config.Text)], TALKTYPE_ORANGE_1) doSendMagicEffect(getCreaturePosition(getPlayerByNameWildcard(getPlayerNameByGUID(players[i]))), 35) setPlayerStorageValue(getPlayerByNameWildcard(getPlayerNameByGUID(players[i])), marry_config.storage3, 1) setPlayerStorageValue(getPlayerByNameWildcard(getPlayerNameByGUID(players[i])), 150420, 1) end npcHandler:say("Congratulations! Now you may kiss your partner! to see the status of marriage enter !marriage status", cid) talkState[talkUser] = 0 else npcHandler:say("you're far away from her suitor.", cid) end else npcHandler:say("suitor offline.", cid) end else npcHandler:say("you are not married.", cid) talkState[talkUser] = 0 end else npcHandler:say("you do not received none wedding invitation.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "cancel") and talkState[talkUser] == 2 then player = getPlayerStorageValue(cid, marry_config.storage2) if getPlayerStorageValue(cid, marry_config.storage1) >= os.time() then if not isMarried(cid) then setPlayerStorageValue(cid, marry_config.storage1, -1) npcHandler:say("You just refuse the wedding invitation from player "..getPlayerNameByGUID(player), cid) if Ponline(player) then doPlayerSendTextMessage(getPlayerByNameWildcard(getPlayerNameByGUID(player)), MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid).." rejected his marriage proposal.") end else npcHandler:say("you are already married.", cid) talkState[talkUser] = 0 end else npcHandler:say("you do not received none wedding invitation.", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "divorce") then if isMarried(cid) then npcHandler:say("Would you like to divorce of your partner for "..marry_config.Divorce_Price.." gp(s) ? {yes}", cid) talkState[talkUser] = 6 elseif getPlayerStorageValue(cid, marry_config.storage3) >= 1 then npcHandler:say("you must sign here to end your marriage, ok? {yes}", cid) talkState[talkUser] = 7 else npcHandler:say("you are not married", cid) talkState[talkUser] = 0 end elseif msgcontains(msg, "yes") and talkState[talkUser] == 6 then if isMarried(cid) then if doPlayerRemoveMoney(cid, marry_config.Divorce_Price) then npcHandler:say("Congratulations, you end up divorcing from player: "..getPartner(cid), cid) setPlayerStorageValue(cid, 150420, -1) setPlayerStorageValue(cid, marry_config.storage3, -1) pguid = getPlayerGUIDByName(getPartner(cid)) if Ponline(pguid) then setPlayerStorageValue(getPlayerByNameWildcard(getPlayerNameByGUID(pguid)), 150420, -1) else db.executeQuery("DELETE FROM `player_storage` WHERE `player_id` = " .. pguid .. " AND `key` = 150420;") end doDivorcePlayer(cid) else npcHandler:say("Sorry, you do not have "..marry_config.Divorce_Price.." gp(s).", cid) end else npcHandler:say("you are not married.", cid) end elseif msgcontains(msg, "yes") and talkState[talkUser] == 7 then npcHandler:say("Congratulations, you end up divorcing.", cid) setPlayerStorageValue(cid, marry_config.storage3, -1) elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("tudo bem então.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) <spoiler/> Aqui é o MOD, creio que onde tudo se resume ao look no ring. <spoiler> <?xml version="1.0" encoding="UTF-8"?> <mod name="MarriageSystem" version="1.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="marry_func"><![CDATA[ marry_config = { OnlyDifferentSex = false, Marry_Price = 300000, Divorce_Price = 100000, Level = 50, MaxSqm = 7, -- to marry Text = {'I love you!','My love!','Baby dear!'}, RingID = 10502, TimeAccept = 30, storage1 = 300235, storage2 = 300236, storage3 = 300237 } function isMarried(cid) local m = db.getResult("SELECT `player_id` FROM `marriage_system` WHERE `player_id` = '"..getPlayerGUID(cid).."';") if(m:getID() == -1) then local e = db.getResult("SELECT `partner` FROM `marriage_system` WHERE `partner` = '"..getPlayerGUID(cid).."';") if(e:getID() == -1) then return false end end return true end function isPatner(cid) local p = db.getResult("SELECT `partner` FROM `marriage_system` WHERE `player_id` = '"..getPlayerGUID(cid).."';") if(p:getID() == -1) then return true end return false end function Ponline(player) local rows = db.getResult("SELECT `online` FROM `players` WHERE `id` = " .. player .. ";") local on = rows:getDataInt("online") if on ~= 0 then return TRUE else return FALSE end end function getPartner(cid) if isPatner(cid) then a = db.getResult("SELECT `player_id` FROM `marriage_system` WHERE `partner` = '"..getPlayerGUID(cid).."';") b = "player_id" else a = db.getResult("SELECT `partner` FROM `marriage_system` WHERE `player_id` = '"..getPlayerGUID(cid).."';") b = "partner" end local query = a return getPlayerNameByGUID(query:getDataString(b)) end function doMarry(cid, patner) return db.executeQuery("INSERT INTO `marriage_system` (`player_id`, `partner`, `marriage_date`) VALUES ('".. getPlayerGUID(cid) .."', '"..patner.."', '".. os.time() .."');") end function doDivorcePlayer(cid) if isPatner(cid) then pid,player = getPlayerGUIDByName(getPartner(cid)),getPlayerByNameWildcard(getPartner(cid)) else pid,player = getPlayerGUID(cid),cid end return db.executeQuery("DELETE FROM `marriage_system` WHERE `player_id` = '" .. pid .. "';") end function getMarryDate(cid) local player = isPatner(cid) and getPlayerGUIDByName(getPartner(cid)) or getPlayerGUID(cid) local date = db.getResult("SELECT `marriage_date` FROM `marriage_system` WHERE `player_id` = '"..player.."';") return os.date("%d %B %Y %X ", date:getDataInt("marriage_date")) end ]]></config> <talkaction words="/marriage;!marriage" event="buffer"><![CDATA[ domodlib('marry_func') param = string.lower(param) if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"invalid command, for more information enter !marriage info") elseif(param == "info") then doShowTextDialog(cid,2160,"Marriage Info:\n\nLevel Minimum: "..marry_config.Level.."\nMarriage Cost: "..marry_config.Marry_Price.."\nDivorce Cost: "..marry_config.Divorce_Price.."\n\nMarried Players have a special buffs as a wedding gift given by the union\n\nThis bonus is only given if the married players are nearby.") elseif(param == "status") then doPlayerPopupFYI(cid,""..(isMarried(cid) and "Marriage Status".."\n\nMarried with: ["..getPartner(cid).."]\n\nThe date of his marriage was: "..getMarryDate(cid).."" or "you are not married").."") end return true ]]></talkaction> <event type="login" name="MarryRegister" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "MarryLook") registerCreatureEvent(cid, "MarryNoAttack") return true end]]></event> <event type="look" name="MarryLook" event="script"><![CDATA[ domodlib('marry_func') function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and isMarried(thing.uid) then doPlayerSetSpecialDescription(thing.uid,'.\n'..(getPlayerSex(thing.uid) == 0 and 'She' or 'He')..' is married to '..getPartner(thing.uid)) end return true end]]></event> <event type="combat" name="MarryNoAttack" event="script"><![CDATA[ domodlib('marry_func') if isPlayer(cid) and isPlayer(target) and isMarried(cid) and isMarried(target) then if (getCreatureName(target) == getPartner(cid))then doPlayerSendCancel(cid, "You may not attack this player.") return false end end return true ]]></event> </mod> <spoiler/>
-
Boa tarde pessoal, Gostaria de saber se existe um Married System para TFS 0.3.6 ? e também se precisa adicionar alguma tabela em servidores SQL? Eu achei vários já, um até que dizem funcionar no 0.3.6. Só que ele tem um problema: Até onde o primeiro player fala 'Hi / marry / yes / nome da noiva(o)' está tudo OK! Agora quando o outro que foi convidado para casar vai falar 'Hi / marry / yes / não aparece aquela pergunta proceed ou cancel.' Aparece como se o player nem fosse convidado para se casar. E no Distro aparece esse erro: [30/01/2012 12:05:27] Error during getDataInt(marrystatus). [30/01/2012 12:05:33] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such column: marrystatus (UPDATE "players" SET "marrystatus" = 5 WHERE "id" = 4;) Disconfio que precise adicionar alguma tabela, mas nos tutoriais só dizem a pra Mysql. Entao, se alguem puder ajudar, eu agradeço e terá seu REP+ adicionado na hora! Po ninguém mais responde as dúvidas nesse fórum? ;/
-
- married
- married system
- (e 4 mais)