What's new

Skrypty & Kody Rush Event 8.6 MOD VERSION

Status
Not open for further replies.

Szpaku17

Advanced User
Joined
Aug 14, 2008
Messages
313
Reaction score
5
Zak?adam drugi temat z drugim pytaniem, chyba tak mo?na.. :D
Mam problem z Rush Eventem, kt?ry rozdaje nagrody przegranej dru?ynie a w?a?ciwie jednej osobie z przegranej dru?yny, wie kto? jak temu zaradzi?? za pomoc by?bym bardzo wdzi?czny a wynagrodze sie repucikiem za ka?d? pomoc! :)
Mam tfs 0.4 3777rev.

Kod: MOD Version
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Rush Event" version="1.0" author="ChaitoSoft.com" contact="suporte@chaitosoft.com" enabled="yes">
  <description>
        TUTORIAL DE COMO CONFIGURAR O EVENTO ACOMPANHE POR AQUI:
      q - mensagem que vai ser exibida quando o evento come?ar
      d_1 - posi??o do tempo vermelho ao come?ar evento
      d_2 - posi??o do tempo azul ao come?ar evento
      x - mensagem que vai ser exibida quando o evento n?o come?ar
      w - posi??o da sala de espera, onde os players v?o ficar antes de come?ar
      lvl - level minimo para participar do evento
      v - a quantidade de frags que ser? necess?ria para o time ganhar
      mn - quantidade minima de players para come?ar o evento
      m - maximo de players dentro do evento
      o - mensagem exibida quando o time vermelho ganhar
      y - mensagem exibida quando o time azul ganhar
      i_1 - id do premio (agora ? crystal coin = 2160)
      i_2 - quantidade do premio (agora esta 10 crystal coins)
      t - tempo para come?ar o evento (agora esta is 5 minutos)
      r - tempo em que os resultados da batalha ser?o mostrados aos players (agora esta 3 minutos)
 
   Adicione isto em 050-function.lua:
   -------------------------------------------------------------------------------------------------
   function doPlayerRemoveLethalConditions(cid)
      local tmp = {1, 2, 4, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 32768, 65536}
      for i = 1, #tmp do
         if(hasCondition(cid, tmp[i])) then doRemoveCondition(cid, tmp[i]) end
      end
      return true
   end
   -------------------------------------------------------------------------------------------------
   Adicione isto em login.lua:
   -------------------------------------------------------------------------------------------------
   registerCreatureEvent(cid, "RushCombat")
   registerCreatureEvent(cid, "RushAttack")
   registerCreatureEvent(cid, "RushDead")
   registerCreatureEvent(cid, "RushOutfit")
   -------------------------------------------------------------------------------------------------
   Agora daqui pra baixo voc? vai configurar de acordo com o tutorial acima, o resto se n?o tiver
   conhecimento n?o mecha em nada pois poder? bugar o evento e n?o daremos suporte:
  </description>
   <config name="re"><![CDATA[
       t = {
         a = 32145,
         g = 32146,
         l = 32147,
         u = 32148,
         h = 32149,
         wv = 32150,
         c = 0,
         q = "Rush Event zostal rozpoczety, milej zabawy! =)",
         f = 5447,
         f_1 = 5448,
         f_2 = 5449,
         d_1 = {x = 16841, y = 16411, z = 7}, -- red temple
         d_2 = {x = 16898, y = 16379, z = 7}, -- blue temple
         x = "Event anulowany, poniewaz zbyt malo chetnych os?b do wziecia udzialu.",
         w = {x = 16871, y = 16457, z = 7},
         lvl = 100,
         v = 25,
         mn = 5,
         m = 40,
         o = "Event zakonczony, Team CZERWONYCH wygral walke!",
         y = "Event zakonczony, Team NIEBIESKICH wygral walke!",
         i_1 = 0,
         i_2 = 0,
         t = 3,
         r = 5
      }
   ]]></config>
<globalevent name="Recognition" interval="150000" event="script"><![CDATA[
   domodlib('re')
   function onThink(interval, lastExecution, thinkInterval)
      if(getGlobalStorageValue(t.a) == 1) then
         for _, pid in ipairs(getPlayersOnline()) do
            if getPlayerStorageValue(pid, t.f) == 1 then
               if(getPlayerStorageValue(pid, t.f_1) == 0) then
                  doSendAnimatedText(getCreaturePosition(pid), "RED TEAM", TEXTCOLOR_RED)
               elseif(getPlayerStorageValue(pid, t.f_1) == 1) then
                  doSendAnimatedText(getCreaturePosition(pid), "BLUE TEAM", TEXTCOLOR_LIGHTBLUE)
               end
            end
         end
         return true
      end
      return true
   end
]]></globalevent>
<talkaction words="!start" event="script"><![CDATA[
   domodlib('re')
   function onSay(cid, words, param, channel)
      if getPlayerGroupId(cid) > 3 then
         setGlobalStorageValue(t.g, 1)
         setGlobalStorageValue(t.u, 0)
         setGlobalStorageValue(t.l, 0)
         setGlobalStorageValue(t.a, 1)
         setGlobalStorageValue(t.c, 0)
         setGlobalStorageValue(t.wv, 0)
         doBroadcastMessage("Rush Event: Jesli chcesz dolaczyc wpisz komende: !rush, walka za ".. t.t .." minuty. ", MESSAGE_STATUS_WARNING)
         addEvent(function()
         doBroadcastMessage("Rush Event, startuje za 2 minuty. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
         end, (t.t - 2) * 1000 * 60)
         addEvent(function()
         doBroadcastMessage("Rush Event, startuje za 1 minute. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
         end, (t.t - 1) * 1000 * 60)
         addEvent(start, t.t * 1000 * 60, cid)
         return true
      end
      return true
   end
   function results()
      if(getGlobalStorageValue(t.a) == 1) then
         local red = getGlobalStorageValue(t.l)
         local blue = getGlobalStorageValue(t.u)         
         doBroadcastMessage("Rush Event, wyniki:\nTeam Czerwonych zdobyl: ".. red .." frag?w.\nTeam Niebieskich zdobyl: ".. blue .." frag?w.\nWalka trwa do ".. t.v .." frag?w.", MESSAGE_STATUS_WARNING)
         addEvent(results, t.r * 1000 * 60)
      end
   end
   function start(cid)
      if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
         doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
         setGlobalStorageValue(t.wv, 1)
         addEvent(results, t.r * 1000 * 60)
         for _, pid in ipairs(getPlayersOnline()) do   
            local myOutfit = getCreatureOutfit(pid)
            local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
            local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}   
            if getPlayerStorageValue(pid, t.f) == 1 then
               doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
               doCreatureAddMana(pid, getCreatureMaxMana(pid))   
               if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
                  doCreatureChangeOutfit(pid, red)
                  setPlayerStorageValue(pid, t.h, 0)
                  doTeleportThing(pid, t.d_1)
                  setPlayerStorageValue(pid, t.f, 1)
                  setPlayerStorageValue(pid, t.f_1, 0)
                  setPlayerStorageValue(pid, t.f_2, 1)
                  doSendMagicEffect(getCreaturePosition(pid), 10)
                  doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Czerwonych!\nWalka bedzie trwala do ".. t.v .." frag?w, Powodzenia!")
               else
                  doCreatureChangeOutfit(pid, blue)
                  doTeleportThing(pid, t.d_2)
                  setPlayerStorageValue(pid, t.h, 0)
                  setPlayerStorageValue(pid, t.f, 1)
                  setPlayerStorageValue(pid, t.f_1, 1)
                  setPlayerStorageValue(pid, t.f_2, 0)
                  doSendMagicEffect(getCreaturePosition(pid), 10)
                  doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Niebieskich!\nWalka bedzie trwala do ".. t.v .." frag?w, Powodzenia!")
               end
            end
         end
      elseif(getGlobalStorageValue(t.c) < t.mn) then
         doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
         setGlobalStorageValue(t.a, 0)
         for _, pid in ipairs(getPlayersOnline()) do
            if getPlayerStorageValue(pid, t.f) == 1 then
               setPlayerStorageValue(pid, t.f, -1)
               doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
               doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
            end
         end
      end
   end
]]></talkaction>
   <globalevent name="RushStart" time="15:53" event="script"><![CDATA[
      domodlib('re')
      function onTime(interval, lastExecution)
         setGlobalStorageValue(t.g, 1)
         setGlobalStorageValue(t.u, 0)
         setGlobalStorageValue(t.l, 0)
         setGlobalStorageValue(t.a, 1)
         setGlobalStorageValue(t.c, 0)
         setGlobalStorageValue(t.wv, 0)
         doBroadcastMessage("Rush Event: Jesli chcesz dolaczyc wpisz komende: !rush, walka za ".. t.t .." minuty.", MESSAGE_STATUS_WARNING)
         addEvent(function()
         doBroadcastMessage("Rush Event, startuje za 2 minuty. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
         end, (t.t - 2) * 1000 * 60)
         addEvent(function()
         doBroadcastMessage("Rush Event, startuje za 1 minute. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
         end, (t.t - 1) * 1000 * 60)
         addEvent(start, t.t * 1000 * 60, cid)
      end
      function results()
         if(getGlobalStorageValue(t.a) == 1) then
            local red = getGlobalStorageValue(t.l)
            local blue = getGlobalStorageValue(t.u)         
            doBroadcastMessage("Rush Event, wyniki:\nTeam Czerwonych zdobyl: ".. red .." frag?w.\nTeam Niebieskich zdobyl: ".. blue .." frag?w.\nWalka trwa do ".. t.v .." frag?w.", MESSAGE_STATUS_WARNING)
            addEvent(results, t.r * 1000 * 60)
         end
      end
      function start(cid)
         if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
            doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
            setGlobalStorageValue(t.wv, 1)
            addEvent(results, t.r * 1000 * 60)
            for _, pid in ipairs(getPlayersOnline()) do   
               local myOutfit = getCreatureOutfit(pid)
               local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
               local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}   
               if getPlayerStorageValue(pid, t.f) == 1 then
                  doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
                  doCreatureAddMana(pid, getCreatureMaxMana(pid))   
                  if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
                     doCreatureChangeOutfit(pid, red)
                     setPlayerStorageValue(pid, t.h, 0)
                     doTeleportThing(pid, t.d_1)
                     setPlayerStorageValue(pid, t.f, 1)
                     setPlayerStorageValue(pid, t.f_1, 0)
                     setPlayerStorageValue(pid, t.f_2, 1)
                     doSendMagicEffect(getCreaturePosition(pid), 10)
                     doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Czerwonych!\nWalka bedzie trwala do ".. t.v .." frag?w, Powodzenia!")
                  else
                     doCreatureChangeOutfit(pid, blue)
                     setPlayerStorageValue(pid, t.h, 0)
                     doTeleportThing(pid, t.d_2)
                     setPlayerStorageValue(pid, t.f, 1)
                     setPlayerStorageValue(pid, t.f_1, 1)
                     setPlayerStorageValue(pid, t.f_2, 0)
                     doSendMagicEffect(getCreaturePosition(pid), 10)
                     doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Niebieskich!\nWalka bedzie trwala do ".. t.v .." frag?w, Powodzenia!")
                  end
               end
            end
         elseif(getGlobalStorageValue(t.c) < t.mn) then
            doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
            setGlobalStorageValue(t.a, 0)
            for _, pid in ipairs(getPlayersOnline()) do
               if getPlayerStorageValue(pid, t.f) == 1 then
                  setPlayerStorageValue(pid, t.f, -1)
                  doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
                  doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
               end
            end
         end
      end
   ]]></globalevent>
<talkaction words="!rush" event="script"><![CDATA[
   domodlib('re')
   function onSay(cid, words, param, channel)
      if getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.wv) ~= 1 then
         if getPlayerLevel(cid) >= t.lvl then
            if getPlayerStorageValue(cid, t.f) == -1 then
               if getTilePzInfo(getPlayerPosition(cid)) == true then
                  if getGlobalStorageValue(t.c) < t.m then
                     setGlobalStorageValue(t.c, getGlobalStorageValue(t.c)+1)
                     if getGlobalStorageValue(t.c) == t.m then
                        doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
                     else   
                        doBroadcastMessage("" .. getPlayerName(cid) .. " dolaczyl do Rush Eventu! Wlasciwie mamy: " .. getGlobalStorageValue(t.c) .. " graczy!", 19)
                     end
                     setPlayerStorageValue(cid, t.f, 1)
                     setPlayerStorageValue(cid, t.h, -1)
                     doTeleportThing(cid, t.w)
                     doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
                     setPlayerStorageValue(cid, t.g, getGlobalStorageValue(t.g))
                     setGlobalStorageValue(t.g, tonumber(getGlobalStorageValue(t.g))+1)
                  else
                     doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
                     return true
                  end
               else
                  doPlayerSendCancel(cid, "Musisz byc w protection zone [PZ].")
                  return true
               end
            else
               doPlayerSendCancel(cid, "Jestes juz zarejestrowany w tym evencie.")
               return true
            end
         else
            doPlayerSendCancel(cid, "Minimalny level do wziecia udzialu w walce to 100.")
            return true
         end           
      else
         doPlayerSendCancel(cid, "W chwili obecnej event jest nieczynny.")
         return true
      end
      return true
   end
]]></talkaction>
<event type="combat" name="RushCombat" event="script"><![CDATA[
   domodlib('re')
   function onCombat(cid, target)
      if(getGlobalStorageValue(t.a) == 1) then
         if isPlayer(cid) and isPlayer(target) then
            if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
               if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
                  return doPlayerSendCancel(cid, "Niestety, nie mozna atakowac swojego zespolu.") and false
               end
            end
         end
      end
      return true
   end
]]></event>
<event type="attack" name="RushAttack" event="script"><![CDATA[
   domodlib('re')
   function onAttack(cid, target)
      if(getGlobalStorageValue(t.a) == 1) then
         if isPlayer(cid) and isPlayer(target) then
            if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
               if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
                  return doPlayerSendCancel(cid, "Niestety, nie mozna atakowac swojego zespolu.") and false
               end
            end
         end
      end
      return true
   end
]]></event>
<event type="preparedeath" name="RushDead" event="script"><![CDATA[
   domodlib('re')
   function onPrepareDeath(cid, deathList)
      if(not isPlayer(cid)) then
         return true
      end
      if getGlobalStorageValue(t.a) == 1 then
         local strings = {""}
         local j, position, corpse = 1, 1, 0
         for _, pid in ipairs(deathList) do
            if isCreature(pid) == true then
               strings[position] = j == 1 and "" or strings[position] .. ", "
               strings[position] = strings[position] .. getCreatureName(pid) .. ""
               j = j + 1
            else
               strings[position] = j == 1 and "" or strings[position] .. ", "
               strings[position] = strings[position] .."a field item"
               j = j + 1
            end
         end
         for i, str in ipairs(strings) do
            if(str:sub(str:len()) ~= ",") then
               str = str .. "."
            end
            desc = "You recognize "
            desc = desc .. "" .. getCreatureName(cid) .. ". He was killed by " .. str
         end
         if(getPlayerSex(cid) == 1) then
            corpse = doCreateItem(3058, getCreaturePosition(cid))
         else
            corpse = doCreateItem(3065, getCreaturePosition(cid))
         end
         doItemSetAttribute(corpse, "description", desc)
         if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
            setGlobalStorageValue(t.u, getGlobalStorageValue(t.u)+1)
         else
            setGlobalStorageValue(t.l, getGlobalStorageValue(t.l)+1)
         end
         local red = getGlobalStorageValue(t.l)
         local blue = getGlobalStorageValue(t.u)
         if blue < t.v or red < t.v then   
            if(isPlayer(cid) == false) then
               return true
            end      
            if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
               doTeleportThing(cid, t.d_1)
               doSendMagicEffect(getCreaturePosition(cid), 10)
               doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
               doCreatureAddMana(cid, getCreatureMaxMana(cid))
               doPlayerRemoveLethalConditions(cid)
               if getCreatureSkullType(cid) == SKULL_WHITE then
                  doCreatureSetSkullType(cid, 0)
               end
            else
               doTeleportThing(cid, t.d_2)
               doSendMagicEffect(getCreaturePosition(cid), 10)
               doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
               doCreatureAddMana(cid, getCreatureMaxMana(cid))
               doPlayerRemoveLethalConditions(cid)
               if getCreatureSkullType(cid) == SKULL_WHITE then
                  doCreatureSetSkullType(cid, 0)
               end
            end   
         end
         if blue >= t.v then
            doBroadcastMessage(t.y, MESSAGE_STATUS_WARNING)
            setGlobalStorageValue(t.h, 1)
            for _, pid in ipairs(getPlayersOnline()) do
               if(getPlayerStorageValue(pid, t.f_1) == 1) then
                  doPlayerAddItem(cid, 2157, 2)
               end
            end
         elseif red >= t.v then
            doBroadcastMessage(t.o, MESSAGE_STATUS_WARNING)
            setGlobalStorageValue(t.h, 1)
            for _, pid in ipairs(getPlayersOnline()) do
               if(getPlayerStorageValue(pid, t.f_2) == 1) then
                  doPlayerAddItem(cid, 2157, 2)
               end
            end
         end
         if getGlobalStorageValue(t.h) == 1 then
            setGlobalStorageValue(t.a, 0)
            setGlobalStorageValue(t.h, 0)
            setGlobalStorageValue(t.wv, -1)
            setPlayerStorageValue(cid, t.f, -1)
            setPlayerStorageValue(cid, t.g, 0)
            setPlayerStorageValue(cid, t.l, 0)
            setPlayerStorageValue(cid, t.u, 0)
            setPlayerStorageValue(cid, t.f_1, 1)
            setPlayerStorageValue(cid, t.f_2, 1)
            setPlayerStorageValue(cid, t.h, -1)
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
            doSendMagicEffect(getCreaturePosition(cid), 10)
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
            doCreatureAddMana(cid, getCreatureMaxMana(cid))
            doPlayerRemoveLethalConditions(cid)
            for _, pid in ipairs(getPlayersOnline()) do
               if(getPlayerStorageValue(pid, t.f_1) == 1 or getPlayerStorageValue(pid, t.f_2) == 1) then
                  setPlayerStorageValue(pid, t.f, -1)
                  doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
                  doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
                  setPlayerStorageValue(pid, t.g, 0)
                  setPlayerStorageValue(pid, t.l, 0)
                  setPlayerStorageValue(pid, t.u, 0)
                  setPlayerStorageValue(pid, t.f_1, -1)
                  setPlayerStorageValue(pid, t.f_2, -1)
                  setPlayerStorageValue(pid, t.h, -1)
                  doCreatureAddHealth(pid, getCreatureMaxHealth(pid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
                  doCreatureAddMana(pid, getCreatureMaxMana(pid))
                  doPlayerRemoveLethalConditions(pid)
               end
            end
            return false
         end
         return false
      end
      return true
   end
]]></event>
<event type="outfit" name="RushOutfit" event="script"><![CDATA[
   domodlib('re')
   function onOutfit(cid, old, current)
      if(getGlobalStorageValue(t.a) == 1) then
         if getPlayerGroupId(cid) > 3 then
            return true
         end
         if getPlayerStorageValue(cid, t.h) == 0 then
            if getPlayerStorageValue(cid, t.f) > -1 then
               doPlayerSendCancel(cid, "Nie mozna zmienic stroju podczas eventu.")
               return false
            end
         end
      end
      return true
   end
]]></event>
</mod>
 

Szpaku17

Advanced User
Joined
Aug 14, 2008
Messages
313
Reaction score
5
Odp: Rush Event 8.6 MOD VERSION

Kto? pomo?e?
~~Refresh~~
 

boytano1

Active User
Joined
Jun 15, 2009
Messages
70
Reaction score
8
Odp: Rush Event 8.6 MOD VERSION

PHP:
<?xml version="1.0" encoding="ISO-8859-1"?>
<mod name="Rush Event" version="1.0" author="ChaitoSoft.com" contact="suporte@chaitosoft.com" enabled="yes">
  <description>
        TUTORIAL DE COMO CONFIGURAR O EVENTO ACOMPANHE POR AQUI:
      q - mensagem que vai ser exibida quando o evento come?ar
      d_1 - posi??o do tempo vermelho ao come?ar evento
      d_2 - posi??o do tempo azul ao come?ar evento
      x - mensagem que vai ser exibida quando o evento n?o come?ar
      w - posi??o da sala de espera, onde os players v?o ficar antes de come?ar
      lvl - level minimo para participar do evento
      v - a quantidade de frags que ser? necess?ria para o time ganhar
      mn - quantidade minima de players para come?ar o evento
      m - maximo de players dentro do evento
      o - mensagem exibida quando o time vermelho ganhar
      y - mensagem exibida quando o time azul ganhar
      i_1 - id do premio (agora ? crystal coin = 2160)
      i_2 - quantidade do premio (agora esta 10 crystal coins)
      t - tempo para come?ar o evento (agora esta is 5 minutos)
      r - tempo em que os resultados da batalha ser?o mostrados aos players (agora esta 3 minutos)
 
   Adicione isto em 050-function.lua:
   -------------------------------------------------------------------------------------------------
   function doPlayerRemoveLethalConditions(cid)
      local tmp = {1, 2, 4, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 32768, 65536}
      for i = 1, #tmp do
         if(hasCondition(cid, tmp[i])) then doRemoveCondition(cid, tmp[i]) end
      end
      return true
   end
   -------------------------------------------------------------------------------------------------
   Adicione isto em login.lua:
   -------------------------------------------------------------------------------------------------
   registerCreatureEvent(cid, "RushCombat")
   registerCreatureEvent(cid, "RushAttack")
   registerCreatureEvent(cid, "RushDead")
   registerCreatureEvent(cid, "RushOutfit")
   -------------------------------------------------------------------------------------------------
   Agora daqui pra baixo voc? vai configurar de acordo com o tutorial acima, o resto se n?o tiver
   conhecimento n?o mecha em nada pois poder? bugar o evento e n?o daremos suporte:
  </description>
   <config name="re"><![CDATA[
       t = {
         a = 32145,
         g = 32146,
         l = 32147,
         u = 32148,
         h = 32149,
         wv = 32150,
         c = 0,
         q = "Rush Event zostal rozpoczety, milej zabawy! =)",
         f = 5447,
         f_1 = 5448,
         f_2 = 5449,
         d_1 = {x = 16841, y = 16411, z = 7}, -- red temple
         d_2 = {x = 16898, y = 16379, z = 7}, -- blue temple
         x = "Event anulowany, poniewaz zbyt malo chetnych os?b do wziecia udzialu.",
         w = {x = 16871, y = 16457, z = 7},
         lvl = 100,
         v = 25,
         mn = 5,
         m = 40,
         o = "Event zakonczony, Team CZERWONYCH wygral walke!",
         y = "Event zakonczony, Team NIEBIESKICH wygral walke!",
         i_1 = 0,
         i_2 = 0,
         t = 3,
         r = 5
      }
   ]]></config>
<globalevent name="Recognition" interval="150000" event="script"><![CDATA[
   domodlib('re')
   function onThink(interval, lastExecution, thinkInterval)
      if(getGlobalStorageValue(t.a) == 1) then
         for _, pid in ipairs(getPlayersOnline()) do
            if getPlayerStorageValue(pid, t.f) == 1 then
               if(getPlayerStorageValue(pid, t.f_1) == 0) then
                  doSendAnimatedText(getCreaturePosition(pid), "RED TEAM", TEXTCOLOR_RED)
               elseif(getPlayerStorageValue(pid, t.f_1) == 1) then
                  doSendAnimatedText(getCreaturePosition(pid), "BLUE TEAM", TEXTCOLOR_LIGHTBLUE)
               end
            end
         end
         return true
      end
      return true
   end
]]></globalevent>
<talkaction words="!start" event="script"><![CDATA[
   domodlib('re')
   function onSay(cid, words, param, channel)
      if getPlayerGroupId(cid) > 3 then
         setGlobalStorageValue(t.g, 1)
         setGlobalStorageValue(t.u, 0)
         setGlobalStorageValue(t.l, 0)
         setGlobalStorageValue(t.a, 1)
         setGlobalStorageValue(t.c, 0)
         setGlobalStorageValue(t.wv, 0)
         doBroadcastMessage("Rush Event: Jesli chcesz dolaczyc wpisz komende: !rush, walka za ".. t.t .." minuty. ", MESSAGE_STATUS_WARNING)
         addEvent(function()
         doBroadcastMessage("Rush Event, startuje za 2 minuty. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
         end, (t.t - 2) * 1000 * 60)
         addEvent(function()
         doBroadcastMessage("Rush Event, startuje za 1 minute. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
         end, (t.t - 1) * 1000 * 60)
         addEvent(start, t.t * 1000 * 60, cid)
         return true
      end
      return true
   end
   function results()
      if(getGlobalStorageValue(t.a) == 1) then
         local red = getGlobalStorageValue(t.l)
         local blue = getGlobalStorageValue(t.u)         
         doBroadcastMessage("Rush Event, wyniki:\nTeam Czerwonych zdobyl: ".. red .." frag?w.\nTeam Niebieskich zdobyl: ".. blue .." frag?w.\nWalka trwa do ".. t.v .." frag?w.", MESSAGE_STATUS_WARNING)
         addEvent(results, t.r * 1000 * 60)
      end
   end
   function start(cid)
      if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
         doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
         setGlobalStorageValue(t.wv, 1)
         addEvent(results, t.r * 1000 * 60)
         for _, pid in ipairs(getPlayersOnline()) do   
            local myOutfit = getCreatureOutfit(pid)
            local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
            local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}   
            if getPlayerStorageValue(pid, t.f) == 1 then
               doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
               doCreatureAddMana(pid, getCreatureMaxMana(pid))   
               if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
                  doCreatureChangeOutfit(pid, red)
                  setPlayerStorageValue(pid, t.h, 0)
                  doTeleportThing(pid, t.d_1)
                  setPlayerStorageValue(pid, t.f, 1)
                  setPlayerStorageValue(pid, t.f_1, 0)
                  setPlayerStorageValue(pid, t.f_2, 1)
                  doSendMagicEffect(getCreaturePosition(pid), 10)
                  doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Czerwonych!\nWalka bedzie trwala do ".. t.v .." frag?w, Powodzenia!")
               else
                  doCreatureChangeOutfit(pid, blue)
                  doTeleportThing(pid, t.d_2)
                  setPlayerStorageValue(pid, t.h, 0)
                  setPlayerStorageValue(pid, t.f, 1)
                  setPlayerStorageValue(pid, t.f_1, 1)
                  setPlayerStorageValue(pid, t.f_2, 0)
                  doSendMagicEffect(getCreaturePosition(pid), 10)
                  doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Niebieskich!\nWalka bedzie trwala do ".. t.v .." frag?w, Powodzenia!")
               end
            end
         end
      elseif(getGlobalStorageValue(t.c) < t.mn) then
         doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
         setGlobalStorageValue(t.a, 0)
         for _, pid in ipairs(getPlayersOnline()) do
            if getPlayerStorageValue(pid, t.f) == 1 then
               setPlayerStorageValue(pid, t.f, -1)
               doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
               doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
            end
         end
      end
   end
]]></talkaction>
   <globalevent name="RushStart" time="15:53" event="script"><![CDATA[
      domodlib('re')
      function onTime(interval, lastExecution)
         setGlobalStorageValue(t.g, 1)
         setGlobalStorageValue(t.u, 0)
         setGlobalStorageValue(t.l, 0)
         setGlobalStorageValue(t.a, 1)
         setGlobalStorageValue(t.c, 0)
         setGlobalStorageValue(t.wv, 0)
         doBroadcastMessage("Rush Event: Jesli chcesz dolaczyc wpisz komende: !rush, walka za ".. t.t .." minuty.", MESSAGE_STATUS_WARNING)
         addEvent(function()
         doBroadcastMessage("Rush Event, startuje za 2 minuty. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
         end, (t.t - 2) * 1000 * 60)
         addEvent(function()
         doBroadcastMessage("Rush Event, startuje za 1 minute. Jesli chcesz dolaczyc, wpisz komende: !rush", MESSAGE_STATUS_WARNING)
         end, (t.t - 1) * 1000 * 60)
         addEvent(start, t.t * 1000 * 60, cid)
      end
      function results()
         if(getGlobalStorageValue(t.a) == 1) then
            local red = getGlobalStorageValue(t.l)
            local blue = getGlobalStorageValue(t.u)         
            doBroadcastMessage("Rush Event, wyniki:\nTeam Czerwonych zdobyl: ".. red .." frag?w.\nTeam Niebieskich zdobyl: ".. blue .." frag?w.\nWalka trwa do ".. t.v .." frag?w.", MESSAGE_STATUS_WARNING)
            addEvent(results, t.r * 1000 * 60)
         end
      end
      function start(cid)
         if(getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.c) >= t.mn) then
            doBroadcastMessage(t.q, MESSAGE_STATUS_WARNING)
            setGlobalStorageValue(t.wv, 1)
            addEvent(results, t.r * 1000 * 60)
            for _, pid in ipairs(getPlayersOnline()) do   
               local myOutfit = getCreatureOutfit(pid)
               local red = {lookType = myOutfit.lookType, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}
               local blue = {lookType = myOutfit.lookType, lookHead = 86, lookBody = 86, lookLegs = 86, lookFeet = 86, lookTypeEx = 0, lookAddons = myOutfit.lookAddons}   
               if getPlayerStorageValue(pid, t.f) == 1 then
                  doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
                  doCreatureAddMana(pid, getCreatureMaxMana(pid))   
                  if((getPlayerStorageValue(pid, t.g) % 2) == 1) then
                     doCreatureChangeOutfit(pid, red)
                     setPlayerStorageValue(pid, t.h, 0)
                     doTeleportThing(pid, t.d_1)
                     setPlayerStorageValue(pid, t.f, 1)
                     setPlayerStorageValue(pid, t.f_1, 0)
                     setPlayerStorageValue(pid, t.f_2, 1)
                     doSendMagicEffect(getCreaturePosition(pid), 10)
                     doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Czerwonych!\nWalka bedzie trwala do ".. t.v .." frag?w, Powodzenia!")
                  else
                     doCreatureChangeOutfit(pid, blue)
                     setPlayerStorageValue(pid, t.h, 0)
                     doTeleportThing(pid, t.d_2)
                     setPlayerStorageValue(pid, t.f, 1)
                     setPlayerStorageValue(pid, t.f_1, 1)
                     setPlayerStorageValue(pid, t.f_2, 0)
                     doSendMagicEffect(getCreaturePosition(pid), 10)
                     doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, "Jestes w Teamie Niebieskich!\nWalka bedzie trwala do ".. t.v .." frag?w, Powodzenia!")
                  end
               end
            end
         elseif(getGlobalStorageValue(t.c) < t.mn) then
            doBroadcastMessage(t.x, MESSAGE_STATUS_WARNING)
            setGlobalStorageValue(t.a, 0)
            for _, pid in ipairs(getPlayersOnline()) do
               if getPlayerStorageValue(pid, t.f) == 1 then
                  setPlayerStorageValue(pid, t.f, -1)
                  doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
                  doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
               end
            end
         end
      end
   ]]></globalevent>
<talkaction words="!rush" event="script"><![CDATA[
   domodlib('re')
   function onSay(cid, words, param, channel)
      if getGlobalStorageValue(t.a) == 1 and getGlobalStorageValue(t.wv) ~= 1 then
         if getPlayerLevel(cid) >= t.lvl then
            if getPlayerStorageValue(cid, t.f) == -1 then
               if getTilePzInfo(getPlayerPosition(cid)) == true then
                  if getGlobalStorageValue(t.c) < t.m then
                     setGlobalStorageValue(t.c, getGlobalStorageValue(t.c)+1)
                     if getGlobalStorageValue(t.c) == t.m then
                        doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
                     else   
                        doBroadcastMessage("" .. getPlayerName(cid) .. " dolaczyl do Rush Eventu! Wlasciwie mamy: " .. getGlobalStorageValue(t.c) .. " graczy!", 19)
                     end
                     setPlayerStorageValue(cid, t.f, 1)
                     setPlayerStorageValue(cid, t.h, -1)
                     doTeleportThing(cid, t.w)
                     doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
                     setPlayerStorageValue(cid, t.g, getGlobalStorageValue(t.g))
                     setGlobalStorageValue(t.g, tonumber(getGlobalStorageValue(t.g))+1)
                  else
                     doPlayerSendCancel(cid, "Event is full [" .. getGlobalStorageValue(t.c) .. " players]!")
                     return true
                  end
               else
                  doPlayerSendCancel(cid, "Musisz byc w protection zone [PZ].")
                  return true
               end
            else
               doPlayerSendCancel(cid, "Jestes juz zarejestrowany w tym evencie.")
               return true
            end
         else
            doPlayerSendCancel(cid, "Minimalny level do wziecia udzialu w walce to 100.")
            return true
         end           
      else
         doPlayerSendCancel(cid, "W chwili obecnej event jest nieczynny.")
         return true
      end
      return true
   end
]]></talkaction>
<event type="combat" name="RushCombat" event="script"><![CDATA[
   domodlib('re')
   function onCombat(cid, target)
      if(getGlobalStorageValue(t.a) == 1) then
         if isPlayer(cid) and isPlayer(target) then
            if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
               if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
                  return doPlayerSendCancel(cid, "Niestety, nie mozna atakowac swojego zespolu.") and false
               end
            end
         end
      end
      return true
   end
]]></event>
<event type="attack" name="RushAttack" event="script"><![CDATA[
   domodlib('re')
   function onAttack(cid, target)
      if(getGlobalStorageValue(t.a) == 1) then
         if isPlayer(cid) and isPlayer(target) then
            if getPlayerStorageValue(cid, t.f) == 1 and getPlayerStorageValue(target, t.f) == 1 then
               if getPlayerStorageValue(cid, t.f_1) == getPlayerStorageValue(target, t.f_1) then
                  return doPlayerSendCancel(cid, "Niestety, nie mozna atakowac swojego zespolu.") and false
               end
            end
         end
      end
      return true
   end
]]></event>
<event type="preparedeath" name="RushDead" event="script"><![CDATA[
   domodlib('re')
   function onPrepareDeath(cid, deathList)
      if(not isPlayer(cid)) then
         return true
      end
      if getGlobalStorageValue(t.a) == 1 then
         local strings = {""}
         local j, position, corpse = 1, 1, 0
         for _, pid in ipairs(deathList) do
            if isCreature(pid) == true then
               strings[position] = j == 1 and "" or strings[position] .. ", "
               strings[position] = strings[position] .. getCreatureName(pid) .. ""
               j = j + 1
            else
               strings[position] = j == 1 and "" or strings[position] .. ", "
               strings[position] = strings[position] .."a field item"
               j = j + 1
            end
         end
         for i, str in ipairs(strings) do
            if(str:sub(str:len()) ~= ",") then
               str = str .. "."
            end
            desc = "You recognize "
            desc = desc .. "" .. getCreatureName(cid) .. ". He was killed by " .. str
         end
         if(getPlayerSex(cid) == 1) then
            corpse = doCreateItem(3058, getCreaturePosition(cid))
         else
            corpse = doCreateItem(3065, getCreaturePosition(cid))
         end
         doItemSetAttribute(corpse, "description", desc)
         if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
            setGlobalStorageValue(t.u, getGlobalStorageValue(t.u)+1)
         else
            setGlobalStorageValue(t.l, getGlobalStorageValue(t.l)+1)
         end
         local red = getGlobalStorageValue(t.l)
         local blue = getGlobalStorageValue(t.u)
         if blue < t.v or red < t.v then   
            if(isPlayer(cid) == false) then
               return true
            end      
            if((getPlayerStorageValue(cid, t.g) % 2) == 1) then
               doTeleportThing(cid, t.d_1)
               doSendMagicEffect(getCreaturePosition(cid), 10)
               doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
               doCreatureAddMana(cid, getCreatureMaxMana(cid))
               doPlayerRemoveLethalConditions(cid)
               if getCreatureSkullType(cid) == SKULL_WHITE then
                  doCreatureSetSkullType(cid, 0)
               end
            else
               doTeleportThing(cid, t.d_2)
               doSendMagicEffect(getCreaturePosition(cid), 10)
               doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
               doCreatureAddMana(cid, getCreatureMaxMana(cid))
               doPlayerRemoveLethalConditions(cid)
               if getCreatureSkullType(cid) == SKULL_WHITE then
                  doCreatureSetSkullType(cid, 0)
               end
            end   
         end
         if blue >= t.v then
            doBroadcastMessage(t.y, MESSAGE_STATUS_WARNING)
            setGlobalStorageValue(t.h, 1)
            for _, pid in ipairs(getPlayersOnline()) do
               if(getPlayerStorageValue(pid, t.f_1) == 1) then
                  doPlayerAddItem(pid, 2157, 2)
               end
            end
         elseif red >= t.v then
            doBroadcastMessage(t.o, MESSAGE_STATUS_WARNING)
            setGlobalStorageValue(t.h, 1)
            for _, pid in ipairs(getPlayersOnline()) do
               if(getPlayerStorageValue(pid, t.f_2) == 1) then
                  doPlayerAddItem(pid, 2157, 2)
               end
            end
         end
         if getGlobalStorageValue(t.h) == 1 then
            setGlobalStorageValue(t.a, 0)
            setGlobalStorageValue(t.h, 0)
            setGlobalStorageValue(t.wv, -1)
            setPlayerStorageValue(cid, t.f, -1)
            setPlayerStorageValue(cid, t.g, 0)
            setPlayerStorageValue(cid, t.l, 0)
            setPlayerStorageValue(cid, t.u, 0)
            setPlayerStorageValue(cid, t.f_1, 1)
            setPlayerStorageValue(cid, t.f_2, 1)
            setPlayerStorageValue(cid, t.h, -1)
            doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)
            doSendMagicEffect(getCreaturePosition(cid), 10)
            doCreatureAddHealth(cid, getCreatureMaxHealth(cid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
            doCreatureAddMana(cid, getCreatureMaxMana(cid))
            doPlayerRemoveLethalConditions(cid)
            for _, pid in ipairs(getPlayersOnline()) do
               if(getPlayerStorageValue(pid, t.f_1) == 1 or getPlayerStorageValue(pid, t.f_2) == 1) then
                  setPlayerStorageValue(pid, t.f, -1)
                  doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
                  doSendMagicEffect(getCreaturePosition(pid), CONST_ME_TELEPORT)
                  setPlayerStorageValue(pid, t.g, 0)
                  setPlayerStorageValue(pid, t.l, 0)
                  setPlayerStorageValue(pid, t.u, 0)
                  setPlayerStorageValue(pid, t.f_1, -1)
                  setPlayerStorageValue(pid, t.f_2, -1)
                  setPlayerStorageValue(pid, t.h, -1)
                  doCreatureAddHealth(pid, getCreatureMaxHealth(pid), MAGIC_EFFECT_UNKNOWN, COLOR_UNKNOWN, true)
                  doCreatureAddMana(pid, getCreatureMaxMana(pid))
                  doPlayerRemoveLethalConditions(pid)
               end
            end
            return false
         end
         return false
      end
      return true
   end
]]></event>
<event type="outfit" name="RushOutfit" event="script"><![CDATA[
   domodlib('re')
   function onOutfit(cid, old, current)
      if(getGlobalStorageValue(t.a) == 1) then
         if getPlayerGroupId(cid) > 3 then
            return true
         end
         if getPlayerStorageValue(cid, t.h) == 0 then
            if getPlayerStorageValue(cid, t.f) > -1 then
               doPlayerSendCancel(cid, "Nie mozna zmienic stroju podczas eventu.")
               return false
            end
         end
      end
      return true
   end
]]></event>
</mod>

Teraz powinno dzialac. Jezeli chcialbys dodac wiecej itemow zamiast doPlayerAddItem(cid, id, count) daj doPlayerAddItem(pid, id, count).
 

nemezir

New User
Joined
Jun 17, 2010
Messages
7
Reaction score
0
Odp: Rush Event 8.6 MOD VERSION

gdzie to wkleic? pod jaka nazwa ?i co jeszcze zedytowac i tam dodac zeby dzialalo ? prosze o pomoc :)

Albo czy kompilacja jest wymagana ?
 
Last edited:

boytano1

Active User
Joined
Jun 15, 2009
Messages
70
Reaction score
8
Odp: Rush Event 8.6 MOD VERSION

Wklejasz to do /mods z rozszerzeniem pliku .xml a ustawienia s? proste i opisane w skrypcie.
 
Status
Not open for further replies.
Top