BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Ayuda Script potion

Ayuda Script potion

#1 Ayuda Script potion el Miér Ene 11, 2012 10:08 pm

chiro


Novato
Hola bueno viendo varios scripts estube haciendo uno que funcionaba bien hasta que vi que no funcionaba el exausted y que se eliminara el item bueno aqui esta:

Código:
local MIN = 1000
local MAX = 2500
local MIN1 = 3000
local MAX1 = 4500
local MIN2 = 5000
local MAX2 = 6500
local MIN3 = 7000
local MAX3 = 8500
local MIN4 = 8000
local MAX4 = 9500
local MIN5 = 9000
local MAX5 = 9500
local MAX6 = 10000
local MAX7 = 10500
local MAX8 = 11500
local MAX9 = 12500
local MAX10 = 13500
local MAX11 = 14500
local EMPTY_POTION = 7635

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, 2000)

function onUse(cid, item, fromPosition, itemEx, toPosition)
   if isPlayer(itemEx.uid) == FALSE then
      return FALSE
   end

   if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then
      doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
      return TRUE
   end

   if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 80) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
      doCreatureSay(itemEx.uid, "Only sorcerers and druids of level 80 or above may drink this fluid.", TALKTYPE_ORANGE_1)
      return TRUE
   end

   if (getPlayerLevel(itemEx.uid) <= 50) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN, MAX))
   return FALSE
   end
   
      if (getPlayerLevel(itemEx.uid) <= 100) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN, MAX))
   return FALSE
   end
   
      if (getPlayerLevel(itemEx.uid) <= 200) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN, MAX))
   return FALSE
   end
   
      if (getPlayerLevel(itemEx.uid) <= 300) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN1, MAX1))
   return FALSE
   end
   
      if (getPlayerLevel(itemEx.uid) <= 400) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN2, MAX2))
   return FALSE
   end
   
      if (getPlayerLevel(itemEx.uid) <= 500) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN1, MAX3))
   return FALSE
   end
   
      if (getPlayerLevel(itemEx.uid) <= 600) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN1, MAX4))
   return FALSE
   end
   
      if (getPlayerLevel(itemEx.uid) <= 700) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN1, MAX5))
   return FALSE
   end
   
      if (getPlayerLevel(itemEx.uid) <= 800) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN2, MAX6))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 900) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN2, MAX6))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1000) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN2, MAX7))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1100) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN3, MAX8))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1200) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN3, MAX9))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1300) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN3, MAX10))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1400) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN3, MAX10))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1500) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN4, MAX10))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1600) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN4, MAX10))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1700) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN4, MAX11))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1800) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN4, MAX11))
   return FALSE
   end

      if (getPlayerLevel(itemEx.uid) <= 1900) then --- level maximo
   doPlayerAddMana(itemEx.uid, math.random(MIN5, MAX11))
   return FALSE
   end
   
         if (onUse(item.uid)) then --- level maximo
   doRemoveItem(item.uid, 1)
   return FALSE
   end

   doAddCondition(cid, exhaust)
   doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
   doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
      return true
   end

Ojala que me puenda ayudar que deverdad lo nesesito :c la idea es potios por stages y de nivel o por is agluein tiene algun otro ese es de la great mana potion porsicaso

http://www.atomicsot.com

#2 Re: Ayuda Script potion el Vie Ene 13, 2012 10:48 pm

Daviid


Novato
Código:
local MIN = 110
local MAX = 190
local EMPTY_POTION = 7634

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))

function onUse(cid, item, fromPosition, itemEx, toPosition)
   if isPlayer(itemEx.uid) == FALSE then
      return FALSE
   end

   if hasCondition(cid, CONDITION_EXHAUST_HEAL) == TRUE then
      doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
      return TRUE
   end

   if((not(isSorcerer(itemEx.uid) or isDruid(itemEx.uid) or isPaladin(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 50) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then
      doCreatureSay(itemEx.uid, "Only sorcerers, druids and paladins of level 50 or above may drink this fluid.", TALKTYPE_ORANGE_1)
      return TRUE
   end

   if doPlayerAddMana(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then
      return FALSE
   end

   doAddCondition(cid, exhaust)
   doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
   doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
   doRemoveItem(item.uid, 1)
        doPlayerAddItem(cid, EMPTY_POTION, 1)
        pot_count = getPlayerItemCount(cid, EMPTY_POTION)
        doPlayerRemoveItem(cid, EMPTY_POTION, pot_count)
        doPlayerAddItem(cid, EMPTY_POTION, pot_count)
        return TRUE
end

si quieres cambiarle a que cure mas solo lo modificas donde dice "MAX y MIN" y listo xD! espero te sirva we

#3 Re: Ayuda Script potion el Vie Ene 13, 2012 10:52 pm

Invitado


Mira mejor edita este, este si tiene exhausted
Solo edita cuanto curaria en;
Código:
health = {200, 400}
Código:
local config = {
   removeOnUse = "yes",
   usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
   splashable = "no",
   realAnimation = "no", -- make text effect visible only for players in range 1x1
   healthMultiplier = 1.0,
   manaMultiplier = 1.0
}

config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)

local POTIONS = {
   [8704] = {empty = 7636, splash = 2, health = {50, 100}}, -- small health potion
   [7618] = {empty = 7636, splash = 2, health = {100, 200}}, -- health potion
   [7588] = {empty = 7634, splash = 2, health = {200, 400}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
   [7591] = {empty = 7635, splash = 2, health = {500, 700}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
   [8473] = {empty = 7635, splash = 2, health = {800, 1000}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion

   [7620] = {empty = 7636, splash = 7, mana = {70, 130}}, -- mana potion
   [7589] = {empty = 7634, splash = 7, mana = {110, 190}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
   [7590] = {empty = 7635, splash = 7, mana = {200, 300}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion

   [8472] = {empty = 7635, splash = 3, health = {200, 400}, mana = {110, 190}, level = 80, vocations = {3, 7}, vocStr = "paladins"} -- great spirit potion
}

local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
setConditionParam(exhaust, CONDITION_PARAM_SUBID, 1)

function onUse(cid, item, fromPosition, itemEx, toPosition)
   local potion = POTIONS[item.itemid]
   if(not potion) then
      return false
   end

   if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
      if(not config.splashable) then
         return false
      end

      if(toPosition.x == CONTAINER_POSITION) then
         toPosition = getThingPos(item.uid)
      end

      doDecayItem(doCreateItem(2016, potion.splash, toPosition))
      doTransformItem(item.uid, potion.empty)
      return true
   end

   if(hasCondition(cid, CONDITION_EXHAUST, 1)) then
      doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
      return true
   end

   if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
      not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
   then
      doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
      return true
   end

   local health = potion.health
   if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
      return false
   end

   local mana = potion.mana
   if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
      return false
   end

   doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE)
   if(not realAnimation) then
      doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
      doRemoveCondition(itemEx.uid, CONDITION_PARALYZE)
   else
      for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
         if(isPlayer(tid)) then
            doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
            doRemoveCondition(itemEx.uid, CONDITION_PARALYZE)
         end
      end
   end

   doAddCondition(cid, exhaust)
   if(not potion.empty or config.removeOnUse) then
      doRemoveItem(item.uid)
      return true
   end

   doTransformItem(item.uid, potion.empty)
   return true
end

#4 Re: Ayuda Script potion el Miér Ene 18, 2012 10:39 pm

chiro


Novato
Puh no me entiendieron las nesesito con stages, osea que a un lvl 100 le recarge entre 1000 a 2000 y a un lvl 200 le recarge entre 2000 y 4000 me entienden?

http://www.atomicsot.com

#5 Re: Ayuda Script potion el Miér Ene 18, 2012 11:17 pm

Invitado


Es lo que te puse arriba-.-, solo modifica de que nivel a que nivel curara X-.-

#6 Re: Ayuda Script potion el Lun Ago 25, 2014 9:54 pm

spavix


Estudiante
buenas noches y como hago para q se eche las potiones un poco mas rapdo.?

#7 Re: Ayuda Script potion Hoy a las 8:51 pm

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 .