Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Nome: Married System

Versão: 8.70

Executavel testado: Crystal server V1.0

Bem, esse script eu fiz no meu projeto, arrumei ele completo para funcionar perfeitamente sem nenhum bug no 8.70, claro que consegui.

Em data/npc crie um arquivo .xml e adicione:


<?xml version="1.0" encoding="UTF-8"?>  

<npc name="Priest" script="data/npc/scripts/NOME_SCRIPT_NO_LUA.lua"  walkinterval="0" floorchange="0">

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

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

</npc>

Agora em data/npc/scripts crie um arquivo .lua e adicione:

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

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

						selfSay('Would you like to get married?', 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('You already set a wedding date with {' .. newpartner .. '}, now I must talk to your partner. Do you want to {cancel} it?', cid)

								talkState[talkUser] = 5

						else

								setPlayerStorageValue(cid,3066,-1)

								selfSay('Would you like to get married?', cid)

								talkState[talkUser] = 1

						end

				elseif getPlayerStorageValue(cid,3066) == 2 then

						selfSay('You are already married. If you want to {divorce}, just say it.', cid)

						talkState[talkUser] = 0

				end


		elseif msgcontains(msg, 'divorce') then

				if getPlayerStorageValue(cid,3066) == 2 then

						selfSay('Would you like to divorce of your partner?', cid)

						talkState[talkUser] = 6

				else

						selfSay('You are not married. If you want to get married, just say {marry}.', 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('And what\'s the name of your future partner?', cid)

								talkState[talkUser] = 2

						else

								local marryname = getPlayerNameByGUID(marrystatus)

								selfSay('{' .. marryname .. '} has set a wedding date with you. Do you want to {proceed} or {cancel} the wedding?', 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('A player with that name does not exists.', cid)

						talkState[talkUser] = 0

				elseif sid == fid then

						selfSay('Don\'t worry, you will always be married with yourself, kid.', 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

												setPlayerStorageValue(cid,3066,1)

												addMarryStatus(fid,sid)

												selfSay('You\'ve just set a wedding date with {' .. p .. '}.', cid)

												talkState[talkUser] = 0

										else

												local partnername = getPlayerNameByGUID(ownstatus)

												selfSay('{' .. p .. '} has already set a wedding date with {' .. partnername .. '}.', cid)

												talkState[talkUser] = 0

										end

								else

										local marryname = getPlayerNameByGUID(marrystatus)

										selfSay('{' .. marryname .. '} has set a wedding date with you. Do you want to {proceed} or {cancel} the wedding?', cid)

										talkState[talkUser] = 4

								end

						else

								local pname = getPlayerNameByGUID(pmarriage)

								selfSay('Sorry, but {' .. p .. '} is already married to {' .. pname .. '}.', cid)

								talkState[talkUser] = 0

						end

				end


		elseif talkState[talkUser] == 4 then

				if msgcontains(msg, 'proceed') 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"

								local ring = doPlayerAddItem(cid,2121,1)

								local ring2 = doPlayerAddItem(pid,2121,1)


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

						if getDistanceBetween(tmf, tms) <= 3 then

										setPlayerStorageValue(cid,3066,2)

										setPlayerStorageValue(pid,3066,2)

										doCancelMarryStatus(fid)

										doCancelMarryStatus(sid)

										setPlayerPartner(cid,sid)

										setPlayerPartner(pid,fid)

										doItemSetAttribute(ring, "description", "" .. getCreatureName(cid) .. " & " .. getCreatureName(pid) .. " forever - married on " ..os.date(dateFormat).. ".")

										doItemSetAttribute(ring2, "description", "" .. getCreatureName(cid) .. " & " .. getCreatureName(pid) .. " forever - married on " ..os.date(dateFormat).. ".")

										doCreatureSay(cid, text[chance1], TALKTYPE_ORANGE_1)

										doCreatureSay(pid, text[chance2], TALKTYPE_ORANGE_1)

										doSendMagicEffect(tmf, 35)

										doSendMagicEffect(tms, 35)

										selfSay('Congratulations! Now you may kiss your partner! Everytime you wanna make this effect, just say {love}. You must be close to your partner.', cid)

										talkState[talkUser] = 0


								else

										selfSay('Your partner must be close to you so you can marry!', cid)

										talkState[talkUser] = 0

								end

						else

								selfSay('You and your new partner must be online at the same time.', cid)

								talkState[talkUser] = 0

						end




				elseif msgcontains(msg, 'cancel') 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('You just canceled your wedding date with {' .. 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

						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)

								selfSay('You\'ve just divorced of your old partner.', cid)

								talkState[talkUser] = 0

						else

								selfSay('You and your new partner must be online at the same time.', cid)

								talkState[talkUser] = 0

						end

				end


		end



		return TRUE

end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Em data/lib/functions.lua adicione no final (depois do END):

function getPlayerMarriage(player)

		local rows = db.getResult("SELECT `marriage` FROM `players` WHERE `id` = " .. player .. ";")

		local marry = rows:getDataInt("marriage")

		if marry ~= 0 then

				return marry

		else

				return FALSE

		end

end


function addMarryStatus(player,partner)

		db.executeQuery("UPDATE `players` SET `marrystatus` = " .. partner .. " WHERE `id` = " .. player .. ";")

		return TRUE

end


function doCancelMarryStatus(player)

		db.executeQuery("UPDATE `players` SET `marrystatus` = 0 WHERE `id` = " .. player .. ";")

		return TRUE

end


function getMarryStatus(player)

		local stat = db.getResult("SELECT `id` FROM `players` WHERE `marrystatus` = " .. player .. ";")

		if(stat:getID() == -1) then

				return FALSE

		else

				local info = stat:getDataInt("id")

				return info

		end

end


function getOwnMarryStatus(player)

		local stat = db.getResult("SELECT `marrystatus` FROM `players` WHERE `id` = " .. player .. ";")

		if(stat:getID() == -1) then

				return FALSE

		else

				local info = stat:getDataInt("marrystatus")

				return info

		end

end


function isOnline(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

Agora adicione a query(mysql):

ALTER TABLE `players` ADD `marrystatus` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `marriage` ;

Simples assim!

Retirei todos os bugs, não apareçe nenhum erro no distro/executavel. Espero que gostem!

PS: não sei se funfa nas versões anteriores ou superiores, não testei.

Créditos: Mulizeu 80%

Eu 20%

Editado por Subyth
Arrumando o tópico, adicionando o resto das funções que havia esquecido. (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

mas não tem que colocar as funções e query no tópico junto?

se não eles vão colocar o npc e não vai funcionar '-'

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

mas não tem que colocar as funções e query no tópico junto?

se não eles vão colocar o npc e não vai funcionar '-'

Eita, agradeço por me lembrar kkk esqueci totalmente das query (por isso na minha cabeça tava faltando alguma coisa para adicionar).

Link para o post
Compartilhar em outros sites
  • 2 years later...
  • 2 months later...

 

Nome: Married System

Versão: 8.70

Executavel testado: Crystal server V1.0

Bem, esse script eu fiz no meu projeto, arrumei ele completo para funcionar perfeitamente sem nenhum bug no 8.70, claro que consegui.

Em data/npc crie um arquivo .xml e adicione:

<?xml version="1.0" encoding="UTF-8"?>  
<npc name="Priest" script="data/npc/scripts/NOME_SCRIPT_NO_LUA.lua"  walkinterval="0" floorchange="0">
	<health now="200" max="200"/>
	<look type="57" head="20" body="30" legs="40" feet="50"/>
</npc>
Agora em data/npc/scripts crie um arquivo .lua e adicione:

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, 'marry') or msgcontains(msg, 'marriage') then
				if getPlayerStorageValue(cid,3066) == -1 then
						selfSay('Would you like to get married?', 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('You already set a wedding date with {' .. newpartner .. '}, now I must talk to your partner. Do you want to {cancel} it?', cid)
								talkState[talkUser] = 5
						else
								setPlayerStorageValue(cid,3066,-1)
								selfSay('Would you like to get married?', cid)
								talkState[talkUser] = 1
						end
				elseif getPlayerStorageValue(cid,3066) == 2 then
						selfSay('You are already married. If you want to {divorce}, just say it.', cid)
						talkState[talkUser] = 0
				end

		elseif msgcontains(msg, 'divorce') then
				if getPlayerStorageValue(cid,3066) == 2 then
						selfSay('Would you like to divorce of your partner?', cid)
						talkState[talkUser] = 6
				else
						selfSay('You are not married. If you want to get married, just say {marry}.', 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('And what\'s the name of your future partner?', cid)
								talkState[talkUser] = 2
						else
								local marryname = getPlayerNameByGUID(marrystatus)
								selfSay('{' .. marryname .. '} has set a wedding date with you. Do you want to {proceed} or {cancel} the wedding?', 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('A player with that name does not exists.', cid)
						talkState[talkUser] = 0
				elseif sid == fid then
						selfSay('Don\'t worry, you will always be married with yourself, kid.', 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
												setPlayerStorageValue(cid,3066,1)
												addMarryStatus(fid,sid)
												selfSay('You\'ve just set a wedding date with {' .. p .. '}.', cid)
												talkState[talkUser] = 0
										else
												local partnername = getPlayerNameByGUID(ownstatus)
												selfSay('{' .. p .. '} has already set a wedding date with {' .. partnername .. '}.', cid)
												talkState[talkUser] = 0
										end
								else
										local marryname = getPlayerNameByGUID(marrystatus)
										selfSay('{' .. marryname .. '} has set a wedding date with you. Do you want to {proceed} or {cancel} the wedding?', cid)
										talkState[talkUser] = 4
								end
						else
								local pname = getPlayerNameByGUID(pmarriage)
								selfSay('Sorry, but {' .. p .. '} is already married to {' .. pname .. '}.', cid)
								talkState[talkUser] = 0
						end
				end

		elseif talkState[talkUser] == 4 then
				if msgcontains(msg, 'proceed') 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"
								local ring = doPlayerAddItem(cid,2121,1)
								local ring2 = doPlayerAddItem(pid,2121,1)

						if isOnline(fid) == TRUE and isOnline(sid) == TRUE then
						if getDistanceBetween(tmf, tms) <= 3 then
										setPlayerStorageValue(cid,3066,2)
										setPlayerStorageValue(pid,3066,2)
										doCancelMarryStatus(fid)
										doCancelMarryStatus(sid)
										setPlayerPartner(cid,sid)
										setPlayerPartner(pid,fid)
										doItemSetAttribute(ring, "description", "" .. getCreatureName(cid) .. " & " .. getCreatureName(pid) .. " forever - married on " ..os.date(dateFormat).. ".")
										doItemSetAttribute(ring2, "description", "" .. getCreatureName(cid) .. " & " .. getCreatureName(pid) .. " forever - married on " ..os.date(dateFormat).. ".")
										doCreatureSay(cid, text[chance1], TALKTYPE_ORANGE_1)
										doCreatureSay(pid, text[chance2], TALKTYPE_ORANGE_1)
										doSendMagicEffect(tmf, 35)
										doSendMagicEffect(tms, 35)
										selfSay('Congratulations! Now you may kiss your partner! Everytime you wanna make this effect, just say {love}. You must be close to your partner.', cid)
										talkState[talkUser] = 0

								else
										selfSay('Your partner must be close to you so you can marry!', cid)
										talkState[talkUser] = 0
								end
						else
								selfSay('You and your new partner must be online at the same time.', cid)
								talkState[talkUser] = 0
						end
						


				elseif msgcontains(msg, 'cancel') 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('You just canceled your wedding date with {' .. 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
						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)
								selfSay('You\'ve just divorced of your old partner.', cid)
								talkState[talkUser] = 0
						else
								selfSay('You and your new partner must be online at the same time.', cid)
								talkState[talkUser] = 0
						end
				end

		end


		return TRUE
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Em data/lib/functions.lua adicione no final (depois do END):

function getPlayerMarriage(player)
		local rows = db.getResult("SELECT `marriage` FROM `players` WHERE `id` = " .. player .. ";")
		local marry = rows:getDataInt("marriage")
		if marry ~= 0 then
				return marry
		else
				return FALSE
		end
end

function addMarryStatus(player,partner)
		db.executeQuery("UPDATE `players` SET `marrystatus` = " .. partner .. " WHERE `id` = " .. player .. ";")
		return TRUE
end

function doCancelMarryStatus(player)
		db.executeQuery("UPDATE `players` SET `marrystatus` = 0 WHERE `id` = " .. player .. ";")
		return TRUE
end

function getMarryStatus(player)
		local stat = db.getResult("SELECT `id` FROM `players` WHERE `marrystatus` = " .. player .. ";")
		if(stat:getID() == -1) then
				return FALSE
		else
				local info = stat:getDataInt("id")
				return info
		end
end

function getOwnMarryStatus(player)
		local stat = db.getResult("SELECT `marrystatus` FROM `players` WHERE `id` = " .. player .. ";")
		if(stat:getID() == -1) then
				return FALSE
		else
				local info = stat:getDataInt("marrystatus")
				return info
		end
end

function isOnline(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
Agora adicione a query(mysql):

ALTER TABLE `players` ADD `marrystatus` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `marriage` ;

Simples assim!

Retirei todos os bugs, não apareçe nenhum erro no distro/executavel. Espero que gostem!

PS: não sei se funfa nas versões anteriores ou superiores, não testei.

Créditos: Mulizeu 80%

Eu 20%

 

Ai Mano Adicionei Aki Funfo Mas Não Aparece Quando Clico emcima Da Pessoa Casada Escrito Algo Tipo Casada ou Casado Com Tal Pessoa Oque Devo Fazer?

Link para o post
Compartilhar em outros sites
  • 1 year later...

onde coloca 

 

 

 

e os id dos iten ??? e a outifish male female onde coloka

ALTER TABLE `players` ADD `marrystatus` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `marriage` ;
Editado por eliaszinho (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...
Em 22/06/2012 10:18:48, Subyth disse:

 

 

Nome: Married System

 

 

 

Versão: 8.70

 

 

 

Executavel testado: Crystal server V1.0

 

 

 

 

Bem, esse script eu fiz no meu projeto, arrumei ele completo para funcionar perfeitamente sem nenhum bug no 8.70, claro que consegui.

 

 

Em data/npc crie um arquivo .xml e adicione:

 

 

<?xml version="1.0" encoding="UTF-8"?>  

<npc name="Priest" script="data/npc/scripts/NOME_SCRIPT_NO_LUA.lua"  walkinterval="0" floorchange="0">

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

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

</npc>

Agora em data/npc/scripts crie um arquivo .lua e adicione:

 

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

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

						selfSay('Would you like to get married?', 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('You already set a wedding date with {' .. newpartner .. '}, now I must talk to your partner. Do you want to {cancel} it?', cid)

								talkState[talkUser] = 5

						else

								setPlayerStorageValue(cid,3066,-1)

								selfSay('Would you like to get married?', cid)

								talkState[talkUser] = 1

						end

				elseif getPlayerStorageValue(cid,3066) == 2 then

						selfSay('You are already married. If you want to {divorce}, just say it.', cid)

						talkState[talkUser] = 0

				end


		elseif msgcontains(msg, 'divorce') then

				if getPlayerStorageValue(cid,3066) == 2 then

						selfSay('Would you like to divorce of your partner?', cid)

						talkState[talkUser] = 6

				else

						selfSay('You are not married. If you want to get married, just say {marry}.', 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('And what\'s the name of your future partner?', cid)

								talkState[talkUser] = 2

						else

								local marryname = getPlayerNameByGUID(marrystatus)

								selfSay('{' .. marryname .. '} has set a wedding date with you. Do you want to {proceed} or {cancel} the wedding?', 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('A player with that name does not exists.', cid)

						talkState[talkUser] = 0

				elseif sid == fid then

						selfSay('Don\'t worry, you will always be married with yourself, kid.', 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

												setPlayerStorageValue(cid,3066,1)

												addMarryStatus(fid,sid)

												selfSay('You\'ve just set a wedding date with {' .. p .. '}.', cid)

												talkState[talkUser] = 0

										else

												local partnername = getPlayerNameByGUID(ownstatus)

												selfSay('{' .. p .. '} has already set a wedding date with {' .. partnername .. '}.', cid)

												talkState[talkUser] = 0

										end

								else

										local marryname = getPlayerNameByGUID(marrystatus)

										selfSay('{' .. marryname .. '} has set a wedding date with you. Do you want to {proceed} or {cancel} the wedding?', cid)

										talkState[talkUser] = 4

								end

						else

								local pname = getPlayerNameByGUID(pmarriage)

								selfSay('Sorry, but {' .. p .. '} is already married to {' .. pname .. '}.', cid)

								talkState[talkUser] = 0

						end

				end


		elseif talkState[talkUser] == 4 then

				if msgcontains(msg, 'proceed') 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"

								local ring = doPlayerAddItem(cid,2121,1)

								local ring2 = doPlayerAddItem(pid,2121,1)


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

						if getDistanceBetween(tmf, tms) <= 3 then

										setPlayerStorageValue(cid,3066,2)

										setPlayerStorageValue(pid,3066,2)

										doCancelMarryStatus(fid)

										doCancelMarryStatus(sid)

										setPlayerPartner(cid,sid)

										setPlayerPartner(pid,fid)

										doItemSetAttribute(ring, "description", "" .. getCreatureName(cid) .. " & " .. getCreatureName(pid) .. " forever - married on " ..os.date(dateFormat).. ".")

										doItemSetAttribute(ring2, "description", "" .. getCreatureName(cid) .. " & " .. getCreatureName(pid) .. " forever - married on " ..os.date(dateFormat).. ".")

										doCreatureSay(cid, text[chance1], TALKTYPE_ORANGE_1)

										doCreatureSay(pid, text[chance2], TALKTYPE_ORANGE_1)

										doSendMagicEffect(tmf, 35)

										doSendMagicEffect(tms, 35)

										selfSay('Congratulations! Now you may kiss your partner! Everytime you wanna make this effect, just say {love}. You must be close to your partner.', cid)

										talkState[talkUser] = 0


								else

										selfSay('Your partner must be close to you so you can marry!', cid)

										talkState[talkUser] = 0

								end

						else

								selfSay('You and your new partner must be online at the same time.', cid)

								talkState[talkUser] = 0

						end




				elseif msgcontains(msg, 'cancel') 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('You just canceled your wedding date with {' .. 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

						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)

								selfSay('You\'ve just divorced of your old partner.', cid)

								talkState[talkUser] = 0

						else

								selfSay('You and your new partner must be online at the same time.', cid)

								talkState[talkUser] = 0

						end

				end


		end



		return TRUE

end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Em data/lib/functions.lua adicione no final (depois do END):

 

function getPlayerMarriage(player)

		local rows = db.getResult("SELECT `marriage` FROM `players` WHERE `id` = " .. player .. ";")

		local marry = rows:getDataInt("marriage")

		if marry ~= 0 then

				return marry

		else

				return FALSE

		end

end


function addMarryStatus(player,partner)

		db.executeQuery("UPDATE `players` SET `marrystatus` = " .. partner .. " WHERE `id` = " .. player .. ";")

		return TRUE

end


function doCancelMarryStatus(player)

		db.executeQuery("UPDATE `players` SET `marrystatus` = 0 WHERE `id` = " .. player .. ";")

		return TRUE

end


function getMarryStatus(player)

		local stat = db.getResult("SELECT `id` FROM `players` WHERE `marrystatus` = " .. player .. ";")

		if(stat:getID() == -1) then

				return FALSE

		else

				local info = stat:getDataInt("id")

				return info

		end

end


function getOwnMarryStatus(player)

		local stat = db.getResult("SELECT `marrystatus` FROM `players` WHERE `id` = " .. player .. ";")

		if(stat:getID() == -1) then

				return FALSE

		else

				local info = stat:getDataInt("marrystatus")

				return info

		end

end


function isOnline(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

Agora adicione a query(mysql):

 

ALTER TABLE `players` ADD `marrystatus` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `marriage` ;

 

 

 

Simples assim!

Retirei todos os bugs, não apareçe nenhum erro no distro/executavel. Espero que gostem!

PS: não sei se funfa nas versões anteriores ou superiores, não testei.

 

Créditos: Mulizeu 80%

Eu 20%

 

 

 

CARA ESSA QUERY/MYSQL ONDE E PRA ADICIONAR EU NAO SEI ONDE E PRA ADICIONAR PODERIA ME FALAR TEDOU REP+ PF

 

Link para o post
Compartilhar em outros sites
  • 3 months later...

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo