Ir para conteúdo
  • Cadastre-se

Posts Recomendados

18 horas atrás, LeoTK disse:

@WooX nossa eu aceito sim se você puder fazer essa alteração vai me ajudar muito tmj ^^ 

Faça essas alterações nos arquivos pra funcionar com o ID do piso ao invés de com ActionID.

 

No arquivo lib_depotlocker.lua remova a variável depotTile da seção de action ids e adicione junto as outras variáveis de configuração depotTileID, deve ficar assim:

Spoiler

depotLocker = {

	config = {
		useBoard = false,
		depotTileID = 9992
		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."
		},
		actionIDs = {
			board = 9991,
		}
	},
	
	storages = {
		lockState = 42610, -- [-1, 0] = Locked, [1] = Open
		password = 42611,
		wrongTries = 42612,
		blockTime = 42613,
	}
}

 

 

No arquivo locker_creature.lua onde estiver getTileInfo(getThingPos(cid)).actionid altere para getTileInfo(getThingPos(cid)).itemid e onde estiver depotLocker.config.actionIDs.depotTile altere para depotLocker.config.depotTileID,  a função onTextEdit deve ficar assim:

Spoiler

function onTextEdit(cid, item, newText)
	if depotLocker.config.useBoard and item.actionid == depotLocker.config.actionIDs.board then
		if not depotLocker.isLocked(cid) then
			doPlayerSendCancel(cid, "Seu depot ja esta destravado.")
			return false
		elseif getTileInfo(getThingPos(cid)).itemid ~= depotLocker.config.depotTileID then
			doPlayerSendCancel(cid, "Voce precisa estar no depot para inserir a senha.")
			return false
		end
		depotLocker.checkPassword(cid, newText)
	elseif isInArray(depotLocker.config.boardIDs, item.itemid) and getTileInfo(getThingPos(cid)).itemid == depotLocker.config.depotTileID then
		depotLocker.checkPassword(cid, newText)
	end
	return true
end

 

 

E por ultimo mas não menos importante, altere as tags XML do arquivo locker_movement.lua de:

<movevent type="StepIn" actionid="9992" event="script" value="locker_movement.lua"/>
<movevent type="StepOut" actionid="9992" event="script" value="locker_movement.lua"/>

para:

<movevent type="StepIn" itemid="9992" event="script" value="locker_movement.lua"/>
<movevent type="StepOut" itemid="9992" event="script" value="locker_movement.lua"/>

 

18 horas atrás, Yan Liima disse:

Não utilizo essa versão aí, tava utilizando aquela que começamos fazer juntos. Ta bem funcional mas não tão organizado e detalhado igual está aí. Sem dúvidas essa ta muito melhor kkk. Esse ta até com limite de tentativas, oloco bem bolado. Não consigo ver pois estou pelo celular, mas você refez o NPC também ou está utilizando aquele que fiz? Enfim, sistema foda de mais! ❤️

Eu refiz o NPC também, sim aquele lá já estava funcional mas desde aquela época eu queria adicionar essas outras funções, por isso fiz aquela lib gigante na época kkk. Valeu, tamo junto.

 

 

 

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

11 minutos atrás, Nolis disse:

Muito bom esse sistema, e se caso o jogador perder a senha, como faria pra recuperar?

Vixi, ai...

200.gif

 

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

 

 

 

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 tenta criar uma senha mestra que o jogador é obrigado a anotar e guardar de uma forma segura e que seja registrado não em um banco de dados e sim em um arquivo.txt na pasta do servidor como uma log assim apenas o dono do servidor vai ter acesso e o jogador caso perder ele pode pedir para a staff a senha mestra para redefinir etc.... apenas uma ideia ai você pode elaborar algo desse contexto

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:

@WooX tenta criar uma senha mestra que o jogador é obrigado a anotar e guardar de uma forma segura e que seja registrado não em um banco de dados e sim em um arquivo.txt na pasta do servidor como uma log assim apenas o dono do servidor vai ter acesso e o jogador caso perder ele pode pedir para a staff a senha mestra para redefinir etc.... apenas uma ideia ai você pode elaborar algo desse contexto

Mas a staff já tem acesso a senha, ela é salva em uma storage, só realizar uma consulta no banco de dados que vai estar lá. A questão é que pode não ser o verdadeiro dono do char que está nele, então fico meio que com o pé atrás com a ideia de a staff passar a senha pro jogador, uma solução para recuperar a senha serial o ideal mesmo.

 

 

 

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

    96840
    Tópicos
    519575
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo