Ir para conteúdo
  • Cadastre-se

Posts Recomendados

@WooX Muito bacana a ideia, mas tenho interesse em outra coisa, o nome do seu group ta vermelho, to procurando isso já tem um tempo e não acho, existem algum tutorial ou foi vc que implementou esse sistema? se sim poderia disponibilizar?

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 OTX2 e TFS 0.4, para utilizar a função doShowTextDialog da maneira como está no sistema no TFS 0.4 e inferiores é necessário uma alteração na source, link abaixo.   O que faz?  Este sistema consiste em adicionar um layer extra de segurança para o jogador, permitido criar uma senha

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, 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

9 horas atrás, diarmaint disse:

@WooX Muito bacana a ideia, mas tenho interesse em outra coisa, o nome do seu group ta vermelho, to procurando isso já tem um tempo e não acho, existem algum tutorial ou foi vc que implementou esse sistema? se sim poderia disponibilizar?

Não sou eu no vídeo, é o @Yan Liima. Acredito que seja alguma injeção de DLL no client, tenta mandar uma mensagem pra ele.

Em 17/07/2020 em 21:22, WooX disse:

Créditos

@Yan Liima pela idealização do sistema e vídeo de demonstração.

 

 

 

 

 

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 months later...
Em 17/07/2020 em 21:22, WooX disse:

Depot Locker System

8pY4YYM.png

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 OTX2 e TFS 0.4, para utilizar a função doShowTextDialog da maneira como está no sistema no TFS 0.4 e inferiores é necessário uma alteração na source, link abaixo.

 

O que faz?

 Este sistema consiste em adicionar um layer extra de segurança para o jogador, permitido criar uma senha para acesso do depot. Isso possibilita o jogador passar sua senha a amigos em que não confia totalmente e a estar precavido até certo ponto no caso de hacking.

Vídeo

  Mostrar conteúdo oculto

 

 

 

Instalação

Este sistema utiliza de funções contidas na lib do link abaixo, então antes de mais nada é necessário adicionar esta lib no servidor.

  Ocultar conteúdo

 

 

Depois de instalado a lib, basta baixar os arquivos anexados no tópico, adicionar em seus respectivos locais e registrar as tags XML contidas nos mesmos. Após isso é necessário adicionar o action id configurado no piso dos depots em que o sistema deve funcionar. Toda configuração do sistema se encontra dentro do arquivo lib_depotlocker.lua, segue explicação da seção de configuração.


	config = {
		useBoard = false,
		passMinLength = 4,
		passMaxLength = 12,
		askPassOnlyOneTimePerLogin = true,
		boardIDs = {1811, 1818}, -- West/East and North/South
		depotIDs = {2589, 2590, 2591, 2592}, -- South, West, North and East
		typeYourPassMsg = "Digite sua senha: ",
		rightPassMsg = "Senha correta, depot liberado.",
		wrongPassMsg = "Senha incorreta, tente novamente.",
		wrongTries = {
			limitTries = true,
			triesBeforeBlock = 5,
			blockTime = 15 * 60, -- 15 Minutos
			triesLeftMsg = "Senha incorreta, você ainda tem %s tentativa.",
			blockMsg = "Depot bloqueado, tente novamente em %s."
		},
	}
  • useBoard: pode ser definido como true ou false, se definido como verdadeiro irá criar um quadro ao lado do depot para o player poder digitar a senha, da mesma forma que é mostrada no vídeo, (eu recomendo deixar esta opção ativada somente se utilizar paredes como separador entre um depot e outro).
  • passMinLength/passMaxLength: definem o valor minimo e máximo de caracteres que uma senha pode ter.
  • askPassOnlyOneTimePerLogin: pode ser definido como true ou false, se definido como verdadeiro irá pedir a senha novamente apenas se o jogador sair e entrar novamente.
  • boardIDs: aqui é preenchido os IDs dos quadros em que o player deve digitar a senha, um ID para vertical e outro para a horizontal.
  • depotIDs: aqui é preenchido os IDs dos depots na respectiva ordem, sul, oeste, norte e leste.
  • typeYourPassMsgesta é a mensagem que irá aparecer na caixa de texto orientando o jogador a digitar a senha.
  • rightPassMsgesta é a mensagem que irá aparecer quando o jogador digitar a senha correta.
  • wrongPassMsgesta é a mensagem que irá aparecer quando o jogador digitar a senha incorreta.
  • limitTriespode ser definido como true ou false, se definido como verdadeiro irá bloquear as tentativas do jogador caso ele digite a senha incorreta um determinado numero de vezes.
  • triesBeforeBlockquantidade de tentativas incorretas para realizar o bloqueio.
  • blockTime: Tempo de bloqueio (valor é definido em segundos).
  • triesLeftMsg: esta é a mensagem que será enviada para o jogador com a quantidade de tentativas que ele ainda possui.
  • blockMsgesta é a mensagem que será enviada para o jogador caso todas suas tentativas falhem e ele seja bloqueado.

 

 

Lembrando que o action id configurado em depotTile deve ser o mesmo registrado no script de movement e deve ser adicionado no piso do depot.

8YqDAWO.png

 

Créditos

@Yan Liima pela idealização do sistema e vídeo de demonstração.

@Baiakeiro por testar a versão final do sistema.

locker_action.lua 503 B · 12 downloads locker_creature.lua 1 kB · 12 downloads locker_movement.lua 1 kB · 11 downloads npc.lua 4 kB · 12 downloads npc.xml 534 B · 10 downloads

[19:57:51.038] [Error - MoveEvents Interface]
[19:57:51.044] data/movements/scripts/locker_movement.lua:onStepIn
[19:57:51.047] Description:
[19:57:51.050] data/movements/scripts/locker_movement.lua:6: attempt to call global 'doSetItemActionId' (a nil value)
[19:57:51.056] stack traceback:
[19:57:51.059]  data/movements/scripts/locker_movement.lua:6: in function <data/movements/scripts/locker_movement.lua:1>

[19:58:18.351] [Error - MoveEvents Interface]
[19:58:18.356] data/movements/scripts/locker_movement.lua:onStepOut
[19:58:18.360] Description:
[19:58:18.363] data/movements/scripts/locker_movement.lua:17: attempt to call field 'getBoard' (a nil value)
[19:58:18.365] stack traceback:
[19:58:18.370]  data/movements/scripts/locker_movement.lua:17: in function <data/movements/scripts/locker_movement.lua:15>

 

consegue me ajudar ?

Link para o post
Compartilhar em outros sites
Em 30/11/2020 em 19:59, Mayk on BaiakME disse:

[19:57:51.038] [Error - MoveEvents Interface]
[19:57:51.044] data/movements/scripts/locker_movement.lua:onStepIn
[19:57:51.047] Description:
[19:57:51.050] data/movements/scripts/locker_movement.lua:6: attempt to call global 'doSetItemActionId' (a nil value)
[19:57:51.056] stack traceback:
[19:57:51.059]  data/movements/scripts/locker_movement.lua:6: in function <data/movements/scripts/locker_movement.lua:1>

[19:58:18.351] [Error - MoveEvents Interface]
[19:58:18.356] data/movements/scripts/locker_movement.lua:onStepOut
[19:58:18.360] Description:
[19:58:18.363] data/movements/scripts/locker_movement.lua:17: attempt to call field 'getBoard' (a nil value)
[19:58:18.365] stack traceback:
[19:58:18.370]  data/movements/scripts/locker_movement.lua:17: in function <data/movements/scripts/locker_movement.lua:15>

 

consegue me ajudar ?

Verifica se na sua lib 100-shortcut.lua existe a seguinte função, se não tiver adicione.

function doItemSetActionId(uid, aid)
	return doItemSetAttribute(uid, "aid", aid)
end

 

 

 

 

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

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 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"/>  

    • Por Denker
      Basicamente é o uso de um item que troca a outfit do player de acordo com o genêro e acrescenta speed.

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

       
      -- Developed by: Denker local configs = { Speed = Value , -- Speed que será adicionada e removida Outfit = { [ItemID] = {looktype_male = Sprite , -- LOOKTYPE MASCULINO looktype_female = Sprite , -- LOOKTYPE FEMININO }, } } function onUse(cid, item, frompos, itemEx, topos) local change_Outfit = configs.Outfit[item.itemid] if getPlayerStorageValue(cid, 32011) == 1 then doRemoveCondition(cid, CONDITION_OUTFIT) doChangeSpeed(cid, -configs.Speed) setPlayerStorageValue(cid, 32011, 0) return true end if getPlayerSex(cid) == 1 then -- Male doChangeSpeed(cid, configs.Speed) doSetCreatureOutfit(cid,{lookType = change_Outfit.looktype_male},-1) setPlayerStorageValue(cid, 32011, 1) elseif getPlayerSex(cid) == 0 then -- Female doChangeSpeed(cid, configs.Speed) doSetCreatureOutfit(cid,{lookType = change_Outfit.looktype_female},-1) setPlayerStorageValue(cid, 32011, 1) end return true end  
      Em Data/Actions/action.xml, adicione:

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

  • Estatísticas dos Fóruns

    96844
    Tópicos
    519599
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo