BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Ayuda con lasthit

Ayuda con lasthit

#1 Ayuda con lasthit el Miér Dic 17, 2014 10:18 pm

carmona


Miembro
Hola, hoy tengo un problema que no puedo solucionar y espero que me ayuden, es el siguiente:

Se supone que en un creaturevent (onKill) puedes usar varios parametros y uno de ellos es el "lasthit", segun lei en un post que comento CyberM, el last hit es un valor booleano.... pero porque cuando lo pongo de la siguiente manera no me funciona ?.


if isPlayer(cid) and lastHit == FALSE then



(Mi idea es ejecutar unas funciones secundarias a los que no dieron lasthit)

#2 Re: Ayuda con lasthit el Miér Dic 17, 2014 10:30 pm

Kriss


Miembro
hola carmona estubimos hablando en mi ot y bueno querias hacer un sistema de assist cuando maten alguien y te dije que ya estaba pre echo bueno aqui te dejo:
Spoiler:
Código:
local config = {
   affected = 10, -- how many players (deathAssits) from table deathList should this script be executed for?

   killStorageValue = 3943,
   deathStorageValue = 3944,

   -- commands for the texts (those inside of ||, example: |KILLS| to show skills): KILLS, KILLERNAME, TARGETNAME
   rewardItem = {
      use = true,
      itemid = 2152,
      minLevel = false, -- false if you don't want any level req
      minLevelDiff = false, -- false if you don't want any level diff req (negative numbers allowed).
   },

   killMessage = {
      use = true,
      text = "You owned |TARGETNAME|! You have now |KILLERKILLS| kills!",
      messageClass = MESSAGE_STATUS_CONSOLE_BLUE
   },

   broadcastMessage = {
      use = true,
      minLevel = false, -- false if you don't want any level req
      minLevelDiff = false, -- false if you don't want any level diff req (negative numbers allowed).
      text = "|KILLERNAME| [|KILLERLEVEL|] just killed |TARGETNAME| [|TARGETLEVEL|]!",
      messageClass = MESSAGE_STATUS_WARNING
   },

   killerAnimation = {
      use = true,
      text = "Frag!", -- Only 9 letters! No "commands" here.
      color = 144
   },

   targetAnimation = {
      use = true,
      text = "Owned!", -- Only 9 letters! No "commands" here.
      color = 180
   }
}

function onDeath(cid, corpse, deathList)
   for i = 1, math.min(config.affected, getConfigInfo('deathAssistCount')) do
      local killer = deathList[i]
      if(isPlayer(killer) == TRUE) then
         local targetKills = math.max(0, getPlayerStorageValue(cid, config.killStorageValue)) + 1
         local targetDeaths = math.max(0, getPlayerStorageValue(cid, config.deathStorageValue)) + 1
      
         local killerKills = math.max(0, getPlayerStorageValue(killer, config.killStorageValue)) + 1
         local killerDeaths = math.max(0, getPlayerStorageValue(killer, config.deathStorageValue)) + 1
      
         setPlayerStorageValue(killer, config.killStorageValue, targetKills)
         setPlayerStorageValue(cid, config.deathStorageValue, targetDeaths)

         local killerLevel = getPlayerLevel(killer)
         local targetLevel = getPlayerLevel(cid)
         local levelDiff = targetLevel - killerLevel

         local values = {
            ["KILLERKILLS"]        = killerKills,
            ["KILLERDEATHS"]        = killerDeaths,
            ["KILLERNAME"]          = getCreatureName(killer),
            ["KILLERLEVEL"]        = killerLevel,
         
            ["TARGETKILLS"]        = targetKills,
            ["TARGETDEATHS"]        = targetDeaths,
            ["TARGETNAME"]          = getCreatureName(cid),
            ["TARGETLEVEL"]        = targetLevel
         }

         function formateString(str)
            return(str:gsub("|([A-Z]+)|", (function(a) return values[a] end)))
         end
      
         if(config.rewardItem.use and (not config.rewardItem.minLevel or targetLevel >= config.rewardItem.minLevel) and (not config.rewardItem.minLevelDiff or levelDiff >= config.rewardItem.minLevelDiff)) then
            local uid = doPlayerAddItem(killer, config.rewardItem.itemid, 5)
         end
         if(config.killMessage.use) then
            doPlayerSendTextMessage(killer, config.killMessage.messageClass, formateString(config.killMessage.text))
         end
         if(config.broadcastMessage.use and (not config.broadcastMessage.minLevel or getPlayerLevel(cid) >= config.broadcastMessage.minLevel) and (not config.broadcastMessage.minLevelDiff or levelDiff >= config.broadcastMessage.minLevelDiff)) then
            broadcastMessage(formateString(config.broadcastMessage.text), config.broadcastMessage.messageClass)
         end
         if(config.killerAnimation.use) then
            doSendAnimatedText(getCreaturePosition(killer), config.killerAnimation.text, config.killerAnimation.color)
         end
         if(config.targetAnimation.use) then
            doSendAnimatedText(getCreaturePosition(cid), config.targetAnimation.text, config.targetAnimation.color)
         end
      end
   end

   return true
end
como veras al inicio sale:
affected = 10, -- how many players (deathAssits) from table deathList should this script be executed for?

y salen en forma de lista todos los que atacan ejemplo:
Broadcasted message: "Carmona [131] just killed Test [131]!".
Broadcasted message: "kriss [130] just killed Test [131]!".
asi salen en forma de lista por lo general el primero se lleva la frag lo que ocupas hacer en que salga asi el brodcast:
Carmona [131] just killed Test [131] assisted by: kriss [130]

ps. cuando lo tengas me lo pasas porfavor

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 .