Ir para conteúdo
  • Cadastre-se

[ PEDIDO ] Transformação de 1kk para ID 2328


Posts Recomendados

Como diz titulo, queria um script que mude 1kk para um Fenix Coin ( ID: 2328 ), alguem pode ajudar ? 

- tentei do Matheus ( http://www.tibiaking.com/forum/topic/13628-actions-novo-gold/ ) deu erro no distro alguem sabe outro ?

Link para o post
Compartilhar em outros sites

MMHUCMQ.png  Esta é uma mensagem automática, este tópico foi movido para a área correta.
  Regras do fórum: http://www.tibiaking.com/forum/topic/1281-regras-gerais/#comment-7680

Este tópico foi movido:
De: Scripting OTServ > OTServ > Actions e TalkActions
Para: Suporte OTServ > OTServ > Suporte de Scripts

 

Qual o erro que aparece na distro?

Editado por Wakon (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Ok, desculpa pelo lugar errado, mas agora e a ajuda ?

Link para o post
Compartilhar em outros sites

Preste mais atenção! "Qual o erro que aparece na distro?".

Editado por Wakon (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

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

YDmXTU2.png

 

Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui

Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui

 

Muitos querem aquilo que você tem, 
mas vão desistir quando souberem o preço que você pagou.

 

skype-favicon.png lu.lukinha

message-16.png [email protected]

Link para o post
Compartilhar em outros sites

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

 

 

Link para o post
Compartilhar em outros sites

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 ?

Link para o post
Compartilhar em outros sites

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

 

 

Link para o post
Compartilhar em outros sites

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

Link para o post
Compartilhar em outros sites

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 ?

Link para o post
Compartilhar em outros sites
  • 8 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.

  • Conteúdo Similar

    • Por osanjos
      algúem tem script para que quando usa um item da X coins na conta do player?
       
      alguém sabe me dizer como faço para Y player começa com X coins ??? na database tem como fazer isso
    • Por Qwizer
      Pagseguro Retorno Automatico

      Bom pessoal como sabemos no tibia atual se usa os tibia coins ingame, portante para quem quiser usar essa mesma moeda ingame sem a necessidade de premium points fiz uma adaptação do sistema do Natanael ([Gesior] PagSeguro Automático (100% Funcional) bom o sistema funciona da seguinte forma, assim como no sistema normal o players faz a donate no pagseguro e recebe automaticamente ingame a quantidade de tibia coins.

      Crie um arquivo .php chamado de retpagseguro, insira dentro do mesmo os code a seguir:
      Gere sua token no PagSeguro com este link e ative o link do retorno ao seu site veja na imagem abaixo um exemplo:
       
      Certo agora crie um arquivo .php com o nome store e insira no mesmo os codes abaixo:

      Agora abra o arquivo config.php e adicione os codes abaixo:
       #PAGSEGURO SISTEMA AUTOMATICO $config['pagseguro']['email'] = '[email protected]'; //E-mail da sua conta PagSeguro $config['pagseguro']['produtoNome'] = 'Premium Points'; //Identificação do Pontos $config['pagseguro']['produtoValor'] = '100'; //100 = R$ 1,00 - 250 = R$ 2,50 Vamos em layout.php nas primeiras linhas terá a tag abrindo html, exemplo:<html> Troque por: <html ng-app> Ou se tiver assim: <html xmlns="http://www.w3.org/1999/xhtml"> Troque por:<html xmlns="http://www.w3.org/1999/xhtml" ng-app> Mais abaixo juntos aos codes de JS adicione:<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script> Agora vamos na database e adicione a seguinte tabela:CREATE TABLE IF NOT EXISTS `PagSeguroTransacoes` (         `TransacaoID` varchar(36) NOT NULL,         `VendedorEmail` varchar(200) NOT NULL,         `Referencia` varchar(200) DEFAULT NULL,         `TipoFrete` char(2) DEFAULT NULL,         `ValorFrete` decimal(10,2) DEFAULT NULL,         `Extras` decimal(10,2) DEFAULT NULL,         `Anotacao` text,         `TipoPagamento` varchar(50) NOT NULL,         `StatusTransacao` varchar(50) NOT NULL,         `CliNome` varchar(200) NOT NULL,         `CliEmail` varchar(200) NOT NULL,         `CliEndereco` varchar(200) NOT NULL,         `CliNumero` varchar(10) DEFAULT NULL,         `CliComplemento` varchar(100) DEFAULT NULL,         `CliBairro` varchar(100) NOT NULL,         `CliCidade` varchar(100) NOT NULL,         `CliEstado` char(2) NOT NULL,         `CliCEP` varchar(9) NOT NULL,         `CliTelefone` varchar(14) DEFAULT NULL,         `NumItens` int(11) NOT NULL,         `Data` datetime NOT NULL,         `ProdQuantidade_x` int(5) NOT NULL,         `status` tinyint(1) unsigned NOT NULL DEFAULT '0',         UNIQUE KEY `TransacaoID` (`TransacaoID`,`StatusTransacao`),         KEY `Referencia` (`Referencia`),         KEY `status` (`status`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; e adicione também: CREATE TABLE IF NOT EXISTS `z_ots_comunication` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `name` varchar(255) NOT NULL,   `type` varchar(255) NOT NULL,   `action` varchar(255) NOT NULL,   `param1` varchar(255) NOT NULL,   `param2` varchar(255) NOT NULL,   `param3` varchar(255) NOT NULL,   `param4` varchar(255) NOT NULL,   `param5` varchar(255) NOT NULL,   `param6` varchar(255) NOT NULL,   `param7` varchar(255) NOT NULL,   `delete_it` int(2) NOT NULL DEFAULT '1',   PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
      Beleza se tiver feito tudo OK naturalmente seu sistema está funcionando perfeitamente.

      Haaaa, quem quiser que o sistema nao entregue DOUBLE Tibia Coins e caso queira usar outro item como moeda virtual vou ensinar abaixo.

      No arquivo retpagseguro.php procure por:

      mysql_query("INSERT INTO `z_ots_comunication`(`id`, `name`, `type`, `action`, `param1`, `param2`, `param3`, `param4`, `param5`, `param6`, `param7`, `delete_it`) VALUES ('id + 1','".htmlspecialchars($accname)."','login','give_item','24944','$NumItens'*2,'','','item','Tibia Coins','1','1')");

      troque por:

      mysql_query("INSERT INTO `z_ots_comunication`(`id`, `name`, `type`, `action`, `param1`, `param2`, `param3`, `param4`, `param5`, `param6`, `param7`, `delete_it`) VALUES ('id + 1','".htmlspecialchars($accname)."','login','give_item','24944','$NumItens''','','item','Tibia Coins','1','1')");

      item ID: 24944 se quiser usar outra item como moeda so alterar o ID.

      bom e isso pessoal qualquer duvida so postar

      Créditos:
      Natanael Beckman
      Tatu Hunter
      Joffily Ferreira

       shop.lua testado no TFS 1.0/1.1
       

        shop.lua
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo