Ir para conteúdo

Featured Replies

Postado

pessoal, estou aqui novamente para pedir pra vcs uma ajudinha ><'

eu tenho um sistema de character market

venda e compra de character in game, ele está funcionando perfeitamente

mais quero mudar uma coisa nele, ele está vendendo character por golds

eu queria a ajuda de vcs para adaptar ele, pra vender character em points

ou pode ser tbm pra aceitar outra moeda, sem ser o gold

 

Servidor 8.60

 

alguem pode me ajudar ?? REP+

 

aqui o sistema de points que eu uso

http://www.tibiaking.com/forum/topic/8183-system-pontos-p-points-system/

 

aqui o script character market

http://www.tibiaking.com/forum/topic/18488-mod-characters-market-system/

Editado por subhe (veja o histórico de edições)

n35408.gif

  • Respostas 36
  • Visualizações 2.5k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • essa query pega pelo nome q lixo, fiz uma nova, ta aí     <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Characters Market System" version="1.0" author="LuckOake" contact="none"

  • testa lá...Editei o script

  • Testa ainda mano.. Abraço Data provided by Pastebin.com - Download Raw - See Original <?xml version="1.0" encoding="UTF-8"?> <mod name="Characters Market System" version="1.0" author="LuckO

Posted Images

Postado

pessoal, estou aqui novamente para pedir pra vcs uma ajudinha ><'

eu tenho um sistema de character market

venda e compra de character in game, ele está funcionando perfeitamente

mais quero mudar uma coisa nele, ele está vendendo character por golds

eu queria a ajuda de vcs para adaptar ele, pra vender character em points

ou pode ser tbm pra aceitar outra moeda, sem ser o gold

 

alguem pode me ajudar ?? REP+

 

aqui o sistema de points que eu uso

http://www.tibiaking.com/forum/topic/8183-system-pontos-p-points-system/

 

aqui o script character market

http://www.tibiaking.com/forum/topic/18488-mod-characters-market-system/

Tentei Adaptar ele testa aí...

