BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

[Resuelto] pedido de monster

[Resuelto] pedido de monster

#1 [Resuelto] pedido de monster el Jue Oct 29, 2015 4:40 pm

alexxander21


Estudiante
buenas a a todos-- espero me puedan ayudar con un moster que de teleport al player que le de el ultimo hit.!!!! solo si se puede hacer algo asi !!!-

#2 Re: [Resuelto] pedido de monster el Jue Oct 29, 2015 11:26 pm

Noraziz


Miembro
mira ahora no ando mi pc y no ando con mucho tiempo pero prueba estos

Código:
function onKill(cid, target, lastHit)

if isPlayer(target) and lastHit == TRUE then
   doPlayerAddItem(cid, 2160, 5)
     elseif isPlayer(target) then
       doPlayerAddItem(cid, 2160, 1)
         end
           return true
             end

Y si es otx
Código:
function onKill(cid, target, damage, flags)

if isPlayer(target) and (flags % 2 == 1) then
   doPlayerAddItem(cid, 2160, 5)
     elseif isPlayer(target) then
       doPlayerAddItem(cid, 2160, 1)
         end
           return true
             end

EDIT: se me olvidaba, tiene que registrarlo en el monster
Ahi le modificas  lo que quieres que suceda al hace el ultimo hit
si no te sirve me avisas, y cuandd llegue a mi casa lo intento hacer

#3 Re: [Resuelto] pedido de monster el Vie Oct 30, 2015 8:24 am

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] Pero...

[Tienes que estar registrado y conectado para ver este vínculo] escribió:un moster que de teleport al player que le de el ultimo hit

Código:
if isPlayer(target)
Eso hará que solamente el script se active al matar jugadores.

Código:
doPlayerAddItem(cid, 2160, 5)
Y eso solo entregará un objeto...



Creaturescripts.xml
Código:
<event type="kill" name="lastHit" event="script" value="TpLastHit.lua"/>

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

TpLastHit.lua
Código:
  local name, destiny = 'BAdger', {x = 1002, y = 1040, z = 7} -- 'Nombre', {Coordenada}

function onKill(cid, target, lastHit)

    if lastHit and (isMonster(target) and string.lower(getCreatureName(target)) == string.lower(name)) then
        if isMonster(cid) and getCreatureMaster(cid) == true then
            cid = getCreatureMaster(cid)
        end

        doTeleportThing(cid, destiny)
        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    end

  return true
end



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]

#4 Re: [Resuelto] pedido de monster el Vie Oct 30, 2015 9:13 pm

Dantarrix


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:[Tienes que estar registrado y conectado para ver este vínculo] Pero...

[Tienes que estar registrado y conectado para ver este vínculo] escribió:un moster que de teleport al player que le de el ultimo hit

Código:
if isPlayer(target)
Eso hará que solamente el script se active al matar jugadores.

Código:
doPlayerAddItem(cid, 2160, 5)
Y eso solo entregará un objeto...



Creaturescripts.xml
Código:
<event type="kill" name="lastHit" event="script" value="TpLastHit.lua"/>

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

TpLastHit.lua
Código:
  local name, destiny = 'BAdger', {x = 1002, y = 1040, z = 7} -- 'Nombre', {Coordenada}

function onKill(cid, target, lastHit)

    if lastHit and (isMonster(target) and string.lower(getCreatureName(target)) == string.lower(name)) then
        if isMonster(cid) and getCreatureMaster(cid) == true then
            cid = getCreatureMaster(cid)
        end

        doTeleportThing(cid, destiny)
        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    end

  return true
end

Cómo has crecido :') Parece que solo era ayer cuando estabas aprendiendo que era el "function onUse(params)" y hoy ya comparas string convirtiendo ambos a lowercase para hacer bien la comparación :') Cómo crecen!

Por cierto, me haces el favor de cambiar el string.lower por param:lower() ? Quiero ver si sirve o es solo esquizofrenia mía...

#5 Re: [Resuelto] pedido de monster el Sáb Oct 31, 2015 4:24 am

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Cómo has crecido :') Parece que solo era ayer cuando estabas aprendiendo que era el "function onUse(params)" y hoy ya comparas string convirtiendo ambos a lowercase para hacer bien la comparación :') Cómo crecen!

Por cierto, me haces el favor de cambiar el string.lower por param:lower() ? Quiero ver si sirve o es solo esquizofrenia mía...

Si no hay parámetro "param" en el paréntesis de onUse... ¿qué valor tendrá?

[31/10/2015 9:41:12] [Error - CreatureScript Interface]
[31/10/2015 9:41:12] Data/creaturescripts/scripts/TpLastHit.lua:onKill
[31/10/2015 9:41:12] Description:
[31/10/2015 9:41:12] Data/creaturescripts/scripts/TpLastHit.lua:5: attempt to index global 'param' (a nil value)
[31/10/2015 9:41:12] stack traceback:
[31/10/2015 9:41:12] Data/creaturescripts/scripts/TpLastHit.lua:5: in function

Tal vez te suene/recuerde a aglún script que viste y de ahí la paranoya, pero de Talkactions.



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: [Resuelto] pedido de monster el Sáb Oct 31, 2015 9:30 am

alexxander21


Estudiante
[Tienes que estar registrado y conectado para ver este vínculo] escribió:[Tienes que estar registrado y conectado para ver este vínculo] Pero...

[Tienes que estar registrado y conectado para ver este vínculo] escribió:un moster que de teleport al player que le de el ultimo hit

Código:
if isPlayer(target)
Eso hará que solamente el script se active al matar jugadores.

Código:
doPlayerAddItem(cid, 2160, 5)
Y eso solo entregará un objeto...



Creaturescripts.xml
Código:
<event type="kill" name="lastHit" event="script" value="TpLastHit.lua"/>

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

TpLastHit.lua
Código:
  local name, destiny = 'BAdger', {x = 1002, y = 1040, z = 7} -- 'Nombre', {Coordenada}

function onKill(cid, target, lastHit)

    if lastHit and (isMonster(target) and string.lower(getCreatureName(target)) == string.lower(name)) then
        if isMonster(cid) and getCreatureMaster(cid) == true then
            cid = getCreatureMaster(cid)
        end

        doTeleportThing(cid, destiny)
        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    end

  return true
end



]hola oye muchas gracias a lodos , agregue el scrip tal cual como indicaste! creaturescripts/scrip/ tambien login.lua. asi puse en el moster

Código:
<?xml version="1.0" encoding="UTF-8"?>
<monster name="Purple Turtle" nameDescription="a Purple Turtle" race="venom" experience="900" speed="220" manacost="0">
<health now="1300" max="1300"/>
<look type="361" corpse="8593"/>
<targetchange interval="5000" chance="12"/>
<strategy attack="100" defense="0"/>
<flags>
<flag summonable="1"/>
<flag attackable="1"/>
<flag hostile="1"/>
<flag illusionable="1"/>
<flag convinceable="0"/>
<flag pushable="0"/>
<flag canpushitems="1"/>
<flag canpushcreatures="0"/>
<flag targetdistance="1"/>
<flag staticattack="90"/>
<flag runonhealth="0"/>
</flags>
<script>
   <event name="lastHit"/>
    </script>
<attacks>
<attack name="melee" interval="2000" skill="30" attack="36"/>
<attack name="poison" interval="1000" chance="12" range="1" radius="1" target="1" min="-5" max="-15">
<attribute key="areaEffect" value="poison"/>
</attack>
</attacks>
<defenses armor="16" defense="19"/>
<elements>
<element physicalPercent="1"/>
<element holyPercent="1"/>
<element deathPercent="10"/>
<element firePercent="-1"/>
<element energyPercent="-1"/>
<element icePercent="15"/>
<element earthPercent="1"/>
</elements>
<immunities>
<immunity invisible="1"/>
</immunities>
<voices interval="5000" chance="10">
<voice sentence="Zrp zrp!"/>
</voices>
<loot>
<item id="2148" countmax="25" chance="36500"/><!-- gold coin -->
<item id="11365" chance="5000"/><!-- terramite legs -->
<item id="11364" chance="5000"/><!-- terramite eggs -->
<item id="11363" chance="1000"/><!-- terramite shell -->
</loot>
</monster>


pero por alguna razon noda teleport no se si tenga que agregar algo mas al moster ???

#7 Re: [Resuelto] pedido de monster el Sáb Oct 31, 2015 10:43 am

Belerofonte


Administrador
Pusiste todo exactamente igual, pero ¿incluso esto?
<event type="kill" name="lastHit" event="script" value="TpLastHit.lua"/>
 registerCreatureEvent(cid, "lastHit")
Pues, ha de ser exactamente la misma palabra.

Revisa que la coordenada que pusiste sea la correcta y lleve a algún lugar con suelo, o el nombre del 'monster' esté bien escrito(que en caso contrario, te aparecería algún error). ¿Algún error en consola? ¿Qué nombre/versión de consola posees?

Nop, al monster no has de añadirle nada. Por lo que:
Código:
<script>
   <event name="lastHit"/>
    </script>
Lo puedes borrar (Aunque probé a ponérselo también, para ver si era eso lo que impedía el correcto funcionamiento pero nop, a mí me sigue funcionando bien aunque lo tenga registrado en el monstruo)



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: [Resuelto] pedido de monster el Sáb Oct 31, 2015 11:04 am

Dantarrix


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Cómo has crecido :') Parece que solo era ayer cuando estabas aprendiendo que era el "function onUse(params)" y hoy ya comparas string convirtiendo ambos a lowercase para hacer bien la comparación :') Cómo crecen!

Por cierto, me haces el favor de cambiar el string.lower por param:lower() ? Quiero ver si sirve o es solo esquizofrenia mía...

Si no hay parámetro "param" en el paréntesis de onUse... ¿qué valor tendrá?

[31/10/2015 9:41:12] [Error - CreatureScript Interface]
[31/10/2015 9:41:12] Data/creaturescripts/scripts/TpLastHit.lua:onKill
[31/10/2015 9:41:12] Description:
[31/10/2015 9:41:12] Data/creaturescripts/scripts/TpLastHit.lua:5: attempt to index global 'param' (a nil value)
[31/10/2015 9:41:12] stack traceback:
[31/10/2015 9:41:12] Data/creaturescripts/scripts/TpLastHit.lua:5: in function

Tal vez te suene/recuerde a aglún script que viste y de ahí la paranoya, pero de Talkactions.

Primero "params" es un término genérico...

Y sobre el reemplazo, la idea era:
1. Esto:
Código:

string.lower(getCreatureName(target))
Por esto:
Código:

getCreatureName(target):lower()

Si no sirve, por esto:
Código:

getCreatureName(target).lower
2. Esto:
Código:

string.lower(name)
Por esto:
Código:

name:lower()

O por esto si no funciona:
Código:

name.lower

#9 Re: [Resuelto] pedido de monster el Sáb Oct 31, 2015 11:25 am

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] Sí, esos funcionan:
Código:
getCreatureName(target):lower() == name:lower()

Como dices, lloriqueos :
Lo cierto es que ya conocía dichas formas de hacerlo, solo que no recordaba cómo ponerlo. Y al intentarlo un par de veces la primera vez, antes de publicar nada en este post... decidí ponerlo de la otra forma. Pues al fin y al cabo: hacen la misma tarea.

Pregunta. ¿Para qué ponerlo de esa forma params:lower()? ¿solo por eficiencia, o hay algo más?



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]

#10 Re: [Resuelto] pedido de monster el Sáb Oct 31, 2015 6:38 pm

Noraziz


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] yo solo le di la idea, como no tenia tiempo.

Por otra parte en OTX no sirve lasthit, yo tuve que ocupar
Código:
function onKill(cid, target, damage, flags)

alexxander21 a ver si lo cambias y te sirve
saludos.-

Edit: Hay lo hice uno para OTX, lo acabo de probar y si funciona.
Spoiler:
monstertp.lua
Código:
local config = {
    ["Orc"] = {tp = {x = 1004, y = 1000, z = 7}},
    ["Deer"] = {tp = {x = 1003, y = 1000, z = 7}},
    ["Fleshcrawler"] = {tp = {x = 1002, y = 1000, z = 7}},
}
function onKill(cid, target, damage, flags)
    local monsterName = config[getCreatureName(target)]
    if isMonster(target) and monsterName and (flags % 2 == 1) then
        doTeleportThing(cid, monsterName.tp)
        doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
    end
    return true
end

en creaturescript.xml
Código:
<event type="kill" name="MonsterTp" event="script" value="monstertp.lua"/>

en el archivo login.lua agregas
Código:
registerCreatureEvent(cid, "MonsterTp")

#11 Re: [Resuelto] pedido de monster el Sáb Oct 31, 2015 9:24 pm

Dantarrix


Miembro
[Tienes que estar registrado y conectado para ver este vínculo] escribió:[Tienes que estar registrado y conectado para ver este vínculo] Sí, esos funcionan:
Código:
getCreatureName(target):lower() == name:lower()

Como dices, lloriqueos :roll:
Lo cierto es que ya conocía dichas formas de hacerlo, solo que no recordaba cómo ponerlo. Y al intentarlo un par de veces la primera vez, antes de publicar nada en este post... decidí ponerlo de la otra forma. Pues al fin y al cabo: hacen la misma tarea.

Pregunta. ¿Para qué ponerlo de esa forma params:lower()? ¿solo por eficiencia, o hay algo más?

Solo por temas visuales...

Concatenar operaciones de texto con los dos puntos se ve mejor que hacerlo con paréntesis.... jajajaja

#12 Re: [Resuelto] pedido de monster el Sáb Oct 31, 2015 9:50 pm

alexxander21


Estudiante
Belerofonte >>>> oye si revise todo , esta igual incluso al matar el moster no da error en la consola ni nada!! el mostro solo muere y ya!! como si nada!! en esta imagen puedes ver la version del server 3.0 !!
[Tienes que estar registrado y conectado para ver este vínculo]

#13 Re: [Resuelto] pedido de monster el Sáb Oct 31, 2015 9:54 pm

alexxander21


Estudiante
Noraziz >>>> mano probe el tuyo y verro mate el moster y dioo este error bastante feooo >>>>>> [Tienes que estar registrado y conectado para ver esa imagen]

#14 Re: [Resuelto] pedido de monster el Sáb Oct 31, 2015 10:01 pm

alexxander21


Estudiante
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Pusiste todo exactamente igual, pero ¿incluso esto?
<event type="kill" name="lastHit" event="script" value="TpLastHit.lua"/>
 registerCreatureEvent(cid, "lastHit")
Pues, ha de ser exactamente la misma palabra.

Revisa que la coordenada que pusiste sea la correcta y lleve a algún lugar con suelo, o el nombre del 'monster' esté bien escrito(que en caso contrario, te aparecería algún error). ¿Algún error en consola? ¿Qué nombre/versión de consola posees?

Nop, al monster no has de añadirle nada. Por lo que:
Código:
<script>
   <event name="lastHit"/>
    </script>
Lo puedes borrar (Aunque probé a ponérselo también, para ver si era eso lo que impedía el correcto funcionamiento pero nop, a mí me sigue funcionando bien aunque lo tenga registrado en el monstruo)



oHH We si tenisa razon lo siento revise bien y si habia puesto algo mal (lastHit) esta separado!!! ya me sirvio tu scrip!!! gracias gracias!!! una pregunta mas--->> como es para un evento no se le puede agregar algun mensaje que salga en la pantalla cuando le de el teleport al player! ???

#15 Re: [Resuelto] pedido de monster el Dom Nov 01, 2015 6:05 am

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] El usuario nunca informó que fuera para OTX, aunque casualmente todos los scripts que hago los testeo en ese



[Tienes que estar registrado y conectado para ver este vínculo] escribió:Solo por temas visuales...

Concatenar operaciones de texto con los dos puntos se ve mejor que hacerlo con paréntesis.... jajajaja
Ok. Pues, lo tendré más en cuenta para la próxima. Gracias.



[Tienes que estar registrado y conectado para ver este vínculo] escribió:oHH  We si tenisa razon lo siento revise bien y si habia puesto algo mal (lastHit) esta separado!!!  ya me sirvio tu scrip!!! gracias gracias!!!
Me alegro
Ya sabes, si quieres ponerle para que se ejecute con más monstruos que lleven a más lugares: lo usas con la tabla de Noraziz.

[Tienes que estar registrado y conectado para ver este vínculo] escribió:una pregunta mas--->> como es para un evento no se le puede agregar algun mensaje que salga en la pantalla cuando le de el teleport al player! ???
doBroadcastMessage('message', type)

type:

Dependiendo del color y lugar donde aparecerá en pantalla puedes ponerle uno de esos:

MESSAGE_STATUS_CONSOLE_RED = 18 -- Aparece solo en el LOG en Rojo.
MESSAGE_EVENT_ORANGE = 19 -- Aparece solo en el DEFAULT en Naranja.
MESSAGE_STATUS_CONSOLE_ORANGE = 20 -- Aparece solo en el DEFAULT en Naranja.
MESSAGE_STATUS_WARNING = 21 -- Aparece en la PARTE CENTRAL de la PANTALLA y en el SERVER LOG en Rojo.
MESSAGE_EVENT_ADVANCE = 22 -- Aparece en la PARTE CENTRAL de la PANTALLA y en el SERVER LOG en Blanco.
MESSAGE_EVENT_DEFAULT = 23 -- Aparece en la PARTE INFERIOR de la PANTALLA y en el SERVER LOG en Blanco.
MESSAGE_STATUS_DEFAULT = 24 -- Aparece en la PARTE INFERIOR de la PANTALLA y en el SERVER LOG en Blanco.
MESSAGE_INFO_DESCR = 25 -- Aparece en la PARTE CENTRAL de la PANTALLA y en el SERVER LOG en Verde.
MESSAGE_STATUS_SMALL = 26 -- Aparece solo en la PARTE INFERIOR de la PANTALLA en Blanco.
MESSAGE_STATUS_CONSOLE_BLUE = 27 -- Aparece solo en el DEFAULT en Azul.

Ejemplo: doBroadcastMessage('ola ke ase', MESSAGE_EVENT_ADVANCE)



[Tienes que estar registrado y conectado para ver esa imagen]
Y a la próxima, si no ha pasado un plazo de 24 horas o no te ha contestado nadie más por este mismo medio: intenta usar la opción [Tienes que estar registrado y conectado para ver esa imagen] de tu anterior comentario para añadir lo que quieras. Gracias.

Cierro... ¿entonces?, ¿o hay alguna duda más respecto al script o broadcast?.



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: [Resuelto] pedido de monster el Dom Nov 01, 2015 11:38 am

alexxander21


Estudiante
esta exelente --- No ya no tengo mas duda gracias!!!, si cierra por favor!! no sabia lo de esa opcion la tendre encuenta!!! gracias

#17 Re: [Resuelto] pedido de monster el Dom Nov 01, 2015 3:52 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:esta exelente ---  No ya no tengo mas duda gracias!!!, si cierra por favor!! no sabia lo de esa opcion la tendre encuenta!!! gracias
Corrijo una cagada mía Forever Happy

Parece que no leí bien lo del mensaje. Esto:
doBroadcastMessage('message', type)
Es para enviar un mensaje a todos los jugadores del servidor.

Y esto:
doPlayerSendTextMessage(cid, type, 'mensaje')
Es para enviárselo solamente al jugador que ejecute el script. Lamento las molestias. Cierro.



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]

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 :: 1 Motor de búsqueda

Usuarios navegando en este foro: Ninguno
Motores de búsqueda : bing

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 .