BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

[Pedido Script] broadcast de asesinato

[Pedido Script] broadcast de asesinato

#1 [Pedido Script] broadcast de asesinato el Mar Oct 01, 2013 9:36 pm

power1379


Novato
un broadcast que anuncie cada vez que un player mata a otro por ejemplo

Blacktibia lvl [1000] a matado a Power lvl [1000]

porfavir me ayudan?

#2 Re: [Pedido Script] broadcast de asesinato el Mar Oct 01, 2013 9:41 pm

Itachi


Miembro
ve a tu ot data/creaturescripts/scripts

creas un archivo.lua
y dentro pones lo sig.


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, 25)
         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
en creaturescripts.xml

Código:
 <event type="death" name="DeathBroadcast" event="script" value="nonbredelarchivo.lua"/>
y en login.lua

Código:
    registerCreatureEvent(cid, "DeathBroadcast")

#3 Re: [Pedido Script] broadcast de asesinato el Mar Oct 01, 2013 9:49 pm

power1379


Novato
Funciona de maravilla muchas gracias mi amigo

#4 Re: [Pedido Script] broadcast de asesinato el Miér Oct 02, 2013 7:52 am

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver esa imagen]
TEMA CERRADO
¡Solucionado!



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

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 .