Data provided by Pastebin.com - Download Raw - See Original
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Characters Market System" version="1.0" author="LuckOake" contact="none" enabled="yes">
------------------------------------------------------------------------------------
<config name="market"><![CDATA[
price = 27112
owner = 27113
level = 30 -- Level mínimo que o character deve ter para ser vendido
min_price = 100 -- Preço mínimo de um character
max_price = 1000000 -- Preço máximo de um character

function doTransferCharacter(cid, accId)
	 return db.executeQuery("UPDATE `players` SET `account_id` = "..accId.." WHERE `id` = "..getPlayerGUIDByName(cid).."")
end

function doOfflinePlayerAddMoney(guid, money)
	 return db.executeQuery("UPDATE `accounts` SET `p_points` = `p_points` + '"..money.."' WHERE `id` = '"..getPlayerGUIDByName(guid).."';")
end

function setOfflinePlayerStorageValue(name, key, value)
	 local result = db.getResult("SELECT * FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";")
	 if result:getID() == -1 then
			 return db.executeQuery("INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES (".. getPlayerGUIDByName(name) ..", ".. key ..", ".. value ..");")
	 else
			 result:free()
			 return db.executeQuery("UPDATE `player_storage` SET `value` = ".. value .." WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";")
	 end
end

function getOfflinePlayerStorageValue(name, key)
	 local result, ret = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = '".. getPlayerGUIDByName(name) .."' AND `key` = ".. key ..";")
	 if result:getID() == -1 then
			 return nil
	 end
	 ret = result:getDataInt("value")
	 result:free()
	 return ret
end

function getOfflinePlayerValue(name, value)
	 local result, ret = db.getResult("SELECT `"..value.."` FROM `players` WHERE `id` = "..getPlayerGUIDByName(name)..";")
	 ret = result:getDataInt(value)
	 result:free()
	 return ret
end

function isCharacterForSale(name)
	 if not getOfflinePlayerStorageValue(name, price) or getOfflinePlayerStorageValue(name, price) < 1 then
	 return false
	 else
	 return true
	 end
end
]]></config>
------------------------------------------------------------------------------------
<talkaction words="!character" event="buffer"><![CDATA[
domodlib('market')
	 local t = string.explode(param, ",")
	
	 if t[1] == "sell" then
			 if not t[3] or not tonumber(t[3]) or t[4] or tonumber(t[2]) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name and the price.") return true
			 elseif getPlayerAccountId(cid) ~= getAccountIdByName(t[2]) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This is not your character.") return true
			 elseif isCharacterForSale(t[2]) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is already for sale.") return true
			 elseif getPlayerGUIDByName(t[2]) == getPlayerGUID(cid) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You cannot sell yourself.") return true
			 elseif getPlayerByName(t[2]) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The character must be offline to be sold.") return true
			 elseif getOfflinePlayerValue(t[2], "level") < level then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your character can't be sold until it has level "..level..".") return true
			 elseif tonumber(t[3]) < min_price then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, but the minimum price for selling a character is "..min_price..".") return true
			 elseif tonumber(t[3]) > max_price then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, but the maximum price for selling a character is "..max_price..".") return true
			 end
	
					 setOfflinePlayerStorageValue(t[2], price, t[3])
					 setOfflinePlayerStorageValue(t[2], owner, getPlayerGUID(cid))
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Your character "'..t[2]..'" is now for sale for the price of "'..t[3]..'" gold coins.')
	 elseif t[1] == "buy" then
			 if not t[2] then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name.") return true
			 elseif not playerExists(t[2]) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character doesn't exist.") return true
			 elseif getPlayerAccountId(cid) == getAccountIdByName(t[2]) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You can't buy your own character.") return true
			 elseif not isCharacterForSale(t[2]) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is not for sale.") return true
			 elseif not doPlayerRemoveMoney(cid, db.executeQuery("UPDATE `accounts` SET `p_points` = `p_points` - '"..money.."' WHERE `id` = '"..getPlayerGUIDByName(guid).."';")
end, price)) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Not enough Points. This character's price is "..getOfflinePlayerStorageValue(t[2], price).." gold coins.") return true
			 end
					
			 if not getPlayerByGUID(getOfflinePlayerStorageValue(t[2], owner)) then
					 doOfflinePlayerAddMoney(getPlayerNameByGUID(getOfflinePlayerStorageValue(t[2], owner)), getOfflinePlayerStorageValue(t[2], price))
					 setOfflinePlayerStorageValue(getPlayerNameByGUID(getOfflinePlayerStorageValue(t[2], owner)), 41792, getPlayerGUIDByName(t[2]))
			 else
					 doPlayerAddMoney(getPlayerByGUID(getOfflinePlayerStorageValue(t[2], owner)), getOfflinePlayerStorageValue(t[2], price))
					 doPlayerSendTextMessage(getPlayerByGUID(getOfflinePlayerStorageValue(t[2], owner)), MESSAGE_STATUS_CONSOLE_BLUE, 'Your character "'..t[2]..'" has been sold for the price of '..getOfflinePlayerStorageValue(t[2], price)..' gold coins.')
			 end
					 doTransferCharacter(t[2], getPlayerAccountId(cid))
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You bought the character "'..t[2]..'" for the price of '..getOfflinePlayerStorageValue(t[2], price)..' gold coins.')
					 setOfflinePlayerStorageValue(t[2], owner, -1)
					 setOfflinePlayerStorageValue(t[2], price, -1) return true
	 elseif t[1] == "remove" then
			 if not t[2] then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name.") return true
			 elseif getPlayerAccountId(cid) ~= getAccountIdByName(t[2]) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This is not your character.") return true
			 elseif not isCharacterForSale(t[2]) then
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is not for sale.") return true
			 end
			
					 setOfflinePlayerStorageValue(t[2], price, -1)
					 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You removed the character "'..t[2]..'" from the Characters Market.') return true
	 elseif t[1] == "list" then
			 local result = db.getResult("SELECT `name` FROM `players`")
			 if result:getID() == -1 then
					 return true
			 end
			 local msg = "Characters for Sale:\n\n"
			 while true do
					 local name = result:getDataString("name")
					 if isCharacterForSale(name) then
					 local sex = getOfflinePlayerValue(name, "sex") == 1 and "Male" or "Female"
							 msg = ""..msg.." - ".. name .." (Level: "..getOfflinePlayerValue(name, "level").." / Vocation: "..getVocationInfo(getOfflinePlayerValue(name, "vocation")).name.." / Sex: "..sex.." / Owner: "..getPlayerNameByGUID(getOfflinePlayerStorageValue(name, owner))..") [Price: "..getOfflinePlayerStorageValue(name, price).."] \n"
					 end
					 if not result:next() then
							 break
					 end
			 end
					 doPlayerPopupFYI(cid, msg) return true
	 elseif not t[1] or t[1] ~= "buy" or t[1] ~= "sell" or t[1] ~= "remove" or t[1] ~= "list" then
			 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Incorrect params. You can only 'buy' or 'sell' a character, 'remove' it from the Characters Market or see the 'list' of characters for sale.") return true
	 end
return true
]]></talkaction>
------------------------------------------------------------------------------------
<event type="login" name="MarketLogin" event="script"><![CDATA[
function onLogin(cid)
domodlib('market')
	 if getPlayerStorageValue(cid, price) > 0 then return false
	 elseif getPlayerStorageValue(cid, 41792) ~= -1 then
			 doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You sold the character "..getPlayerNameByGUID(getPlayerStorageValue(cid, 41792))..". The Points is in your bank account.")
			 setPlayerStorageValue(cid, 41792, -1)
	 end
return true
end
]]></event>
</mod>

Editado por cs007 (veja o histórico de edições)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo