Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Boa noite, não sei se já existe este script aqui no fórum caso não aqui está.

Este script foi testado na versão 8.6 TFS 0.4, funciona em servidores de Tibia, Pokemon, Narutibia etc...

 

Bom neste script eu tive como base o script de banner da PXG aonde você coloca ele em uma Hunt e ganha uma porcentagem X a mais de experiencia.

 

Instalando o Script

 

- Vá em data/lib crie um arquivo com o nome bannerExp.lua e cole o código abaixo nele:

-- Configurações --

effect_invoke_banner = 10 -- efeito que saira no banner quando ele for colocado no chao
effect_decay_banner = 2 -- efeito que saira no banner quando o tempo dele acabar
effect_kill_banner = 36 -- efeito que saira no banner quando o player matar um monstro e ganhar o bonus de exp

banner_radius_x = 5 -- distancia maxima em x que ira ocorreu o bonus
banner_radius_y = 5 -- distancia maxima em y que ira ocorreu o bonus

time_in_minutes = 60 -- configurado em minutos (caso queira em horas só colocar 60 * 60)
remove_banner_item = false -- Se estiver TRUE o item de criacao do banner sera removido do player, caso esteja FALSE o item não sera removido. 

config_banner = {

    --[ID DO ITEM CRIAR O BANNER] = {banner_id = ID DO BANNER, exp_bonus = % EXP PLAYER IRA GANHAR, time_left = TEMPO PARA SUBIR O BANNER},
	[4865] = {banner_id = 8617, exp_bonus = 20, time_left = 20},
	[4866] = {banner_id = 8618, exp_bonus = 25, time_left = 10},
	[4867] = {banner_id = 8619, exp_bonus = 35, time_left = 15},
	[4868] = {banner_id = 8620, exp_bonus = 45, time_left = 20},

}

-- Não Mexer --
time_banner = 7899987 
player_use_banner = 78999788 
storage_banner_x = 7889911 
storage_banner_y = 7889912 
storage_banner_z = 7889913 
storage_banner_id = 7884544 
storage_exp = 7889915 
rate_level = SKILL__LEVEL

 

- Agora vá em data/actions/scripts e crie um arquivo chamado bannerexp.lua e cole isto dentro:


function onUse(cid, item, frompos, itemEx, topos)

	if (getPlayerStorageValue(cid, player_use_banner) >= 1) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce ja esta usando o banner.")
		return true
	end
	
	if (config_banner[item.itemid]) then
		local banner = config_banner[item.itemid]
		if (remove_banner_item == true or remove_banner_item == TRUE) then
			doPlayerRemoveItem(cid, item.itemid, 1)
		end
		CreateBanner(cid, banner, itemEx)
		TimeBannerCheck(cid, banner, getThingPos(itemEx.uid))
		EffectBanner(getThingPos(itemEx.uid))
	end

end

function CreateBanner(cid, banner, itemEx)
	doCreateItem(banner.banner_id, getThingPos(itemEx.uid))
	doSendMagicEffect(getThingPos(itemEx.uid), effect_invoke_banner)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce usou o banner de ["..banner.exp_bonus.."% EXP], ele tem duração de "..banner.time_left.." minuto(s).")
	setPlayerStorageValue(cid, storage_banner_x, getThingPos(itemEx.uid).x)
	setPlayerStorageValue(cid, storage_banner_y, getThingPos(itemEx.uid).y)
	setPlayerStorageValue(cid, storage_banner_z, getThingPos(itemEx.uid).z)
	setPlayerStorageValue(cid, storage_banner_id, banner.banner_id)
	setPlayerStorageValue(cid, storage_exp, banner.exp_bonus)
	setPlayerStorageValue(cid, player_use_banner, 1)
	setPlayerStorageValue(cid, time_banner, os.time() + (banner.time_left * time_in_minutes))
end

function TimeBannerCheck(cid, banner, banner_pos)
	if not isCreature(cid) then
		doRemoveItem(getTileItemById(banner_pos, banner.banner_id).uid)
		doSendMagicEffect(banner_pos, effect_decay_banner)
		return true
	end

	if (getPlayerStorageValue(cid, time_banner) == os.time()) then
		doRemoveItem(getTileItemById(banner_pos, banner.banner_id).uid)
		doSendMagicEffect(banner_pos, effect_decay_banner)
		setPlayerStorageValue(cid, player_use_banner, -1)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O Banner de ["..banner.exp_bonus.."% EXP] terminou.")
		return true
	end

	addEvent(function()
		TimeBannerCheck(cid, banner, banner_pos)
	end, 1000)
end

- Em Actions.XML cole esta tag: 

<action itemid="4865" script="bannerexp.lua"/>

Aonde está 4865 você coloca o(s) ITEM_ID que será usado para summonar o banner no chão.

 

- Agora vá em data/creatureevents/scripts crie um arquivo chamado bannerexp.lua e cole isto dentro dele:


function onKill(cid, target)
	
	if not isMonster(target) then
		return true
	end

	if (getPlayerStorageValue(cid, storage_banner_id) <= -1) then
		return true
	end

	local banner_pos = {x=getPlayerStorageValue(cid, storage_banner_x), y=getPlayerStorageValue(cid, storage_banner_y), z=getPlayerStorageValue(cid, storage_banner_z)}

	if (getTileItemById(banner_pos, getPlayerStorageValue(cid, storage_banner_id)).uid >= 1) then
		if not (CheckPlayerInArea(cid, banner_pos)) then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce esta fora da area do bonus.")
		end
	else
		doPlayerSetRate(cid, rate_level,1)
	end

	
	return true
end

function CheckPlayerInArea(cid, banner_pos)
	for x=banner_pos.x-banner_radius_x, banner_pos.x+banner_radius_x do
		for y=banner_pos.y-banner_radius_y, banner_pos.y+banner_radius_y do
			local banner_area = {x=x,y=y,z=banner_pos.z}
			local player = getTopCreature(banner_area).uid
			if (isPlayer(player)) then
				AddBonusExp(cid, banner_pos)
				return true
			end
		end
	end
end

function AddBonusExp(cid, banner_pos)
	doPlayerSetExperienceRate(cid, (1+(getPlayerStorageValue(cid, storage_exp)/100))+(getPlayerExtraExpRate(cid)/100))
	doSendMagicEffect(banner_pos, effect_kill_banner)
end

function getPlayerExtraExpRate(cid)
    return (getPlayerRates(cid)[rate_level]-1)*100
end

- Em Creatureevents.XML cole está tag:

<event type="kill" name="BannerExp" event="script" value="bannerexp.lua"/>

- Agora no arquivo login.lua em data/creatureevents/scripts cole este código antes do último return true:

registerCreatureEvent(cid, "BannerExp")
	if (getPlayerStorageValue(cid, 78999788) >= 1) then
		setPlayerStorageValue(cid, 78999788, -1)
	end

 

Explicação: (Configuração fica no arquivo adicionado no data/lib)

 

1° Aqui você configura a área em que o player tem que estar matando o monstro para poder ganhar o bônus 

banner_radius_x = 5 -- distancia maxima em x que ira ocorreu o bonus
banner_radius_y = 5 -- distancia maxima em y que ira ocorreu o bonus

 

2° Aqui você adiciona um novo banner (Lembre-se de adicionar o itemid que você colocar entre colchetes lá na tag em Actions.XML)

-[ID DO ITEM CRIAR O BANNER] = {banner_id = ID DO BANNER, exp_bonus = % EXP PLAYER IRA GANHAR, time_left = TEMPO PARA SUMIR O BANNER},

 

É isso... Script básico mais eu acho que vai ser bastante útil para muitos servidores.

 

-- ATUALIZAÇÃO --

- Adicionado mensagem quando o player sair da área do bônus!

- Adicionado variável que controla se o item da criação do banner será removido do player ou não. (Alterar a variável remove_banner_item em data/lib/bannerExp.lua). 

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

@leozincorsair Boa noite:

 

4.thumb.png.4d2029dd8c963f5213742acf51532c2b.png

 

Explicando: 

 

A área que esta marcada em vermelho, será aonde ocorrerá o bônus de experiencia (que foi configurado no arquivo data/lib nas variáveis banner_radius_x e banner_radius_y). Caso o player esteja dentro desta área e matar um monstro, ocorrerá o efeito no banner como mostra no gif abaixo indicando que ele esta dentro da área e que houve um acréscimo na exp, caso contrario não ocorrera o efeito e nem o acréscimo de exp.

 

Obs: O banner só funcionará para o player que colocou ele.

 

teste.thumb.gif.688b997d9fc73f797c67c4467f48adce.gif

Link para o post
Compartilhar em outros sites
25 minutos atrás, MatteusDeli disse:

@leozincorsair Boa noite:

 

4.thumb.png.4d2029dd8c963f5213742acf51532c2b.png

 

Explicando: 

 

A área que esta marcada em vermelho, será aonde ocorrerá o bônus de experiencia (que foi configurado no arquivo data/lib nas variáveis banner_radius_x e banner_radius_y). Caso o player esteja dentro desta área e matar um monstro, ocorrerá o efeito no banner como mostra no gif abaixo indicando que ele esta dentro da área e que houve um acréscimo na exp, caso contrario não ocorrera o efeito e nem o acréscimo de exp.

 

Obs: O banner só funcionará para o player que colocou ele.

 

teste.thumb.gif.688b997d9fc73f797c67c4467f48adce.gif

 

obrigado, entendi mt bem

 

Link para o post
Compartilhar em outros sites

Muito bom, logo irei testar. 

Discord: Naze#3578

 

Ter Linux Dentro de Windows com Acesso 'localhost' para testes e +

AutoLoot Otimizado Direto na Source (tfs 0.4/otx)

 

// Pirataria é crime, original é roubo, compartilhar é legal.

 

tumblr_muk78tEwDQ1qah4nko1_500.gif

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
Em 30/04/2020 em 23:24, MatteusDeli disse:

Boa noite, não sei se já existe este script aqui no fórum caso não aqui está.

Este script foi testado na versão 8.6 TFS 0.4

 

Bom neste script eu tive como base o script de banner da PXG aonde você coloca ele em uma Hunt e ganha uma porcentagem X a mais de experiencia.

 

Instalando o Script

 

- Vá em data/lib crie um arquivo com o nome bannerExp.lua e cole o código abaixo nele:


-- Configurações --

effect_invoke_banner = 10 -- efeito que saira no banner quando ele for colocado no chao
effect_decay_banner = 2 -- efeito que saira no banner quando o tempo dele acabar
effect_kill_banner = 36 -- efeito que saira no banner quando o player matar um monstro e ganhar o bonus de exp

banner_radius_x = 5 -- distancia maxima em x que ira ocorreu o bonus
banner_radius_y = 5 -- distancia maxima em y que ira ocorreu o bonus

time_in_minutes = 60 -- configurado em minutos (caso queira em horas só colocar 60 * 60)

config_banner = {

    --[ID DO ITEM CRIAR O BANNER] = {banner_id = ID DO BANNER, exp_bonus = % EXP PLAYER IRA GANHAR, time_left = TEMPO PARA SUMIR O BANNER},
	[4865] = {banner_id = 8617, exp_bonus = 20, time_left = 20},
}


-- Não Mexer --
time_banner = 7899987 
player_use_banner = 78999788 
storage_banner_x = 7889911 
storage_banner_y = 7889912 
storage_banner_z = 7889913 
storage_banner_id = 7889914 
storage_exp = 7889915 
rate_level = SKILL__LEVEL

 

- Agora vá em data/actions/scripts e crie um arquivo chamado bannerexp.lua e cole isto dentro:


function onUse(cid, item, frompos, itemEx, topos)

	if (getPlayerStorageValue(cid, player_use_banner) >= 1) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce ja esta usando o banner.")
		return true
	end
	
	if (config_banner[item.itemid]) then
		local banner = config_banner[item.itemid]
		CreateBanner(cid, banner, itemEx)
		TimeBannerCheck(cid, banner, getThingPos(itemEx.uid))
	end

end

function CreateBanner(cid, banner, itemEx)
	doCreateItem(banner.banner_id, getThingPos(itemEx.uid))
	doSendMagicEffect(getThingPos(itemEx.uid), effect_invoke_banner)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce usou o banner de ["..banner.exp_bonus.."% EXP], ele tem duração de "..banner.time_left.." minuto(s).")
	setPlayerStorageValue(cid, storage_banner_x, getThingPos(itemEx.uid).x)
	setPlayerStorageValue(cid, storage_banner_y, getThingPos(itemEx.uid).y)
	setPlayerStorageValue(cid, storage_banner_z, getThingPos(itemEx.uid).z)
	setPlayerStorageValue(cid, storage_banner_id, banner.banner_id)
	setPlayerStorageValue(cid, storage_exp, banner.exp_bonus)
	setPlayerStorageValue(cid, player_use_banner, 1)
	setPlayerStorageValue(cid, time_banner, os.time() + (banner.time_left * time_in_minutes))
end

function TimeBannerCheck(cid, banner, banner_pos)

	if not isCreature(cid) then
		doRemoveItem(getTileItemById(banner_pos, banner.banner_id).uid)
		doSendMagicEffect(banner_pos, effect_decay_banner)
		return true
	end

	if (getPlayerStorageValue(cid, time_banner) == os.time()) then
		doRemoveItem(getTileItemById(banner_pos, banner.banner_id).uid)
		doSendMagicEffect(banner_pos, effect_decay_banner)
		setPlayerStorageValue(cid, player_use_banner, -1)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O Banner de ["..banner.exp_bonus.."% EXP] terminou.")
		return true
	end

	addEvent(function()
		TimeBannerCheck(cid, banner, banner_pos)
	end, 1000)

end

- Em Actions.XML cole esta tag: 


<action itemid="4865" script="bannerexp.lua"/>

Aonde está 4865 você coloca o(s) ITEM_ID que será usado para summonar o banner no chão.

 

- Agora vá em data/creatureevents/scripts crie um arquivo chamado bannerexp.lua e cole isto dentro dele:



function onKill(cid, target)
	
	if not isMonster(target) then
		return true
	end

	if (getPlayerStorageValue(cid, storage_banner_id) <= -1) then
		return true
	end

	local banner_pos = {x=getPlayerStorageValue(cid, storage_banner_x), y=getPlayerStorageValue(cid, storage_banner_y), z=getPlayerStorageValue(cid, storage_banner_z)}

	if (getTileItemById(banner_pos, getPlayerStorageValue(cid, storage_banner_id)).uid >= 1) then
		CheckPlayerInArea(cid, banner_pos)
	else
		doPlayerSetRate(cid, rate_level,1)
	end

	
	return true
end

function CheckPlayerInArea(cid, banner_pos)
	for x=banner_pos.x-banner_radius_x, banner_pos.x+banner_radius_x do
		for y=banner_pos.y-banner_radius_y, banner_pos.y+banner_radius_y do
			local banner_area = {x=x,y=y,z=banner_pos.z}
			local player = getTopCreature(banner_area).uid
			if (isPlayer(player)) then
				AddBonusExp(cid, banner_pos)
			end
		end
	end
end

function AddBonusExp(cid, banner_pos)
	doPlayerSetExperienceRate(cid, (1+(getPlayerStorageValue(cid, storage_exp)/100))+(getPlayerExtraExpRate(cid)/100))
	doSendMagicEffect(banner_pos, effect_kill_banner)
end

function getPlayerExtraExpRate(cid)
    return (getPlayerRates(cid)[rate_level]-1)*100
end

- Em Creatureevents.XML cole está tag:


<event type="kill" name="BannerExp" event="script" value="bannerexp.lua"/>

- Agora no arquivo login.lua em data/creatureevents/scripts cole este código antes do último return true:


registerCreatureEvent(cid, "BannerExp")
	if (getPlayerStorageValue(cid, 78999788) >= 1) then
		setPlayerStorageValue(cid, 78999788, -1)
	end

 

Explicação: (Configuração fica no arquivo adicionado no data/lib)

 

1° Aqui você configura a área em que o player tem que estar matando o monstro para poder ganhar o bônus 

banner_radius_x = 5 -- distancia maxima em x que ira ocorreu o bonus
banner_radius_y = 5 -- distancia maxima em y que ira ocorreu o bonus

 

2° Aqui você adiciona um novo banner (Lembre-se de adicionar o itemid que você colocar entre colchetes lá na tag em Actions.XML)

-[ID DO ITEM CRIAR O BANNER] = {banner_id = ID DO BANNER, exp_bonus = % EXP PLAYER IRA GANHAR, time_left = TEMPO PARA SUMIR O BANNER},

 

É isso... Script básico mais eu acho que vai ser bastante útil para muitos servidores.

Serve para poketibia

 

Link para o post
Compartilhar em outros sites

@MatteusDeli muito bom mas poderia colocar para criar um item no caso uma bandeira para sinalizar que esta valendo o bonus e caso o jogador sair da área do bonus receber um aviso mas dessa forma esta muito bom caso sentir vontade de dar uma upgrade talvez esses dois fatores iriam ajudar

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

Link para o post
Compartilhar em outros sites

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 Johncore
      Otg Server é um projeto fork do The Forgotten Server 1.3, feito por brasileiros que visam sempre por estabilidade, um código mais clean, temos no projeto várias Datapacks como
      Global 11.0, Global 8.6, Global 8.0, RadBR 11.0, Evolutions 11.0, Yurots Classic 11.0, nossa base também é excelente para rodar projetos que são mapa Baiak ou ATS Custom pelo baixissimo uso de cpu e fix do Decay de itens.

      Todos são bem vindos para colaborar com o projeto... que não visa nenhum lucro financeiro, queremos apenas colaborar com a comunidade OTSERV,
      temos ouvido de muitas pessoas que procuram uma base estável, limpa, esse é o nosso objetivo nesse projeto.
       
      Estamos a procura de programadores/dev/webmaster que queiram ajudar / que tenham tempo e serão recompensados por isso.
       
      Nossa Datapack principal Global 11.00 contem as seguintes features:
      CAST SYSTEM ✅
      AUTOLOOT ✅
      WINTER UPDATE 2023 ✅
      SUMMER UPDATE 2023 ✅
      ADDONS 13.22 UPDATE ✅
      MONTARIAS 13.22 UPDATE ✅
      ITEMS 13.22 UPDATE ✅
      DAILY REWARD ✅
      IMBUEMENTS ✅
      PREY ✅
      EXERCISE WEAPONS ✅
      HIRELINGS NPCS ✅
      ANTI ROLLBACK ✅
       
       
      Github Global 11x:  💾
      https://github.com/otg-br/global-11x
      Clients e outras ferramentas:  💾
      https://github.com/otg-br/tools
      Github Otg Gesior:  💾
      https://github.com/otg-br/gesior
      Github Otg Otclientv8:  💾
      https://github.com/otg-br/otclientv8
      Wiki Otg:  💾
      https://github.com/otg-br/global-11x/wiki
       
       
      Creditos:
      TFS Team Erick Nunes Gui Bruxo Worthdavi LuSKT Leo Pereira Luan Luciano Cjaker Comedinhas Nekiro OTG Colaborators
    • Por danielzin021
      alguém sabe como implementa isso no serv e se tem como?
    • Por Maniaco
      Salve TibiaKing!!! TFS 0.4 . 8.60
       
      Estou implementando o Sistema do @WooX de Cave Exlusiva

      Link:
       
      Porem estou com um problema seguindo o tutorial completo dele acabo tendo um retorno de erro na Distro! E ja que o mesmo nao entra no forum deis de 14/01! Venho solicitar ajuda de vocês!
      Caso alguem tenha o Discord Dele Favor me Passe  
      Vamos lá!
      Erro:
       
      Script :
       
      Lib
       
       
      Print Rme:
       
       
      Lembrando que nao esta funcionando em geral, Acrédito que eu tenha pulado algo ou deixado passar despercebido!
      Espero que alguem consiga me ajudar vlw!
    • Por Morg
      Wake Baiak [8.6]
       
                                                                                        
       
      • Versão 8.6 • Exp 99999x • Rolate Donate • Cidade Modificada Para PVP • Addons por alavanca • Autoloot System • Alguns Eventos • Old Dodge And Critical • Quests Exclusivias • Monstros editados • Vip 1 And 2 • Baixei e descubra mais...  
       
      O servidor Foi testado em OTX.
      Não Estarei dando suporte pois não sou o desenvolvedor do Otserver, Apenas estou disponibilizando caso alguém queira usar em algum projeto.
       
       
                                                                                           
                                                                                                                                                             Imagens
       
                                                                                                                            
       
                                                                                                                            
       
       
                                                                                                                            
       
       
                                                                                                                            
       
       
                                                                                                                            
       
                                                                                              
       
      • A DataPack é um pouco antiga então pode estar desatualizada comparada aos servidores atuais, no momento não estou com tempo pra atualizar mas futuramente quem sabe. • O servidor pode conter alguns bugs então aconselho a testar muito bem pois eu nunca coloquei esse servidor on para um grande publico. • Em breve estarei disponibilizando o WebSite para vocês. • Provavelmente estarei disponibilizando tambem psd para crianção de social midia. • Será um de varios topicos que irei trazer para o forum.  
      Creditos: WakeBaiak Por criar o datapack e @Morg Por estar disponibilizando.
                                                                                              
                                                                                                                   DOWNLOAD   /   ScanVirus
       
       
       
    • Por WooX
      Trade Offline V2.0

      Esse sistema me foi pedido a alguns meses atrás e hoje tirei um tempinho pra trazer aqui.
      O sistema consiste em permitir que jogadores negociem sem contato direto entre comprador e vendedor.
      Mas como assim?
      O vendedor pode criar um anuncio de venda informando item, valores ou até mesmo items que ele queira em troca, após feito o anuncio todas essas informações ficam armazenadas no banco de dados do servidor, permitindo assim serem exibidas em uma página no site para interessados, junto de todas informações fornecidas pelo vendedor é exibido um comando para que os interessados possam adquirir a oferta exibida na página.
       
      Sobre o sistema

       
      O sistema foi testado apenas em OTX2, mas provavelmente também funcione em TFS 0.4
       
      Versão para TFS 1.x adaptada pelo @luanluciano93
       
      Como mencionado acima, o sistema funciona de forma semelhante ao Market System das versões atuais porem sem exibição gráfica das ofertas in-game, para isso o sistema vai acompanhado de uma página para o Gesior AAC. Este sistema existe no fórum há um bom tempo e já é familiar pra muitos jogadores, essa versão trás consigo algumas melhorias e diferenças que irei listar abaixo.
       
      Sistema
      Agora é possivel vender um item exigindo outro item em troca ao invés de dinheiro. Containers com um conjunto de items dentro agora podem ser anunciados. Agora o sistema verifica as cargas e durações dos items antes de criar uma oferta. Novo parâmetro adicionado para verificar informações de ofertas in-game. Agora todo valor recebido vai diretamente para o banco do vendedor. Página
      A depender da quantidade de ofertas existentes no servidor, a página agora irá separa-las por páginas. Agora além do valor é exibido também imagem da moeda a depender do valor da oferta. Agora é possivel ver as características tanto dos items ofertados como dos items exigidos pelo vendedor. Adicionado filtros para exibir somente ofertas de items vip, containers ou trocas. Adicionado barras de pesquisas para filtrar as ofertas por items ou nome do jogador.  
      Algumas imagens
       
      Instalação

      Antes de mais nada é necessário citar os requisitos necessários para o funcionamento correto do sistema, ele utiliza de algumas funções que não estão no script principal e portanto é necessário a instalação de uma lib extra, também é necessário instalar as funções doItemSetDuration e getItemDurationTime na source do servidor, ambos os links se encontram abaixo.
       
      Todos os arquivos necessários para a instalação estão anexados no tópico, irei apenas dizer onde instalar e como deve ser configurado.
       
      Primeiramente importe o arquivo schema.sql no banco de dados, ou se preferir pode executar as queries a seguir.
      CREATE TABLE IF NOT EXISTS `trade_off_offers` ( `id` int(11) NOT NULL auto_increment, `player_id` int(11) NOT NULL, `type` int(1) NOT NULL DEFAULT '0', `item_id` int(11), `item_count` int(11) NOT NULL DEFAULT '1', `item_charges` int(11) NULL, `item_duration` int(11) NULL, `item_name` varchar(255), `item_trade` tinyint(1) NOT NULL DEFAULT '0', `cost` bigint(20) UNSIGNED NOT NULL, `cost_count` int(11) NOT NULL DEFAULT '1', `date` bigint(20), PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; CREATE TABLE IF NOT EXISTS `trade_off_container_items` ( `offer_id` int(11) NOT NULL, `item_id` int(11), `item_charges` int(11) NULL, `item_duration` int(11) NULL, `count` int(11) DEFAULT '1' ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; ALTER TABLE `trade_off_container_items` ADD KEY `offer_id` (`offer_id`); ALTER TABLE `trade_off_container_items` ADD CONSTRAINT `offer_id_fk` FOREIGN KEY (`offer_id`) REFERENCES `trade_off_offers`(`id`) ON DELETE CASCADE;  
      Configuração no arquivo tradeoff.lua: 
      -- Trade Offline 2.0 by WooX -- local config = { priceLimit = 2000000000, -- 2kkk offerLimit = 3, offerLimitStor = 86420, infoOnPopUp = true, infoMsgType = MESSAGE_STATUS_CONSOLE_BLUE, errorMsgType = MESSAGE_STATUS_CONSOLE_RED, successMsgType = MESSAGE_INFO_DESCR, helpMsg = "Enter the parameters (add, remove, active, buy, info).", goldItems = {2148, 2152, 2160}, itemsVIP = {4540, 4545, 4560}, } priceLimit: define o valor máximo de uma oferta. offerLimit: define o valor máximo de ofertas que um jogador pode adicionar. offerLimitStor: storage que irá armazenar quantas ofertas ativas o jogador possui. infoOnPopUp: pode ser definido como true ou false, se definido como falso irá enviar os detalhes da oferta no default ao invés de como é mostrado nas imagens acima. infoMsgType: define como será exibido uma mensagem de informação ao jogador (não recomendo mexer a menos que saiba o que está fazendo). errorMsgType: define como será exibido uma mensagem de erro ao jogador (não recomendo mexer a menos que saiba o que está fazendo). successMsgType: define como será exibido uma mensagem de ação sucedida ao jogador (não recomendo mexer a menos que saiba o que está fazendo). helpMsg: mensagem que será enviada para o jogador caso ele erre os parâmetros do comando. goldItems: nesta tabela deve ser preenchido todos os IDs de moedas no servidor como gold coins, platinum coins, etc. itemsVIP: nesta tabela deve ser preenchido os IDs dos items vips existentes no servidor.  
      Agora para a instalação da página, no arquivo mysql_db.php deve ser preenchido os dados para conexão no banco de dados do servidor.
      /** * Host do banco de dados * @var string */ private static $DB_HOST = 'localhost'; /** * Usuario de conexao ao banco de dados * @var string */ private static $DB_USER = 'root'; /** * Senha de conexao ao banco de dados * @var string */ private static $DB_PASS = 'SUA_SENHA'; /** * Nome do banco de dados * @var string */ private static $DB_NAME = 'NOME_BANCO'; Após feito isso, o arquivo paginationClass.php em conjunto do arquivo mysql_db.php devem ser adicionados no seguinte diretório do Gesior AAC.
      classes/
      Finalizado isto, basta jogar o arquivo tradeoff.php dentro do diretório informado abaixo e o sistema estará pronto para uso.
      pages/
       
      Avisos

       
      Eu escrevi somente o sistema, não sou o autor da página para o Gesior AAC portanto não estarei dando suporte em relação a página que não seja sobre a instalação da mesma no Gesior AAC 2012, e embora esteja funcional, eu não recomendo o uso da página devido a falta do uso de cache para leitura do items.xml. Foram mais de 600 linhas de código sem contar funções extras e alterações na source, além de muitas horas de testes para garantir que tudo estava funcionando corretamente, tudo que peço em troca é que não removam os créditos no arquivo quando forem usar.  
      Créditos

      @MatheusDuarte pela página do Gesior AAC.
      schema.sql tradeoff.lua tradeoff.php mysql_db.php paginationClass.php
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo