Ir para conteúdo
  • Cadastre-se

Posts Recomendados

É uma boa ideia utilizar uma pergunta de segurança. Mas acho que não há necessidade, ai vocês estão querendo ser bahiano de mais kkkkk

A senha é armazenada no banco de dados, no valor da storage, como citado pelo WooX. Mas para quem perder a senha, basta conversar com a staff do servidor. Pra quem tem o talkactions /storage adicionado no servidor é muito fácil consultar e remover a senha, sem precisar acessar o banco de dados.

Consultar:

/storage NICK DO JOGADOR,42611

No console iria exibir:

[Yan Liima - 42611] = yan

Certo, minha senha é yan. Para remover a senha do jogador:

/storage NICK DO JOGADOR,42611,-1

42611 seria o ID da storage configurada na LIB do sistema., o -1 irá remover a senha. Caso queira já setar uma nova senha pro jogador, só por no lugar do -1 a nova senha.

 

OBS: tem um pequeno erro na função da LIB, na parte do caractere. Possivelmente vocês não iram conseguir criar senhas com + de 5 caracter. Correção, troquem:

elseif string.len(password) > depotLocker.config.passMinLength then

por:

elseif string.len(password) > depotLocker.config.passMaxLength then

 

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

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

Te Ajudei? Rep + e ficamos Quits

166420979_logoyanliimaornight.png.33f822b8970081a5b3646e85dbfd5934.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.png.890d5a38d7bcde75543c72b624a65de1.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

Link para o post
Compartilhar em outros sites
  • Respostas 48
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Depot Locker System Escrevi esse sistema no ano passado a pedido de um amigo e finalmente deixei a preguiça de lado pra postar ele aqui. Aviso de antemão que o sistema é funcional apenas para

Vixi, ai...   kkkkkk, mas posso fazer uma atualização futuramente pra adicionar alguma pergunta de segurança como meio para recuperar a senha.

É uma boa ideia utilizar uma pergunta de segurança. Mas acho que não há necessidade, ai vocês estão querendo ser bahiano de mais kkkkk A senha é armazenada no banco de dados, no valor da storage,

mas a questão não é só como recuperar a senha, é por que recuperar. O que o @WooX considerou foi a possibilidade de outra pessoa assumir sua conta, então considerou que o método de recuperação seja voltado exclusivamente para o criador da conta, e o que resolveria isso seria uma pergunta de segurança. 

 

Mas a outra questão seria, se minha acc foi roubada, eu tenho como recuperar através de outro char?

Link para o post
Compartilhar em outros sites
56 minutos atrás, Nolis disse:

mas a questão não é só como recuperar a senha, é por que recuperar. O que o @WooX considerou foi a possibilidade de outra pessoa assumir sua conta, então considerou que o método de recuperação seja voltado exclusivamente para o criador da conta, e o que resolveria isso seria uma pergunta de segurança. 

 

Mas a outra questão seria, se minha acc foi roubada, eu tenho como recuperar através de outro char?

A proposta do sistema é um layer de segurança extra pro depot, pra recuperar a conta em si já existe um sistema de recuperação na maioria dos AAC, seja através de RK ou e-mail.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
Em 22/07/2020 em 18:30, Nolis disse:

me confundi desculpa @WooX

Sem problema haha, é tudo meio confuso mesmo, mas este sistema é exclusivamente pro jogador que tem acesso a sua conta, se por algum motivo o jogador não tiver acesso, ele pode utilizar os métodos de recuperação já existentes nos mais variados AAC por ai.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

recebi esse erro quando dou use no depot para colocar a senha

[09/08/2020 23:32:19] [Error - MoveEvents Interface] 
[09/08/2020 23:32:19] data/movements/scripts/depotlocker.lua:onStepIn
[09/08/2020 23:32:19] Description: 
[09/08/2020 23:32:19] (luaDoShowTextDialog) Player not found

[09/08/2020 23:32:20] [Error - Action Interface] 
[09/08/2020 23:32:20] data/actions/scripts/depotlocker.lua:onUse
[09/08/2020 23:32:20] Description: 
[09/08/2020 23:32:20] (luaDoShowTextDialog) Player not found

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
8 minutos atrás, LeoTK disse:

recebi esse erro quando dou use no depot para colocar a senha

Ta usando TFS 0.4 né?

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites
24 minutos atrás, WooX disse:

Ta usando TFS 0.4 né?

0.3.6 achei que não tivesse diferença na função do textdialog ...

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
2 minutos atrás, LeoTK disse:

0.3.6 achei que não tivesse diferença na função do textdialog ...

Tem sim, pra utilizar a função doShowTextDialog da maneira como está no sistema você vai precisar alterar ela na source, o @Yan Liima me alertou sobre isso até no TFS 0.4 e adicionou as alterações na source editada por ele, da uma olhada lá.

 

https://github.com/YaanLiima/3996/commit/2038e058cc46afd58f9d7c1e8838093f4809dcaf

 

Como alternativa você pode usar um quadro real ao invés da função doShowTextDialog, basta alterar a variável de configuração useBoard para true na lib do sistema.

7 minutos atrás, Jhonny Bravo disse:

Bem legal. Essa talkactions do video n tem? 

Não, a criação e alteração de senhas funciona através do NPC.

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites

@WooX sim mas o talkaction para colocar a senha para abrir o depot não tem?

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
Agora, LeoTK disse:

@WooX sim mas o talkaction para colocar a senha para abrir o depot não tem?

Não, acho mais pratico pro jogador escrever a senha no quadro do que digitar talkaction + senha, mas posso fazer uma pra contornar esse problema no TFS 0.4 e inferiores.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites

@WooX #edit

Eu que estava vacilando esqueci de corrigir o DepotTileID

Funcionando perfeitamente

sugiro fixar essa alteração na source pelo @Yan Liima

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
4 minutos atrás, LeoTK disse:

eu consegui fazer a modificação na source eu coloco a senha mas não abre o depot e não retorna nenhum erro no console

Verifica se o callback onTextEdit existe no TFS 0.3.6, busca por ele no arquivo creatureevent.cpp da sua source.

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites

@WooX editei já consegui arrumar já especifiquei no comentário acima vlw meu bom tmj ^^ 

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

@Jhonny Bravo @LeoTK

 

Era só um adicional aquilo. Acaba sendo meio inutil por conta do quadro, NPC e os demais sistemas. Mas caso queiram, ai está. Adaptei para essa versão do sistema:

Spoiler

function onSay(cid, words, param)
   local msg = "Locker System\n\n* Criando uma senha: \nPara criar uma senha digite: ".. words .." password, senha. Substituindo senha pela senha que você quer criar!\n\n*Modificando uma senha: ".. words .." passchange, senhaantiga, nova. Substituindo senhaantiga pela sua senha antiga e nova pela sua nova senha.\n\n*Removendo sua senha \n Para remover sua senha digite: ".. words .. " remove, senha(substituindo senha pela sua senha atual)."
   local tmp = string.explode(param, ",")
   
   if not(isItemInRange(getThingPos(cid), 1, depotLocker.config.depotIDs)) then
      return doPlayerSendCancel(cid, "Você deve estar perto de um locker para poder usar o sistema.")
   end
   
   if not(tmp[1]) then
   if depotLocker.isLocked(cid) then
      local data = depotLocker.getEvironmentData(getThingPos(cid))
			return doShowTextDialog(cid, data.boardID, depotLocker.config.typeYourPassMsg, true)
	elseif not depotLocker.isLocked(cid) and depotLocker.getPlayerPassword(cid) then	
			return doPlayerSendCancel(cid, "Seu depot ja esta destravado.")	
   end	  
   elseif (tmp[1] == "password") then
      if (depotLocker.getPlayerPassword(cid)) then
         return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você já estabeleceu uma senha para seu locker!")
      end
      if not(tmp[1]) then
         return doShowTextDialog(cid, depotLocker.config.depotIDs[3], msg)
      end
	  if not(depotLocker.checkPasswordSecurity(tostring(tmp[2])) == true) then
	  return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, tostring(depotLocker.checkPasswordSecurity(tmp[2])))
	  end
      depotLocker.setPlayerPassword(cid, tostring(tmp[2]))
      return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua senha é: ".. tostring(tmp[2])) 
	  
   elseif (tmp[1]:lower() == "passchange") then
      if not (tmp[3]) then
         return doShowTextDialog(cid, depotLocker.config.depotIDs[3], msg)
      end
      if (depotLocker.getPlayerPassword(cid) ~= -1) and (tmp[2] ~= tostring(depotLocker.getPlayerPassword(cid))) then
         return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Digite a sua senha atual corretamente!")
      end
      if (depotLocker.getPlayerPassword(cid) == -1) then
	  return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você não tem uma senha para poder alterar.")
	  end
	  if not(depotLocker.checkPasswordSecurity(tostring(tmp[3])) == true) then
	  return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, tostring(depotLocker.checkPasswordSecurity(tmp[3])))
	  end
	  
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua senha foi mudada de ".. depotLocker.getPlayerPassword(cid) .." para ".. tmp[3] ..".")
      return depotLocker.setPlayerPassword(cid, tostring(tmp[3]))
	  
   elseif (tmp[1]:lower() == "remove") then
      if (depotLocker.getPlayerPassword(cid) == -1) then
         return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você não tem senha para remover!")
      end
      if not (tmp[2]) then
         return doShowTextDialog(cid, depotLocker.config.depotIDs[3], msg)
      end
      if (depotLocker.getPlayerPassword(cid) ~= -1) and (tmp[2] ~= depotLocker.getPlayerPassword(cid)) then
         return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Digite a sua senha atual corretamente!")
      end
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua senha foi removida!")
      return depotLocker.setPlayerPassword(cid, nil)
   elseif (tmp[1]:lower() == "lock") or (tmp[1]:lower() == "closed") then
   if depotLocker.isLocked(cid) then
    return doPlayerSendCancel(cid, "Seu depot ja esta trancado.")
	else
    setPlayerStorageValue(cid, depotLocker.storages.lockState, 0)
	return doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Seu depot foi travado.")
	end
end	

      return doShowTextDialog(cid, depotLocker.config.depotIDs[3], msg)
end

function doFindItemInPos(ids,pos) -- By Undead Slayer
   local results = {}
   for _ = 0, 255 do
       local findPos = {x = pos.x, y = pos.y, z = pos.z, stackpos = _}
       if isInArray(ids, getThingFromPos(findPos).itemid) then
          table.insert(results, getThingfromPos(findPos))
       end
   end

   return results
end

function isItemInRange(cp, range, ids)
    local extr1 = {x = cp.x - range, y = cp.y -range, z = cp.z}
    local extr2 = {x = cp.x + range, y = cp.y + range, z = cp.z}
    for i = 1, (extr2.y-extr1.y)+1 do
        for s = 1, (extr2.x-extr1.x)+1 do
            local f = {x=extr1.x+s-1, y=extr1.y+i-1, z=extr1.z, stackpos=0}
            local posz = doFindItemInPos(ids, f)
            if (#posz > 0) then
               return true
            end
        end
     end
return false
end

 

 

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

Te Ajudei? Rep + e ficamos Quits

166420979_logoyanliimaornight.png.33f822b8970081a5b3646e85dbfd5934.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.png.890d5a38d7bcde75543c72b624a65de1.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

Link para o post
Compartilhar em outros sites
16 minutos atrás, LeoTK disse:

sugiro fixar essa alteração na source pelo @Yan Liima

Feito.

3 minutos atrás, Yan Liima disse:

Era só um adicional aquilo. Acaba sendo meio inutil por conta do quadro, NPC e os demais sistemas. Mas caso queiram, ai está. Adaptei para essa versão do sistema:

Boa, valeu.

 

 

 

 

Nós somos aquilo que fazemos repetidamente. Excelência, não é um modo de agir, mas um hábito.

                                                                                                                                                                                                                                        Aristóteles 

Link para o post
Compartilhar em outros sites

@Yan Liima mas gera algum bug nas outras coisas por isso se torna inutil ou ele funciona normal a modificação foi só pra funcionar com esse sistema também?

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
5 minutos atrás, LeoTK disse:

@Yan Liima mas gera algum bug nas outras coisas por isso se torna inutil ou ele funciona normal a modificação foi só pra funcionar com esse sistema também?

Gera bug nenhum não. É que os outros metódos são mais faceis do que ficar digitando as talk. Mas pode usar ambos que não da conflito nenhum não, fica tranquilo ? 

════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═══╗

Te Ajudei? Rep + e ficamos Quits

166420979_logoyanliimaornight.png.33f822b8970081a5b3646e85dbfd5934.png

Precisando de ajuda?

discord.png.1ecd188791d0141f74d99db371a2e0a4.png.890d5a38d7bcde75543c72b624a65de1.pngDiscord: Yan Liima #3702

Programador Júnior de LUA, PHP e JavaScript

Juntos somos lendas, separados somos Mitos!

╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝

Link para o post
Compartilhar em outros sites

@Yan Liima fechou vou deixar esse mesmo porque ta maneira dar use e colocar a senha xD

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 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 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
    • Por Denker
      O Player será teletransportado para o TC, após sair do TradeCenter o player retornará á cidade de origem, ex:

      Saffon > TC , o player retornará a saffron.

      ---------------------------------------------------------------------------------------------------------------------

      Em Data/Movements/Scripts, crie um arquivo.lua e coloque dentro:

       
      -- Developed by: Denker local configs = { tps = { -- Teleport para o TC através de um TP (Item) especifico no chão [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50000}, -- Pallet [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50001}, -- Viridian [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50002}, -- Pewter [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50003}, -- Cerulean [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50004}, -- Saffron [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50005}, -- Celadon [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50006}, -- Vermilion [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50007}, -- Fuchsia [ItemID] = {pos = {x = 0, y = 0, z = 0}, storage = 50008}, -- Cinnabar }, -- LOCALIZAÇÕES localizacaoPallet = {x= 0, y= 0, z= 0}, localizacaoViridian = {x= 0, y= 0, z= 0}, localizacaoPewter = {x= 0, y= 0, z= 0}, localizacaoCerulean = {x= 0, y= 0, z= 0}, localizacaoSaffron = {x= 0, y= 0, z= 0}, localizacaoCeladon = {x= 0, y= 0, z= 0}, localizacaoVermilion = {x= 0, y= 0, z= 0}, localizacaoFuchsia = {x= 0, y= 0, z= 0}, localizacaoCinnabar = {x= 0, y= 0, z= 0} } function onStepIn(cid, item, position, fromPosition) local tp = configs.tps[item.itemid] if tp then doTeleportThing(cid, tp.pos) setPlayerStorageValue(cid, tp.storage, 1) return true end -- Verificação que irá teletransportar o player de acordo com a city que ele estava antes if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50000) == 1 then doTeleportThing(cid, configs.localizacaoPallet) setPlayerStorageValue(cid, 50000, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Pallet") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50001) == 1 then doTeleportThing(cid, configs.localizacaoViridian) setPlayerStorageValue(cid, 50001, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Viridian") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50002) == 1 then doTeleportThing(cid, configs.localizacaoPewter) setPlayerStorageValue(cid, 50002, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Pewter") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50003) == 1 then doTeleportThing(cid, configs.localizacaoCerulean) setPlayerStorageValue(cid, 50003, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Cerulean") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50004) == 1 then doTeleportThing(cid, configs.localizacaoSaffron) setPlayerStorageValue(cid, 50004, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Saffron") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50005) == 1 then doTeleportThing(cid, configs.localizacaoCeladon) setPlayerStorageValue(cid, 50005, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Celadon") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50006) == 1 then doTeleportThing(cid, configs.localizacaoVermilion) setPlayerStorageValue(cid, 50006, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Vermilion") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50007) == 1 then doTeleportThing(cid, configs.localizacaoFuchsia) setPlayerStorageValue(cid, 50007, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Fuchsia") return true end if (item.itemid == ItemID ) and getPlayerStorageValue(cid, 50008) == 1 then doTeleportThing(cid, configs.localizacaoCinnabar) setPlayerStorageValue(cid, 50008, 0) doPlayerSendTextMessage(cid, COLOR_MESSAGE_GREEN, "Você foi Teletransportado para Cinnabar") return true end end OBS: O item ID da verificação de volta, será igual para todas as verificações.

      Em Data/Movements/Movements.xml, coloque dentro:

       
      <movevent type="StepIn" itemid="ID" event="script" value="arquivo.lua"/>  

    • Por Denker
      Ao clicar em um baú o player receberá o pokémon, ao ser teleportado para a cidade inicial ele ganhará um kit.
      OBS: Script desenvolvido para Ot's aonde  não há opção de escolha para cidade inicial, sempre será a mesma.
       
      Em Data/Actions/Script, crie um arquivo.lua e coloque:
       
      -- Developed by: Denker local configs = { position = {x = , y = , z = }, -- Localização que o player será teletransportado level = 8, -- Level minimo item = { [1] = {id = , count = }, -- Item que será entregue [2] = {id = , count = }, }, pokemons = { [] = "Charmander", -- Pokémons a se escolher e os ID item que será correspondente a cada poke [] = "Bulbasaur", [] = "Squitler", } } function onUse(cid, item) local first_Pokemon = configs.pokemons[item.itemid] if getPlayerLevel(cid) >= configs.level then for i = 1, #configs.item do doPlayerAddItem(cid, configs.item[1].id, configs.item[1].count) end addPokeToPlayer(cid, first_Pokemon,nil,"normal") doTeleportThing(cid, configs.position) doPlayerSetTown(cid,ID) -- Seta a cidade inicial no player doPlayerSendTextMessage(cid, 27, "Você pegou "..first_Pokemon.." como seu primeiro pokémon, boa sorte em sua jornada") -- Mensagem enviada após pegar escolher o pokémon else doPlayerSendTextMessage(cid, 27, "Você não pode pegar este Pokémon") -- Mensagem caso o player não tenha o requisito end return true end
      Em Data/Action/action.xml, coloque:

       
      <action itemid="ItemID" event="script" value="arquivo.lua"/>  


×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo