Ir para conteúdo
  • 0

Comando que compra OUTFIT


jhonatanp

Pergunta

gostaria de um talckation ou algo do tipo que você compra outfits, será o seguinte.



O Player utiliza /buyoutfit nomedaoutfit



Exemplo: /buyoutfit Vengeance e o preço seria do id do dinheiro 2160 quantidade 10.




estou procurando faz tempo e n consigo achar.




BASE: PDA BY SENHOR


Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

 

local config = {
["citizen"] = {
Male_Female = {128,136}, -- O Looktype Male, Female que vai ser vendida
itemid_count = {2160,5}, -- id do item, quantidade do item que sera removido
storage = 30190 -- uma storage não utilizada
},
["barbarian"] = {
Male_Female = {143,147},
itemid_count = {2160,5},
storage = 30191
}
}
function onSay(cid, words, param)
if param == "" then
doPlayerSendTextMessage(cid, 22, "Digite o nome do outfit a ser comprado.") return true
end
local param = param:lower()
if not outfit[param] then
doPlayerSendTextMessage(cid, 22, "Outfit nao encontrado.") return true
end
local t = outfit[param]
if getPlayerStorageValue(cid, t.storage) > 0 then
doPlayerSendTextMessage(cid, 22, "Desculpe voce ja comprou esse outift.") return true
elseif not doPlayerRemoveItem(cid, t.itemid_count[1], t.itemid_count[2]) then
doPlayerSendTextMessage(cid, 22, "Voce nao tem dinheiro suficiente.") return true
end
doPlayerAddOutfit(cid, getPlayerSex(cid) == 1 and t.Male_Female[1] or t.Male_Female[2], 1)
setPlayerStorageValue(cid, t.storage, 1)
doPlayerSendTextMessage(cid, 22, "Voce comprou a outfit "..param)
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Vá em data / scripts / talkactions / renomeie alguem arquivo para outiftbuy.lua

 

é adicione

function onSay(cid, words, param)

local storage = 30193 -- mão mexa
local itemid = 2160 -- id do item que vai remover
local count = 5 -- quantidade do item que vai remover
local looktype = 75 -- O Looktype da outift que vai ser vendida


if getPlayerStorageValue(cid, storage) >= 1 then
doPlayerSendTextMessage(cid, 22, "Desculpe voce ja comprou essa outift")
return true
end
if doPlayerRemoveItem(cid,itemid,count) then
doPlayerSendTextMessage(cid, 22, "Você não tem dinheiro suficiente")
return true
end
doPlayerAddOutfit(cid,looktype,3)
setPlayerStorageValue(cid, storage, 1)
doPlayerSendTextMessage(cid, 22, "Você comprou a outift")
return true
end
Em talkactions.xml
<talkaction words="!outift" event="script" value="outiftbuy.lua"/>
Editado por Kissy
Link para o comentário
Compartilhar em outros sites

  • 0

Desculpa mais não da para entender muito o script pelo fato de estar tudo em 1 linhas, eu coloquei no servidor mais eu digito o comando não da nenhum erro e não compra nada não da nenhuma mensagem..

 

tem como formatar a script melhor?


@EDIT, VI QUE REFORMULOU IREI TESTAR E JA DOU A RESPOSTA.


Seguinte

seguinte, quando eu utilizo o comando diz "Você comprou a outift" ai eu checo nas outfits e ela não está ali, e tbm não está removendo o dinheiro da pessoa, alias não precisa nem estar com o dinheiro na bag.

Editado por jhonatanp
Link para o comentário
Compartilhar em outros sites

  • 0

não. É um servidor de pokemon como eu citei no começo.

Tenta assim amigo:

 

 

local config = {
	["citizen"] = {
		looktypeMale = 128, -- O Looktype da outift que vai ser vendida para males
		looktypeFemale = 136, -- O Looktype da outift que vai ser vendida para females
		itemid = 2160, -- id do item que vai remover
		count = 5, -- quantidade do item que vai remover
		storage = 30190 -- uma storage não utilizada
	},
	["barbarian"] = {
		looktypeMale = 143, -- O Looktype da outift que vai ser vendida para males
		looktypeFemale = 147, -- O Looktype da outift que vai ser vendida para females
		itemid = 2160, -- id do item que vai remover
		count = 5, -- quantidade do item que vai remover
		storage = 30191 -- uma storage não utilizada
	},
}

function onSay(cid, words, param)

	if param == "" then
		doPlayerSendTextMessage(cid, 22, "Digite o nome do outfit a ser comprado.")
		return false
	end

	local outfit = config[param:lower()]
	local look = (getPlayerSex(cid) == 0 and outfit.looktypeFemale or outfit.looktypeMale)

	if getPlayerStorageValue(cid, outfit.storage) == -1 then
		if doPlayerRemoveItem(cid, outfit.itemid, outfit.count) then
			doPlayerAddOutfit(cid, look, 1)
			setPlayerStorageValue(cid, outfit.storage, 1)
			doPlayerSendTextMessage(cid, 22, "Você comprou o outift.")
		else
			doPlayerSendTextMessage(cid, 22, "Você não tem dinheiro suficiente.")
			return false
		end
	else
		doPlayerSendTextMessage(cid, 22, "Desculpe voce ja comprou esse outift.")
		return false
	end
	return true
end 

 

Editado por Bruno Minervino
Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim amigo:

 

 

local config = {
	["citizen"] = {
		looktypeMale = 128, -- O Looktype da outift que vai ser vendida para males
		looktypeFemale = 136, -- O Looktype da outift que vai ser vendida para females
		itemid = 2160, -- id do item que vai remover
		count = 5, -- quantidade do item que vai remover
		storage = 30190 -- uma storage não utilizada
	},
	["barbarian"] = {
		looktypeMale = 143, -- O Looktype da outift que vai ser vendida para males
		looktypeFemale = 147, -- O Looktype da outift que vai ser vendida para females
		itemid = 2160, -- id do item que vai remover
		count = 5, -- quantidade do item que vai remover
		storage = 30191 -- uma storage não utilizada
	},
}

function onSay(cid, words, param)

	if param == "" then
		doPlayerSendTextMessage(cid, 22, "Digite o nome do outfit a ser comprado.")
		return false
	end

	local outfit = config[param:lower()]
	local look = (getPlayerSex(cid) == 0 and outfit.looktypeFemale or outfit.looktypeMale)

	if getPlayerStorageValue(cid, outfit.storage) == -1 then
		if doPlayerRemoveItem(cid, outfit.itemid, outfit.count) then
			doPlayerAddOutfit(cid, look, 1)
			setPlayerStorageValue(cid, outfit.storage, 1)
			doPlayerSendTextMessage(cid, 22, "Você comprou o outift.")
		else
			doPlayerSendTextMessage(cid, 22, "Você não tem dinheiro suficiente.")
			return false
		end
	else
		doPlayerSendTextMessage(cid, 22, "Desculpe voce ja comprou esse outift.")
		return false
	end
	return true
end 

 

12:45 Você comprou o outift.

 

mais a outfit não aparece no "ESCOLHER ROUPA"

 

e deu este erro não sei se é algo.

 

[Error - TalkAction Interface]

[08/06/2015 12:43:25] data/talkactions/scripts/outiftbuy.lua:onSay

[08/06/2015 12:43:25] Description:

[08/06/2015 12:43:25] data/talkactions/scripts/outiftbuy.lua:26: attempt to index local 'outfit' (a nil value)

[08/06/2015 12:43:25] stack traceback:

[08/06/2015 12:43:25] data/talkactions/scripts/outiftbuy.lua:26: in function <data/talkactions/scripts/outiftbuy.lua:18>

Link para o comentário
Compartilhar em outros sites

  • 0

12:45 Você comprou o outift.

 

mais a outfit não aparece no "ESCOLHER ROUPA"

 

e deu este erro não sei se é algo.

 

[Error - TalkAction Interface]

[08/06/2015 12:43:25] data/talkactions/scripts/outiftbuy.lua:onSay

[08/06/2015 12:43:25] Description:

[08/06/2015 12:43:25] data/talkactions/scripts/outiftbuy.lua:26: attempt to index local 'outfit' (a nil value)

[08/06/2015 12:43:25] stack traceback:

[08/06/2015 12:43:25] data/talkactions/scripts/outiftbuy.lua:26: in function <data/talkactions/scripts/outiftbuy.lua:18>

Você configurou corretamente?

Não vejo nenhum erro em si.

 

Vou alterar só uma coisinha:

 

local config = {
	["citizen"] = {
		looktypeMale = 128, -- O Looktype da outift que vai ser vendida para males
		looktypeFemale = 136, -- O Looktype da outift que vai ser vendida para females
		itemid = 2160, -- id do item que vai remover
		count = 5, -- quantidade do item que vai remover
		storage = 30190 -- uma storage não utilizada
	},
	["barbarian"] = {
		looktypeMale = 143, -- O Looktype da outift que vai ser vendida para males
		looktypeFemale = 147, -- O Looktype da outift que vai ser vendida para females
		itemid = 2160, -- id do item que vai remover
		count = 5, -- quantidade do item que vai remover
		storage = 30191 -- uma storage não utilizada
	},
}

function onSay(cid, words, param)

	if param == "" then
		doPlayerSendTextMessage(cid, 22, "Digite o nome do outfit a ser comprado.")
		return false
	end

	local outfit = config[tostring(param:lower())]
	local look = (getPlayerSex(cid) == 0 and outfit.looktypeFemale or outfit.looktypeMale)
	
	if outfit then
		if getPlayerStorageValue(cid, outfit.storage) == -1 then
			if doPlayerRemoveItem(cid, outfit.itemid, outfit.count) then
				doPlayerAddOutfit(cid, look, 1)
				setPlayerStorageValue(cid, outfit.storage, 1)
				doPlayerSendTextMessage(cid, 22, "Voce comprou o outift.")
				return true
			else
				doPlayerSendTextMessage(cid, 22, "Voce nao tem dinheiro suficiente.")
				return false
			end
		else
			doPlayerSendTextMessage(cid, 22, "Desculpe voce ja comprou esse outift.")
			return false
		end
	else
		doPlayerSendTextMessage(cid, 22, "Outfit nao encontrado.")
		return false
	end
end

 

<talkaction words="/buyoutfit" event="script" value="nomedoarquivo.lua"/>
Exemplo: /buyoutfit citizen Editado por Bruno Minervino
Link para o comentário
Compartilhar em outros sites

  • 0
A storage que deve ser configurada é a mesma que estiver na tag da outfit em data/XML/outfits.xml.

Exemplo:



<outfit id="5" premium="yes" quest="181603"> <!-- A storage corresponde ao valor do atributo quest -->
<list gender="0" lookType="586" name="Oriental"/>
<list gender="1" lookType="585" name="Oriental"/>
</outfit>


Caso esta outfit fosse vendida pelo comando, a storage colocada na tabela correspondente seria 181603.

Agora, o comando:



local config = {
itemId = 2160,
outfits = {
--["nome"] = {price = preço, storage = explicado no comentário},
["vengeance"] = {price = 10, storage = xxx},
},
}
function onSay(cid, words, param)
if param == "" then
return doPlayerSendCancel(cid, "Especify an outfit.")
end
local outfit = config.outfits[param:lower()]
if outfit then
if getPlayerStorageValue(cid, outfit.storage) > -1 then
doPlayerSendCancel(cid, "You already bought this outfit.")
else
if doPlayerRemoveItem(cid, config.itemId, outfit.price) then
doPlayerSendTextMessage(cid, 27, "You bought "..param.." outfit.")
setPlayerStorageValue(cid, outfit.storage, 1)
else
doPlayerSendCancel(cid, "You do not have enough money ("..outfit.price.."x "..getItemNameById(config.itemId)..").")
end
end
else
doPlayerSendCancel(cid, "Invalid outfit.")
end
return true
end

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

a do Vodkart deu certo, obrigado ao Bruno Minervino, Zipter98 um puta scripter, kissy que tentaram ajudar tbm.

se alguem souber da uma força lá: http://www.xtibia.com/forum/topic/234493-system-ski/

http://www.xtibia.com/forum/topic/234635-efeito-drop-stone/
X-Tibia <3

Editado por jhonatanp
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...