Ir para conteúdo

Featured Replies

Postado

O erro deve estar sendo relacionado ao 'change gold', de trocar moedas. Eis que há dois 'scripts' que tratam da mesma situação.

 

O que você poderia fazer e, na minha opinião daria no mesmo, seria inserir uma 'talkaction' que, quando dita, faria a troca que você comenta.

 

Isto porque o 'script' chage gold é muito útil.

 

Teste e veja o que pensa!

 

Vá no seu arquivo 'data > talkactions > talkactions.xml',abra-o o insira a seguinte linha:

 <talkaction log="yes" words="!fenix" event="script" value="fenix.lua"/>

Depois crie um arquivo chamado 'fenix' com extensão '.lua' e salve-o dentro da pasta 'data > talkactions > scripts' com o seguinte conteúdo:

function onSay(cid, words, param)

	local moedas = 2160
	local custoFenix = 100
	local fenixId = 100 -- Quantidade em kk , ou seja milhões
	local cap = getPlayerFreeCap(cid)
	local peso = getItemWeightById(fenixId,1)
	
	
	-- Checa se o Player está carregando as moedas
	if (getPlayerItemCount(cid, moedas) < custoFenix) then
		doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar carregando "..custoFenix.." crystal coins.")
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar carregando "..custoFenix.." crystal coins.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		return true
	end
	
	-- Verifica se o player tem cap suficiente
	if (cap < peso) then 
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você não tem capacidade suficiente. É necessário: ".. peso .."oz.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
		return true
	end
	
	
	-- Mensagem em azul no chat Default
	if doPlayerRemoveItem(cid,moedas,custoFenix) == TRUE then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você comprou: 1 ".. getItemNameById(fenixId)..".")
		doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou: 1 ".. getItemNameById(fenixId)..".")
		doPlayerAddItem(cid, fenixId,1)
		doSendAnimatedText(getPlayerPosition(cid), "Fenix!", TEXTCOLOR_YELLOW)
		doSendMagicEffect(getPlayerPosition(cid), 101)
		return true
	else	
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Houve algum erro, reporte-o.")
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
	end	
	
end

Fiz agora meio rápido, testa e dá um retorno aqui.

 

Ajudei ou esclareci? Rep+

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

  • Respostas 12
  • Visualizações 856
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Se não funcionar o do @Xagah(MUITO PROVÁVEL QUE FUNCIONE), tenta usar esse changegold.lua :       E em actions.xml procure por "changegold.lua" e delete todas as tags referentes

  • Qual TFS você usa? Poste o erro que aparece no executável/distro.

  • Ahhhh, mano, desculpe, agora que li direito o que pediu.   Então, não... não será assim. Ele busca a mensagem 'ITEM_CRYSTAL_COIN' do arquivo '00 - constante.lua'.   Todavia, como o

Postado
  • Autor

Bom, eu ja tirei os scripts antigo e nao cheguei tira print do erro, mas era algo relacionado ao changegold sim, dei uma rodadas e achei essa:

Citar
local coins = {
[ITEM_GOLD_COIN] = {
to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW
},
[ITEM_PLATINUM_COIN] = {
from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE
},
[ITEM_CRYSTAL_COIN] = {
from = ITEM_PLATINUM_COIN, to = 2157, effect = TEXTCOLOR_LIGHTBLUE
},
[2328] = {
from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_TEAL
}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then
return false
end
local coin = coins[item.itemid]
if(not coin) then
return false
end
if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then
doChangeTypeItem(item.uid, item.type - item.type)
doPlayerAddItem(cid, coin.to, 1)
doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)
elseif(coin.from ~= nil) then
doChangeTypeItem(item.uid, item.type - 1)
doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)
doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)
end
return true
end

 

- MAs ele transforma o 1KK em 2328, mas quando da click eno 2328 para retornar ao 1KK, nao funciona, que devo fazer ?

Postado

Ahhhh, mano, desculpe, agora que li direito o que pediu.

 

Então, não... não será assim. Ele busca a mensagem 'ITEM_CRYSTAL_COIN' do arquivo '00 - constante.lua'.

 

Todavia, como os 'ITEMs' declarados ali estão vinculados à sua source, você poderá utilizar um dos que estão dispostos no seu servidor.

 

Assim, vá no seu arquivo 'data > lib > 00 - constant.lua', abra-o e mude:

ITEM_SCARAB_COIN = 2159

Por:

ITEM_SCARAB_COIN = 2328

Depois mude aquele seu 'script' ali em cima por:

 

local coins = {
[ITEM_GOLD_COIN] = {
to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW
},
[ITEM_PLATINUM_COIN] = {
from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE
},
[ITEM_CRYSTAL_COIN] = {
from = ITEM_PLATINUM_COIN, to = ITEM_SCARAB_COIN, effect = TEXTCOLOR_LIGHTBLUE
},
[ITEM_SCARAB_COIN] = {
from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_TEAL
}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then
return false
end
local coin = coins[item.itemid]
if(not coin) then
return false
end
if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then
doChangeTypeItem(item.uid, item.type - item.type)
doPlayerAddItem(cid, coin.to, 1)
doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)
elseif(coin.from ~= nil) then
doChangeTypeItem(item.uid, item.type - 1)
doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)
doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)
end
return true
end

 

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Postado

Se não funcionar o do @Xagah(MUITO PROVÁVEL QUE FUNCIONE), tenta usar esse changegold.lua :

 

Spoiler

local coins = {
	[ITEM_GOLD_COIN] = {
		to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW
	},
	[ITEM_PLATINUM_COIN] = {
		from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE
	},
	[ITEM_CRYSTAL_COIN] = {
		from = ITEM_PLATINUM_COIN, to = 2328, effect = TEXTCOLOR_LIGHTBLUE
	},
	[2328] = {
		from = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE
	}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then
		return false
	end

	local coin = coins[item.itemid]
	if(not coin) then
		return false
	end

	if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then
		doChangeTypeItem(item.uid, item.type - item.type)
		doPlayerAddItem(cid, coin.to, 1)
		doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)
	elseif(coin.from ~= nil) then
		doChangeTypeItem(item.uid, item.type - 1)
		doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)
		doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)
	end

	return true
end

 

 

 

E em actions.xml procure por "changegold.lua" e delete todas as tags referentes à esse arquivo e adicione o seguinte:

<action itemid="2148;2152;2160;2328" event="script" value="other/changegold.lua"/>

 

 

Funciona da mesma forma que o script que o Xagah postou, maaaas, vai que da algum erro, e ele esqueceu de mencionar a tag do actions.xml

Postado
  • Autor

Consegui. Com minha script e mais a parte da tag do actions q @Sekk postou. Deu certinho. Obrigado mesmo assim ao demais que ajudaram ;)

- Teria como coloca para juntar os coins em geral automaticamente ?

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