Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Olá, já pesquisei em varios locais esse tipo de sistema, mais nunca achei!
montei no otserv um local onde existe 4 portas com 1 alavanca dentro...

e gostaria que cada porta fosse uma vocação, e players a partir do level 8 entram lá e trocam a vocação quantas vezes quiser para qual vocação quiser,

para entender melhor, olhe a foto :

 

changevoc.jpg

 

 

 

Agradeço desde já! ^^

 

Link para o post
Compartilhar em outros sites

Não é necessário fazer nada na porta e sim nas alavancas.

 

Crie um arquivo chamado changevoc.lua na pasta data/actions/scripts e cole isso dentro

function onUse(cid, item, frompos, item2, topos)
          if item.uid == 30000 then
                    doPlayerSetVocation(cid, 1)
                    doSendMagicEffect(topos, 14)
                    doPlayerSendMessage(cid, 22, 'You changed his vocation to sorcerer.')
                    doRemoveCreature(cid)
          end
 
 
 
          if item.uid == 30001 then
                    doPlayerSetVocation(cid, 2)
                    doSendMagicEffect(topos, 14)
                    doPlayerSendMessage(cid, 22, 'You changed his vocation to druid.')
                    doRemoveCreature(cid)
          end
 
 
 
          if item.uid == 30002 then
                    doPlayerSetVocation(cid, 3)
                    doSendMagicEffect(topos, 14)
                    doPlayerSendMessage(cid, 22, 'You changed his vocation to paladin.')
                    doRemoveCreature(cid)
          end
 
 
          if item.uid == 30003 then
                    doPlayerSetVocation(cid, 4)
                    doSendMagicEffect(topos, 14)
                    doPlayerSendMessage(cid, 22, 'You changed his vocation to knight.')
                    doRemoveCreature(cid)
          end
end

 

Adicione a seguinte lina no arquivo actions.xml na pasta data/actions

<action uniqueid="30000" event="script" value="changevoc.lua" />
<action uniqueid="30001" event="script" value="changevoc.lua" />
<action uniqueid="30002" event="script" value="changevoc.lua" />
<action uniqueid="30003" event="script" value="changevoc.lua" />
Spoiler

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}

if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

Link para o post
Compartilhar em outros sites

 

Não é necessário fazer nada na porta e sim nas alavancas.

 

Crie um arquivo chamado changevoc.lua na pasta data/actions/scripts e cole isso dentro

 

function onUse(cid, item, frompos, item2, topos)
          if item.uid == 30000 then
                    doPlayerSetVocation(cid, 1)
                    doSendMagicEffect(topos, 14)
                    doPlayerSendMessage(cid, 22, 'You changed his vocation to sorcerer.')
                    doRemoveCreature(cid)
          end
 
 
 
          if item.uid == 30001 then
                    doPlayerSetVocation(cid, 2)
                    doSendMagicEffect(topos, 14)
                    doPlayerSendMessage(cid, 22, 'You changed his vocation to druid.')
                    doRemoveCreature(cid)
          end
 
 
 
          if item.uid == 30002 then
                    doPlayerSetVocation(cid, 3)
                    doSendMagicEffect(topos, 14)
                    doPlayerSendMessage(cid, 22, 'You changed his vocation to paladin.')
                    doRemoveCreature(cid)
          end
 
 
          if item.uid == 30003 then
                    doPlayerSetVocation(cid, 4)
                    doSendMagicEffect(topos, 14)
                    doPlayerSendMessage(cid, 22, 'You changed his vocation to knight.')
                    doRemoveCreature(cid)
          end
end
 

Adicione a seguinte lina no arquivo actions.xml na pasta data/actions

 

<action uniqueid="30000" event="script" value="changevoc.lua" />
<action uniqueid="30001" event="script" value="changevoc.lua" />
<action uniqueid="30002" event="script" value="changevoc.lua" />
<action uniqueid="30003" event="script" value="changevoc.lua" />

 

Muito bom cara, ótimo ver alguém que se empenha em ajudar os outros {:. Tipo, com tabelas você reduz isso ai bastante, dá uma olhada:

 

 

 
local vocs = {
   [30000] = 1,
   [30001] = 2,
   [30002] = 3,
   [30003] = 4,
}
 
 
function onUse(cid, item, frompos, itemEx, topos)
   local voc = vocs[item.uid]
 
   if voc then
      doPlayerSetVocation(cid, voc)
      doSendMagicEffect(topos, 14)
      doPlayerPopupFYI(cid, "Now you're ".. getVocationInfo(voc).description) .. ".")
   end
 
   return true
end

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

Obrigado pelo elogio, sou muito novo na área de script, faz um mês que comecei a estudar isso. Obrigado pela dica.

Essa técnica se aplica em qualquer script que for usar varios Unique ID?

 

Att.

Giovani Rodrigo

Spoiler

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}

if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

Link para o post
Compartilhar em outros sites

Não seria exatamente uma técnica, xD. Seria mais como uma funcionalidade que a linguagem Lua nos proporciona {:

 

Dá uma lida nesses tutoriais

 

http://tibiaking.com/forum/topic/18196-aulas-de-scripting-lua/

 

Tenho certeza que te ajudarão bastante.

-"Supra Omnes Lux Lucis"

- Acima de todos brilha a Luz -

5VGnDyBz.png

Link para o post
Compartilhar em outros sites

 

Muito bom cara, ótimo ver alguém que se empenha em ajudar os outros {:. Tipo, com tabelas você reduz isso ai bastante, dá uma olhada:

 

 

 
local vocs = {
   [30000] = 1,
   [30001] = 2,
   [30002] = 3,
   [30003] = 4,
}
 
 
function onUse(cid, item, frompos, itemEx, topos)
   local voc = vocs[item.uid]
 
   if voc then
      doPlayerSetVocation(cid, voc)
      doSendMagicEffect(topos, 14)
      doPlayerPopupFYI(cid, "Now you're ".. getVocationInfo(voc).description) .. ".")
   end
 
   return true
end

 

Max não muda muita mas diminui o conteudo belo script

92396059.png

                                                                                                                                                                                  

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo