Ir para conteúdo
  • Cadastre-se

Suporte Função level


Ir para solução Resolvido por FeeTads,

Posts Recomendados

Olá, como coloco uma função de level nesse talkaction?
 

local config = {
--[[vocation id] = {storage, nova voc, looktype, efeito}
Cuidado: não vai precisar de level para se transformar.]]
------------ NARUTO -------------
[215] = {30023, 630, 971, 252},
}

function onSay(cid, words, param, channel)

local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} -- começo e final do mapa
local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} -- começo e final do mapa
local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} -- começo e final do mapa
local from4,to4 = {x=985, y=598, z=7},{x=1044, y=652, z=7} -- começo e final do mapa
local from5,to5 = {x=986, y=615, z=6},{x=1039, y=647, z=7} -- começo e final do mapa
local from6,to6 = {x=990, y=616, z=5},{x=1040, y=647, z=5} -- começo e final do mapa
local from7,to7 = {x=1475, y=856, z=7},{x=1484, y=867, z=7} -- começo e final do mapa
local from8,to8 = {x=984, y=578, z=7},{x=1044, y=652, z=7} -- shinobi war
---------------------------------------------
local voc = config[getPlayerVocation(cid)]

	if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) or isInRange(getCreaturePosition(cid), from3, to3) or isInRange(getCreaturePosition(cid), from4, to4) or isInRange(getCreaturePosition(cid), from5, to5) or isInRange(getCreaturePosition(cid), from6, to6) or isInRange(getCreaturePosition(cid), from7, to7) or isInRange(getCreaturePosition(cid), from8, to8) then
	doPlayerSendCancel(cid, "Você não pode se transformar nesta área!")
	return true
	end

	if voc then
		if getPlayerStorageValue(cid, voc[1]) > 1 then
		doCreatureSay(cid, "Transformar!", TALKTYPE_MONSTER)
		doPlayerSetVocation(cid, voc[2])
		doCreatureChangeOutfit(cid, {lookType = voc[3]})
		doSendMagicEffect(getCreaturePosition(cid), voc[4])
		else 
		doPlayerSendCancel(cid, "Você não fez a quest para usar essa transformação!")
		end
	else
	doPlayerSendCancel(cid, "Você já está na transformação máxima!")
	end
return true
end

 

Editado por What Member (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • What Member mudou o título para Função level
18 horas atrás, What Member disse:

Olá, como coloco uma função de level nesse talkaction?

if getPlayerLevel(cid) > 8 then --level maior que 8
	--código  
end

basicamente só isso mano, agora se for pra algo mais especifico, vc pode montar uma table de leveis, mas ai eh mais chatinho, mas basicamente é
getPlayerLevel(cid) pra checar se é maior ou menos que tal numero..

Link para o post
Compartilhar em outros sites
13 horas atrás, FeeTads disse:

if getPlayerLevel(cid) > 8 then --level maior que 8
	--código  
end

basicamente só isso mano, agora se for pra algo mais especifico, vc pode montar uma table de leveis, mas ai eh mais chatinho, mas basicamente é
getPlayerLevel(cid) pra checar se é maior ou menos que tal numero..

Adicionei a função e aparentemente não funcionou, mas também não da erro na distro, poderia adicionar e me explicar o que foi feito? pra ver se fiz algo errado? Grato!!

Link para o post
Compartilhar em outros sites
55 minutos atrás, What Member disse:

Adicionei a função e aparentemente não funcionou, mas também não da erro na distro, poderia adicionar e me explicar o que foi feito? pra ver se fiz algo errado? Grato!!

então, basicamente essa função, vai checar se o player é maior que level 8, se ele for, vai fazer o que esta dentro do IF, exemplo:

if getPlayerLevel(cid) > 8 then --level maior que 8
	doTeleportThing(cid, TempleTownId(1)) -- se o player for maior que level 8, entra aki e teleporta ele pro templo
end

 

consegue me mandar seu código por aqui mesmo, e mais explicativo o que vc gostaria? posso tentar arrumar pra você, mas DETALHA BEM o que vc necessita

Link para o post
Compartilhar em outros sites
4 minutos atrás, FeeTads disse:

então, basicamente essa função, vai checar se o player é maior que level 8, se ele for, vai fazer o que esta dentro do IF, exemplo:


if getPlayerLevel(cid) > 8 then --level maior que 8
	doTeleportThing(cid, TempleTownId(1)) -- se o player for maior que level 8, entra aki e teleporta ele pro templo
end

 

consegue me mandar seu código por aqui mesmo, e mais explicativo o que vc gostaria? posso tentar arrumar pra você, mas DETALHA BEM o que vc necessita

O que eu estou batendo a cabeça, é por exemplo neste código:

if getPlayerLevel(cid) >= voc[1] then
   doPlayerSetVocation(cid, voc[2])
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Transformou!")
   local outfit = {lookType = voc[3]}
   doCreatureChangeOutfit(cid, outfit)
   if voc[1] >= 500 then
   doSendMagicEffect(pos, voc[4])
   else if voc[4] == 35 or voc[4] == 72 then
   doSendMagicEffect(pos, voc[4])
   else 
   doSendMagicEffect(getCreaturePosition(cid), voc[4])
   end
   end
  else
   doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar no level " .. voc[1] .. " para transformar.")
  end

Como eu fiz a alteração no código de level pra storage, eu não to conseguindo adicionar essa função novamente (não precisa adicionar nessa tabela abaixo) pode ser um level fixo (500 ou mais)
 

--[[vocation id] = {storage, nova voc, looktype, efeito}
Cuidado: não vai precisar de level para se transformar.]]
------------ NARUTO -------------
[215] = {30023, 630, 971, 252},




o código é:
 

local config = {
--[[vocation id] = {storage, nova voc, looktype, efeito}
Cuidado: não vai precisar de level para se transformar.]]
------------ NARUTO -------------
[215] = {30023, 630, 971, 252},
}

function onSay(cid, words, param, channel)

local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} -- começo e final do mapa
local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} -- começo e final do mapa
local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} -- começo e final do mapa
local from4,to4 = {x=985, y=598, z=7},{x=1044, y=652, z=7} -- começo e final do mapa
local from5,to5 = {x=986, y=615, z=6},{x=1039, y=647, z=7} -- começo e final do mapa
local from6,to6 = {x=990, y=616, z=5},{x=1040, y=647, z=5} -- começo e final do mapa
local from7,to7 = {x=1475, y=856, z=7},{x=1484, y=867, z=7} -- começo e final do mapa
local from8,to8 = {x=984, y=578, z=7},{x=1044, y=652, z=7} -- shinobi war
---------------------------------------------
local voc = config[getPlayerVocation(cid)]

	if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) or isInRange(getCreaturePosition(cid), from3, to3) or isInRange(getCreaturePosition(cid), from4, to4) or isInRange(getCreaturePosition(cid), from5, to5) or isInRange(getCreaturePosition(cid), from6, to6) or isInRange(getCreaturePosition(cid), from7, to7) or isInRange(getCreaturePosition(cid), from8, to8) then
	doPlayerSendCancel(cid, "Você não pode se transformar nesta área!")
	return true
	end

	if voc then
		if getPlayerStorageValue(cid, voc[1]) > 1 then
		doCreatureSay(cid, "Transformar!", TALKTYPE_MONSTER)
		doPlayerSetVocation(cid, voc[2])
		doCreatureChangeOutfit(cid, {lookType = voc[3]})
		doSendMagicEffect(getCreaturePosition(cid), voc[4])
		else 
		doPlayerSendCancel(cid, "Você não fez a quest para usar essa transformação!")
		end
	else
	doPlayerSendCancel(cid, "Você já está na transformação máxima!")
	end
return true
end

Só preciso que o jogador tenha level 500 ou superior pra usar a talkacation!

(desculpa se estou sendo confuso, mas obrigado!)

Link para o post
Compartilhar em outros sites
  • Solução
5 minutos atrás, What Member disse:

Só preciso que o jogador tenha level 500 ou superior pra usar a talkacation!

então é só colocar o getplayer level no começo do on say, assim:

 

local config = {
	--vocation id = {storage, nova voc, looktype, efeito}
	------------ NARUTO -------------
	[215] = {30023, 630, 971, 252},
	need_level = 500
}

local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} -- começo e final do mapa
local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} -- começo e final do mapa
local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} -- começo e final do mapa
local from4,to4 = {x=985, y=598, z=7},{x=1044, y=652, z=7} -- começo e final do mapa
local from5,to5 = {x=986, y=615, z=6},{x=1039, y=647, z=7} -- começo e final do mapa
local from6,to6 = {x=990, y=616, z=5},{x=1040, y=647, z=5} -- começo e final do mapa
local from7,to7 = {x=1475, y=856, z=7},{x=1484, y=867, z=7} -- começo e final do mapa
local from8,to8 = {x=984, y=578, z=7},{x=1044, y=652, z=7} -- shinobi war

function onSay(cid, words, param, channel)

	if getPlayerLevel(cid) < config.need_level then
		doPlayerSendCancel(cid, "Você precisa ser level".. config.need_level .."ou mais!")
		return true
	end
	
	local voc = config[getPlayerVocation(cid)]
	local posPlayer = getCreaturePosition(cid)

	if isInRange(posPlayer, from, to) or isInRange(posPlayer, from2, to2) or isInRange(posPlayer, from3, to3) or isInRange(posPlayer, from4, to4) or isInRange(posPlayer, from5, to5) or isInRange(posPlayer, from6, to6) or isInRange(posPlayer, from7, to7) or isInRange(posPlayer, from8, to8) then
		doPlayerSendCancel(cid, "Você não pode se transformar nesta área!")
		return true
	end

	if voc then
		if getPlayerStorageValue(cid, voc[1]) > 1 then
			doCreatureSay(cid, "Transformar!", TALKTYPE_MONSTER)
			doPlayerSetVocation(cid, voc[2])
			doCreatureChangeOutfit(cid, {lookType = voc[3]})
			doSendMagicEffect(posPlayer, voc[4])
		else 
			doPlayerSendCancel(cid, "Você não fez a quest para usar essa transformação!")
		end
	else
		doPlayerSendCancel(cid, "Você já está na transformação máxima!")
	end
	return true
end


"need_level" = level minimo necessário. **LEMBRANDO** level 500 assim que pegar 500, ja pode usar a function
ai dentro do onSay, quando o player der talkaction e for 500 ou menos, retorna true e sai da function sem transformar

caso queira uma tabela e talz, me manda no discord a ideia que tento fazer pra vc, e dei uma "arrumadinha" no código pra deixar mais clean kkkkk

Link para o post
Compartilhar em outros sites
2 minutos atrás, FeeTads disse:

então é só colocar o getplayer level no começo do on say, assim:

 


local config = {
	--vocation id = {storage, nova voc, looktype, efeito}
	------------ NARUTO -------------
	[215] = {30023, 630, 971, 252},
	need_level = 500
}

local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} -- começo e final do mapa
local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} -- começo e final do mapa
local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} -- começo e final do mapa
local from4,to4 = {x=985, y=598, z=7},{x=1044, y=652, z=7} -- começo e final do mapa
local from5,to5 = {x=986, y=615, z=6},{x=1039, y=647, z=7} -- começo e final do mapa
local from6,to6 = {x=990, y=616, z=5},{x=1040, y=647, z=5} -- começo e final do mapa
local from7,to7 = {x=1475, y=856, z=7},{x=1484, y=867, z=7} -- começo e final do mapa
local from8,to8 = {x=984, y=578, z=7},{x=1044, y=652, z=7} -- shinobi war

function onSay(cid, words, param, channel)

	if getPlayerLevel(cid) < config.need_level then
		doPlayerSendCancel(cid, "Você precisa ser level".. config.need_level .."ou mais!")
		return true
	end
	
	local voc = config[getPlayerVocation(cid)]
	local posPlayer = getCreaturePosition(cid)

	if isInRange(posPlayer, from, to) or isInRange(posPlayer, from2, to2) or isInRange(posPlayer, from3, to3) or isInRange(posPlayer, from4, to4) or isInRange(posPlayer, from5, to5) or isInRange(posPlayer, from6, to6) or isInRange(posPlayer, from7, to7) or isInRange(posPlayer, from8, to8) then
		doPlayerSendCancel(cid, "Você não pode se transformar nesta área!")
		return true
	end

	if voc then
		if getPlayerStorageValue(cid, voc[1]) > 1 then
			doCreatureSay(cid, "Transformar!", TALKTYPE_MONSTER)
			doPlayerSetVocation(cid, voc[2])
			doCreatureChangeOutfit(cid, {lookType = voc[3]})
			doSendMagicEffect(posPlayer, voc[4])
		else 
			doPlayerSendCancel(cid, "Você não fez a quest para usar essa transformação!")
		end
	else
		doPlayerSendCancel(cid, "Você já está na transformação máxima!")
	end
	return true
end


"need_level" = level minimo necessário. **LEMBRANDO** level 500 assim que pegar 500, ja pode usar a function
ai dentro do onSay, quando o player der talkaction e for 500 ou menos, retorna true e sai da function sem transformar

caso queira uma tabela e talz, me manda no discord a ideia que tento fazer pra vc, e dei uma "arrumadinha" no código pra deixar mais clean kkkkk

perfeito @FeeTads e obrigado pela explicação!!

Link para o post
Compartilhar em outros sites
2 minutos atrás, What Member disse:

perfeito @FeeTads e obrigado pela explicação!!

TMJ meu bom, se puder deixar o REP+ tbm na respostar kkkkkkk agradeceria, qualquer coisa pode me marcar aki no forum que tento responder, ou pode chamar discord que tento ajudar tbm

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 braianlomas
      Como faço para corrigir esse problema para meu cliente, eu uso o tfs 0.3.6  
      Quero resolver esse problema que tenho no meu cliente, como e onde posso resolver?  
      Eu uso o tfs 0.3.6, não tenho as fontes do cliente, se você puder me dar eu vou amá-las para sempre  
       

       
    • Por A.Mokk
      Ola pessoal, estou tentando compilar o TFS 1.5 Downgrade para 8.60 atraves do MSVC 2022, ao tentar compilar da o seguinte erro:
       
       
      Fiz o download do MSVC, GitDash, TFS-SDK-3.2, e de varios boosts que tentei, ao fazer o seguinte procedimento no GitDash:
       
      Ao chegar em ./bootstrap-vcpkg.bat o GitDash nao consegue realizar o procedimento corretamente, alguem poderia me ajudar ?

      Tentei de diversas formas mas o mesmo erro sempre persiste, atualmente meu servidor utiliza TFS 0.4, consigo compilar sem nenhum problema no MSVC 2010, porem, as limitações do TFS 0.4 estão me fazendo precisar atualizar, se alguem souber como corrigir esses erros eu agradeço !

      Tutoriais utilizados :
      Compiling on Windows (vcpkg) · otland/forgottenserver Wiki · GitHub
      Compiling on Windows · otland/forgottenserver Wiki · GitHub
      Compilando TFS 1.3 com vídeo-aula - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
      Compilar TFS 1.3 Vcpkg - Tutoriais Infraestrutura & Proteção - Tibia King - Tudo sobre Tibia, OTServ e Bots!
       
      O que acontece no Powershell:
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      Canary 2.3.6
      Qual o motivo deste tópico? 
      Queria fazer com que os players não pudessem mexer no aleta sio, pois, agora os mesmos estão conseguindo mexer nos itens
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por thunmin
      .Qual servidor ou website você utiliza como base? 
      canary para o cliente 13.16
      Qual o motivo deste tópico? 
      Não consigo encontrar onde ajusta
      to com o problema no 13.16  o exausted, por exemplo os kinas era pra combar exori, erori gran e exori min, porém não ta indo ta dando exausted o char ta soltando magia ou runa e não consegue usar as potions
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por Andersontatuador
      Olá galera da TK, me chamo Anderson estou procurando alguém profissional em otservs e site.
      Já tenho um servidor o site e o cliente preciso só de uma pessoal competente, que esteja empenhado a trabalhar,
      não quero nada de graça, pois nessa onda fui mais roubado do quer eu pagar um profissional.
      caso alguém se interesse entrar em contato comigo através do whatsapp
      82 9 9304-9462
       
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo