BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Creaturescript pedido

Creaturescript pedido

#1 Creaturescript pedido el Vie Abr 11, 2014 8:02 am

Amy Azzkaban


Miembro
Hola! Necesito si me pueden ayudar con un creaturescript para un Boss:

- Que al atacarlo el Boss haga teleport de forma random a 5 cordenadas distintas.
- Las cordenadas sean configurables.
- Que al ser transportado el Boss, no aparezca en las 5 cordenadas, sinó solo en una y de forma al azar.


Me ayudan?
Gracias.

#2 Re: Creaturescript pedido el Vie Abr 11, 2014 2:13 pm

Sirakx


Moderador
como que hacer transportado el boss? ahí no entendi, el portal que creara el boss entrara a ese portal?



[Tienes que estar registrado y conectado para ver esa imagen]
http://celesta-global.net/

#3 Re: Creaturescript pedido el Vie Abr 11, 2014 2:31 pm

Amy Azzkaban


Miembro
God Rakzzo escribió:como que hacer transportado el boss? ahí no entendi, el portal que creara el boss entrara a ese portal?

No, no. El boss se transportará a cualquiera de las cinco cordenadas. No se creará ningun teleport solamente el escapará al ser transportado y será dificil de matarlo

#4 Re: Creaturescript pedido el Vie Abr 11, 2014 2:39 pm

Sirakx


Moderador
aa ya entendí pero eso que se transporte el boss a otro sitio creo que esta cañon, tratare de ver si puedo. Por que la verdad no creo que funcione la funcion doTeleporThing con los monsters



[Tienes que estar registrado y conectado para ver esa imagen]
http://celesta-global.net/

#5 Re: Creaturescript pedido el Vie Abr 11, 2014 4:14 pm

Belerofonte


Administrador
@Up, sí se puede:

Código:
<event type="combat" name="monstP" event="script" value="tpmonst.lua"/>
Código:
function onCombat(cid, target)
local c = {
Nombre = "Training Monk", -- Nombre del monstruo.
Lados = { -- Coordenadas donde será telentransportado el monstruo anterior.
[1]={x=947, y=1029,z=8},
[2]={x=947, y=1027,z=8},
[3]={x=949, y=1027,z=8},
[4]={x=951, y=1027,z=8},
[5]={x=951, y=1029,z=8}
},
}
local p = c.Lados[math.random(1,5)]
 if isMonster(target) and getCreatureName(target) == c.Nombre then
  doSendMagicEffect(getThingPos(target), CONST_ME_POFF)
  doTeleportThing(target, p)
  doSendMagicEffect(getThingPos(target), CONST_ME_TELEPORT)
 end
  return true
end

(Login.lua)
Código:
registerCreatureEvent(cid, "monstP")

Pero cuando el jugador atacante se haya justamente al lado del monstruo, se crashea el servidor D;
Y no sé por qué, a ver si algún scripter viene y hace su "magia" para que no ocurra...



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#6 Re: Creaturescript pedido el Vie Abr 11, 2014 5:02 pm

Sirakx


Moderador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:@Up, sí se puede:

Código:
<event type="combat" name="monstP" event="script" value="tpmonst.lua"/>
Código:
function onCombat(cid, target)
local c = {
Nombre = "Training Monk", -- Nombre del monstruo.
Lados = { -- Coordenadas donde será telentransportado el monstruo anterior.
[1]={x=947, y=1029,z=8},
[2]={x=947, y=1027,z=8},
[3]={x=949, y=1027,z=8},
[4]={x=951, y=1027,z=8},
[5]={x=951, y=1029,z=8}
},
}
local p = c.Lados[math.random(1,5)]
 if isMonster(target) and getCreatureName(target) == c.Nombre then
  doSendMagicEffect(getThingPos(target), CONST_ME_POFF)
  doTeleportThing(target, p)
  doSendMagicEffect(getThingPos(target), CONST_ME_TELEPORT)
 end
  return true
end

(Login.lua)
Código:
registerCreatureEvent(cid, "monstP")

Pero cuando el jugador atacante se haya justamente al lado del monstruo, se crashea el servidor D;
Y no sé por qué, a ver si algún scripter viene y hace su "magia" para que no ocurra...

Si mire tu script y esta bonito, pero creo que cada vez que le den un hit al monsters, se transportara. Lo estaba tratando de hacer con la function onAttack crees que también funcionaria?

http://celesta-global.net/

#7 Re: Creaturescript pedido el Vie Abr 11, 2014 5:10 pm

Belerofonte


Administrador
God Rakzzo escribió:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:@Up, sí se puede:

Código:
<event type="combat" name="monstP" event="script" value="tpmonst.lua"/>
Código:
function onCombat(cid, target)
local c = {
Nombre = "Training Monk", -- Nombre del monstruo.
Lados = { -- Coordenadas donde será telentransportado el monstruo anterior.
[1]={x=947, y=1029,z=8},
[2]={x=947, y=1027,z=8},
[3]={x=949, y=1027,z=8},
[4]={x=951, y=1027,z=8},
[5]={x=951, y=1029,z=8}
},
}
local p = c.Lados[math.random(1,5)]
 if isMonster(target) and getCreatureName(target) == c.Nombre then
  doSendMagicEffect(getThingPos(target), CONST_ME_POFF)
  doTeleportThing(target, p)
  doSendMagicEffect(getThingPos(target), CONST_ME_TELEPORT)
 end
  return true
end

(Login.lua)
Código:
registerCreatureEvent(cid, "monstP")

Pero cuando el jugador atacante se haya justamente al lado del monstruo, se crashea el servidor D;
Y no sé por qué, a ver si algún scripter viene y hace su "magia" para que no ocurra...

Si mire tu script y esta bonito, pero creo que cada vez que le den un hit al monsters, se transportara. Lo estaba tratando de hacer con la function onAttack crees que también funcionaria?

Lo cierto es que con onAttack, el monstruo se teletransportará infinita & rapidamente hacia todos los lados dando la sensasión de como si simplemente el monster corriese muy rápido hasta que muera o paren de ponerlo el "target"... y con el onCombat, correcto, solamente se teletransporta una vez con cada Hit que reciba... ¿y no era eso lo que pidió? D:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Hola! Necesito si me pueden ayudar con un creaturescript para un Boss:

- Que al atacarlo el Boss haga teleport de forma random a 5 cordenadas distintas.
- Las cordenadas sean configurables.
- Que al ser transportado el Boss, no aparezca en las 5 cordenadas, sinó solo en una y de forma al azar.



Me ayudan?
Gracias.


Aunque ahora al haberlo probado así como dices, no se crashea por lo que se ha acortado el número de posibles causas del por qué ocurre



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#8 Re: Creaturescript pedido el Sáb Abr 12, 2014 8:00 am

Amy Azzkaban


Miembro
Hola! Lo voy a probar enseguida y les aviso
Gracias.

#9 Re: Creaturescript pedido el Sáb Abr 12, 2014 8:53 am

Amy Azzkaban


Miembro
Primero que nada, perdón por el doble post. No me funciona, uso OTX 2.8

#10 Re: Creaturescript pedido el Sáb Abr 12, 2014 12:02 pm

Sirakx


Moderador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Primero que nada, perdón por el doble post. No me funciona, uso OTX 2.8

Cambiate a otx 2.90 al parecer ese que usas tiene muchos errores.



[Tienes que estar registrado y conectado para ver esa imagen]
http://celesta-global.net/

#11 Re: Creaturescript pedido el Sáb Abr 12, 2014 12:42 pm

Strack


Scripter
Digo lo mismo que Rakzzo, te recomiendo cambiar de ot

#12 Re: Creaturescript pedido el Sáb Abr 12, 2014 3:30 pm

Amy Azzkaban


Miembro
Esta noche migraré mis archivos a aquella versión de OTX
Les aviso que tal me va en ella.

#13 Re: Creaturescript pedido el Sáb Abr 12, 2014 6:09 pm

Strack


Scripter
Ok. cuando lo hagas pruebas los scripts y nos dices si funcionan

#14 Re: Creaturescript pedido el Sáb Mayo 31, 2014 8:56 am

Belerofonte


Administrador
Creaturescripts.xml:
Código:
<event type="statschange" name="monstP" event="script" value="tpmonst.lua"/>

Creaturescripts/Scripts/... Script.lua:
Código:
local Config = {
{x=947, y=1029,z=8},
{x=947, y=1027,z=8},
{x=949, y=1027,z=8},
{x=951, y=1027,z=8},
{x=951, y=1029,z=8},
 }
function onStatsChange(cid, attacker, type, combat, value)
 if (not isCreature(attacker)) then
  return false
 end
 
 local v = Config[math.random(#Config)]
 if isMonster(cid) and isPlayer(attacker) then
  local posi = getThingPos(cid)
 doSendDistanceShoot(posi, v, CONST_ANI_EXPLOSION) -- Efecto Mágico a distancia. (Desde la posición anterior hasta la nueva posición)
 doSendMagicEffect(posi, CONST_ME_POFF) -- Efecto mágico normal. (En la posición anterior)
 doTeleportThing(cid, v)
  return false
 end
  return true
end

monster/... Documento.xml del monstruo:
Código:
<script>
<event name="monstP"/>
</script>

Ejemplo:
Código:
<?xml version="1.0" encoding="UTF-8"?>
<monster name="Training Monk" nameDescription="a training monk" race="blood" experience="0" speed="0" manacost="0">
 <health now="99000" max="99000"/>
 <look type="57" corpse="3128"/>
 <targetchange interval="60000" chance="0"/>
 <strategy attack="100" defense="0"/>
 <flags>
 <flag summonable="0"/>
 <flag attackable="1"/>
 <flag hostile="1"/>
 <flag illusionable="0"/>
 <flag convinceable="0"/>
 <flag pushable="0"/>
 <flag canpushitems="1"/>
 <flag staticattack="50"/>
 <flag lightlevel="0"/>
 <flag lightcolor="0"/>
 <flag targetdistance="1"/>
 <flag runonhealth="0"/>
 </flags>
 <attacks>
 <attack name="melee" interval="5000" min="0" max="-1"/>
 </attacks>
 <defenses armor="0" defense="0">
 <defense name="healing" interval="10000" chance="100" min="24000" max="24000"/>
 </defenses>
 <immunities>
 <immunity physical="0"/>
 <immunity energy="0"/>
 <immunity fire="0"/>
 <immunity poison="0"/>
 <immunity lifedrain="0"/>
 <immunity paralyze="0"/>
 <immunity outfit="0"/>
 <immunity drunk="0"/>
 <immunity invisible="1"/>
 </immunities>
 <loot>
 <item id="2148" countmax="20" chance="100000"/><!-- gold coin -->
 <item id="1949" chance="10000"/><!-- scroll -->
 <item id="2467" chance="10000"/><!-- leather armor -->
 <item id="2642" chance="6666"/><!-- sandals -->
 <item id="1987" chance="100000"><!-- bag -->
 <inside>
 <item id="2044" chance="6666"/><!-- lamp -->
 <item id="2689" countmax="3" chance="20000"/><!-- bread -->
 <item id="2401" chance="3333"/><!-- staff -->
 <item id="2166" chance="1428"/><!-- power ring -->
 </inside>
 </item>
 </loot>
<script>
<event name="monstP"/>
</script>
</monster>

(y en el Login.lua ya no es necesario registrar nada)


Así, ya funciona bien, al ser atacado el cual es teletransportado, lo malo es que solamente servirá para toda una raza de monster en concreto. Es decir, que si tienes a otro monster en otra parte del mapa, al ser atacado el cual se teletransportará a las coordenadas que pusíste... a no ser que dijeras cuáles serán las coordenadas para poder asignarles unas en concreto dependiendo de la posición del jugador, así el monstruo se teletransportará a cualquiera de los lados que quieras de alrededor del jugador que lo ataque, estando en cualquier lugar del mapa.

¡PERO!, lo malo es que el jugador no le quita vida al monstruo por:
local Config = {
{x=947, y=1029,z=8},
{x=947, y=1027,z=8},
{x=949, y=1027,z=8},
{x=951, y=1027,z=8},
{x=951, y=1029,z=8},
}
function onStatsChange(cid, attacker, type, combat, value)
if (not isCreature(attacker)) then
 return false
end

 local v = Config[math.random(#Config)]
if isMonster(cid) and isPlayer(attacker) and getCreatureName(cid) == "Training Monk" then
 local posi = getThingPos(cid)
doSendDistanceShoot(posi, v, CONST_ANI_EXPLOSION) -- Efecto Mágico a distancia. (Desde la posición anterior hasta la nueva posición)
doSendMagicEffect(posi, CONST_ME_POFF) -- Efecto mágico normal. (En la posición anterior)
doTeleportThing(cid, v)
 return false
end
 return true
end

Y si le quito dicha línea, sí que lo hará pero también tras X segundos el servidor se crasheará ;D
Tal vez algún scripter que sepa el por qué lo hace y si hay alguna forma de solventarlo... ya que estoy con un script parecido, por lo que también necesitaría la solución



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#15 Re: Creaturescript pedido el Mar Jun 03, 2014 1:05 am

Belerofonte


Administrador
free bumpz!



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

#16 Re: Creaturescript pedido Hoy a las 11:24 am

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 .