BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

(Problema/Pedido) Script Cambio Vocation

(Problema/Pedido) Script Cambio Vocation

#1 (Problema/Pedido) Script Cambio Vocation el Vie Jun 12, 2015 12:54 am

lordhades92


Aprendiz
Hola compañeros!

Ando en busca de un script para un teleport que al entrar te cambie la vocacion a una seleccionada en el script...
Osea, sea cual sea tu vocacion... al entrar en el teleport numero uno tu vocacion se cambie a digamos Knight, y asi sucesivamente osea con las cuatro vocaciones.

He mi larga busqueda me he encontrado con 2 tipos de scripts...
Los enseñare y les dire los inconvenientes:

Script Numero #1:


Código:

   <movevent type="StepIn" actionid="9101" event="script" value="vocation/sorcerer.lua"/>

Código:
voc = 1
function onStepIn(cid, item, position, fromPosition)
      doPlayerSetVocation(cid,voc)
end

Este Script se supone que deberia cambiar tu vocacion a la Numero 1 como dice pero el problema es que,
si se tiene varios scripts, osea, uno por vocacion, todos los teleports aunque tengan diferentes ActionID
te cambian tu vocacion a la ultima de la lista de vocaciones, osea al ulimo ID que seria el Elite Knight.


Script Numero #2:


Código:

   <movevent type="StepIn" actionid="9101" event="script" value="vocation/sorcerer.lua"/>

Código:
local townid = 1
local voc = 1
function onStepIn(cid, item, position, fromPosition)
   if isPlayer(cid) == TRUE then
      if getPlayerVocation(cid) == 1 then
         doPlayerSetTown(cid, townid)
         doPlayerSetVocation(cid,voc)
         doTeleportThing(cid, getTownTemplePosition(townId))
      end
   end
end

Este script aunque tiene un extra que te cambia el TownID no me molesta ese extra pero hace lo mismo que el anterior que me coloca la ultima vocacion no al que se coloca alli.


Doy +REP

#2 Re: (Problema/Pedido) Script Cambio Vocation el Vie Jun 12, 2015 2:23 am

ArcaniaOnline


Miembro
Mira

Acá solo dejas que pasen el tp knights para lvl 50 o mas ...
Código:
-- voc knight to soldier or warrior --

function onStepIn(cid, item, pos)

 if getPlayerLevel(cid) < 50 then
      doPlayerSendTextMessage(cid,22,"Sorry, you are under lvl 50.")
      return 1
   end

if getPlayerVocation(cid) > 4 or getPlayerVocation(cid) < 4 then
      doPlayerSendTextMessage(cid,22,"Sorry, only Knight are allowed.")
      return 1
   end
   if item.actionid == 908 then
   npos = {x=pos.x, y=pos.y-3, z=pos.z}
      queststatus = getPlayerStorageValue(cid,908)
      if queststatus == -1 or queststatus == 0 then
         doPlayerSendTextMessage(cid,22,"ARE YOU PREPARED TO FACE YOUR DESTINY AS A Soldier VOCATION?.")
                        doTeleportThing(cid,npos)
         doSendMagicEffect(npos,12)
         --setPlayerStorageValue(cid,908,1)

      else
         doPlayerSendTextMessage(cid,22,"Sorry, you cant enter again.")
      end
   elseif item.actionid == 909 then
   npos = {x=pos.x, y=pos.y-3, z=pos.z}
      queststatus = getPlayerStorageValue(cid,909)
      if queststatus == -1 or queststatus == 0 then
         doPlayerSendTextMessage(cid,22,"ARE YOU PREPARED TO FACE YOUR DESTINY AS A Warrior VOCATION?.")
                        doTeleportThing(cid,npos)
         doSendMagicEffect(npos,12)
         --setPlayerStorageValue(cid,909,1)

      else
         doPlayerSendTextMessage(cid,22,"Sorry, you cant enter again.")
      end

   else
      return 0
   end
   return 1
end

Y este te cambia la vocacion...

Código:
-- voc knight to soldier or warrior --

function onStepIn(cid, item, pos)
local voc = 13
local voc1 = 14
 if getPlayerLevel(cid) < 50 then
      doPlayerSendTextMessage(cid,22,"Sorry, you are under lvl 50.")
      return 1
   end

if getPlayerVocation(cid) > 4 or getPlayerVocation(cid) < 4 then
      doPlayerSendTextMessage(cid,22,"Sorry, only Knight are allowed.")
      return 1
   end
   if item.actionid == 914 then
   npos = {x=241, y=962, z=8}
      queststatus = getPlayerStorageValue(cid,914)
      if queststatus == -1 or queststatus == 0 then
         doPlayerSetVocation(cid, voc)
         doPlayerSendTextMessage(cid,22,"Now you are a Soldier.")
                        doTeleportThing(cid,npos)
         doSendMagicEffect(npos,12)
         --setPlayerStorageValue(cid,914,1)

      else
         doPlayerSendTextMessage(cid,22,"Sorry, you cant change you vocation.")
      end

   elseif item.actionid == 915 then
   npos = {x=241, y=962, z=8}
      queststatus = getPlayerStorageValue(cid,915)
      if queststatus == -1 or queststatus == 0 then
         doPlayerSetVocation(cid, voc1)
         doPlayerSendTextMessage(cid,22,"Now you are a Warrior.")
                        doTeleportThing(cid,npos)
         doSendMagicEffect(npos,12)
         --setPlayerStorageValue(cid,915,1)

      else
         doPlayerSendTextMessage(cid,22,"Sorry, you cant change you vocation.")
      end

   else
      return 0
   end
   return 1
end

PD: el primer tp tiene un AID y el segundo otra AID para que se haga efectivo cada uno de los scripts.

#3 Re: (Problema/Pedido) Script Cambio Vocation el Vie Jun 12, 2015 3:42 am

Dantarrix


Miembro
@Arcania:

Esto:
Código:

if getPlayerVocation(cid) > 4 or getPlayerVocation(cid) < 4 then

Lo haces más corto así:
Código:

if getPlayerVocation(cid) ~= 4 then

#4 Re: (Problema/Pedido) Script Cambio Vocation el Vie Jun 12, 2015 9:46 pm

ArcaniaOnline


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] Es super viejo mi script despues lo miro y acorto lineas era para ver si eso quería el hombrom

#5 Re: (Problema/Pedido) Script Cambio Vocation el Sáb Jun 13, 2015 1:51 am

lordhades92


Aprendiz
Muchas gracias a todos los que me ayudan con estos pedidos... aunque muy seguidos que son jeje es que estoy en pleno proyecto el cual voy a mensionarlo en un post cuando lo tenga mas adelantado.

Saludos y gracias de nuevo hay esta la +REP para los que opinaron.

#6 Re: (Problema/Pedido) Script Cambio Vocation el Sáb Jun 13, 2015 2:00 am

lordhades92


Aprendiz
Spoiler:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Mira

Acá solo dejas que pasen el tp knights para lvl 50 o mas ...
Código:
-- voc knight to soldier or warrior --

function onStepIn(cid, item, pos)

 if getPlayerLevel(cid) < 50 then
      doPlayerSendTextMessage(cid,22,"Sorry, you are under lvl 50.")
      return 1
   end

if getPlayerVocation(cid) > 4 or getPlayerVocation(cid) < 4 then
      doPlayerSendTextMessage(cid,22,"Sorry, only Knight are allowed.")
      return 1
   end
   if item.actionid == 908 then
   npos = {x=pos.x, y=pos.y-3, z=pos.z}
      queststatus = getPlayerStorageValue(cid,908)
      if queststatus == -1 or queststatus == 0 then
         doPlayerSendTextMessage(cid,22,"ARE YOU PREPARED TO FACE YOUR DESTINY AS A Soldier VOCATION?.")
                        doTeleportThing(cid,npos)
         doSendMagicEffect(npos,12)
         --setPlayerStorageValue(cid,908,1)

      else
         doPlayerSendTextMessage(cid,22,"Sorry, you cant enter again.")
      end
   elseif item.actionid == 909 then
   npos = {x=pos.x, y=pos.y-3, z=pos.z}
      queststatus = getPlayerStorageValue(cid,909)
      if queststatus == -1 or queststatus == 0 then
         doPlayerSendTextMessage(cid,22,"ARE YOU PREPARED TO FACE YOUR DESTINY AS A Warrior VOCATION?.")
                        doTeleportThing(cid,npos)
         doSendMagicEffect(npos,12)
         --setPlayerStorageValue(cid,909,1)

      else
         doPlayerSendTextMessage(cid,22,"Sorry, you cant enter again.")
      end

   else
      return 0
   end
   return 1
end

Y este te cambia la vocacion...

Código:
-- voc knight to soldier or warrior --

function onStepIn(cid, item, pos)
local voc = 13
local voc1 = 14
 if getPlayerLevel(cid) < 50 then
      doPlayerSendTextMessage(cid,22,"Sorry, you are under lvl 50.")
      return 1
   end

if getPlayerVocation(cid) > 4 or getPlayerVocation(cid) < 4 then
      doPlayerSendTextMessage(cid,22,"Sorry, only Knight are allowed.")
      return 1
   end
   if item.actionid == 914 then
   npos = {x=241, y=962, z=8}
      queststatus = getPlayerStorageValue(cid,914)
      if queststatus == -1 or queststatus == 0 then
         doPlayerSetVocation(cid, voc)
         doPlayerSendTextMessage(cid,22,"Now you are a Soldier.")
                        doTeleportThing(cid,npos)
         doSendMagicEffect(npos,12)
         --setPlayerStorageValue(cid,914,1)

      else
         doPlayerSendTextMessage(cid,22,"Sorry, you cant change you vocation.")
      end

   elseif item.actionid == 915 then
   npos = {x=241, y=962, z=8}
      queststatus = getPlayerStorageValue(cid,915)
      if queststatus == -1 or queststatus == 0 then
         doPlayerSetVocation(cid, voc1)
         doPlayerSendTextMessage(cid,22,"Now you are a Warrior.")
                        doTeleportThing(cid,npos)
         doSendMagicEffect(npos,12)
         --setPlayerStorageValue(cid,915,1)

      else
         doPlayerSendTextMessage(cid,22,"Sorry, you cant change you vocation.")
      end

   else
      return 0
   end
   return 1
end

PD: el primer tp tiene un AID y el segundo otra AID para que se haga efectivo cada uno de los scripts.

oye compa eso disculpe mi ignorancia pero eso va en Action o en Movement?

#7 Re: (Problema/Pedido) Script Cambio Vocation el Dom Jun 14, 2015 12:03 am

ArcaniaOnline


Miembro
Hermano van en movements los que empiezan asi mira ...
Código:
function onStepIn(cid, item, pos)
para que los diferencies

El primero se lo añades a un teleport de un pasillo por ej para que solo lo pasen lvls 50 y el segundo al tp que este al final que te saca hacia afuera y mas encima te cambia de profesión

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .