Skocz do zawartości

Skrypt na ulepszanie


Polecane posty

Potrzebuje pomocy o przerobienie go na TFS 1.2 10.98 https://prnt.sc/orr1eg <screen z putty

 

 

 

local gain = {
gainArmor='&p+1',loseArmor='&p-1', -- liczba pkt dodanych po ulepszaniu pancerzy
gainShield='&s+#',loseShield='&s-(#+1)', -- liczba pkt dodanych po ulepszaniu tarczy
gainAttack='&a+(2*(#))',loseAttack='&a-(2*(#+1))',  -- liczba pkt dodanych po ulepszaniu broni (atak)
gainDefense='&d+(2*(#))',loseDefense='&d-(2*(#+1))',  -- liczba pkt dodanych po ulepszaniu broni (obrona)
chance='100/((#*(1/(@/2)))*(@/2))',  -- szansa na ulepszanie 
maxlvl = 9, -- max lvl do ulepszania
blocked_ids = {2488,8881} -- blokowane id przedmiotu
}

if not setItemName then
    function setItemName(uid,name)
     return doItemSetAttribute(uid,'name',name)
    end
    function setItemArmor(uid,name)
     return doItemSetAttribute(uid,'armor',name)
    end
    function setItemDefense(uid,name)
     return doItemSetAttribute(uid,'defense',name)
    end
    function setItemAttack(uid,name)
     return doItemSetAttribute(uid,'attack',name)
    end
    function getItemAttack(uid)
       return getItemAttribute(uid,'attack')
    end
    function getItemDefense(uid)
       return getItemAttribute(uid,'defense')
    end
    function getItemArmor(uid)
       if type(uid) == 'number' then
          return getItemAttribute(uid,'armor')
       else
          return getItemInfo(uid.itemid).armor
       end
    end
end
function isArmor(uid)
         if (getItemArmor(uid) and getItemArmor(uid) ~= 0 and not getItemInfo(uid.itemid,'attack') and not getItemInfo(uid.itemid,'defense') and getItemWeaponType(uid.uid) == 0) then
            return true
         end
         return false
end
function isWeapon(uid)
         uid = uid or 0
         local f = getItemWeaponType(uid)
         if f == 1 or f == 2 or f == 3 then
             return TRUE
         end
         return FALSE
end
function isShield(uid)
         uid = uid or 0
         if getItemWeaponType(uid) == 4 then
             return TRUE
         end
         return FALSE
end
 
function getWeaponLevel(uid)
   uid = uid or 0
   local name = getItemName(uid)
   local lvl = string.match(name,'+(%d)')
   return tonumber(lvl) or 0
end
function doTransform(s,i) 
    local c = string.gsub(s,'@',gain.maxlvl)
    local c = string.gsub(c,'&a',getItemAttack(i.uid) or getItemInfo(i.itemid).attack)
    local c = string.gsub(c,'&d',getItemDefense(i.uid) or getItemInfo(i.itemid).defense)
    local c = string.gsub(c,'&s',getItemDefense(i.uid) or getItemInfo(i.itemid).defense)
    local c = string.gsub(c,'&p',getItemArmor(i.uid) or getItemInfo(i.itemid).armor)
    local c = string.gsub(c,'#',getWeaponLevel(i.uid))
    local q,err = loadstring('return '..c)
    assert(q,err)
    return assert(q())
end
function onUse(cid, item, player, fromPosition, target, itemEx, toPosition)
         toPosition.stackpos = 255
         if isInArray(gain.blocked_ids, itemEx.itemid) == TRUE
          or getItemWeaponType(itemEx.uid) > 4
           or (getItemWeaponType(itemEx.uid) == 0
            and isArmor(itemEx) == FALSE)
             or itemEx.itemid == 0 then
                doPlayerSendTextMessage(cid, 24,"Nie mozna ulepszyc tego przedmiotu")
                return TRUE
         end
         if isCreature(itemEx.uid) == TRUE then
            return FALSE
         end
        local level = getWeaponLevel(itemEx.uid)
        local chance = doTransform(gain.chance,itemEx)
        if chance >= math.random(0,100) or item.actionid >= 1000 or (item.actionid == 500 and math.random(0,100) <= 25) then
           if level+1 > gain.maxlvl then
              doSendMagicEffect(toPosition, 2)
              return doPlayerSendTextMessage(cid, 24,"Twoj item osiagnal juz max lvl")
           else
              setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level+1))
              doPlayerSendTextMessage(cid, 24,"Twoj przedmiot zostal ulepszoy do +"..(level+1)..".")
              doSendMagicEffect(toPosition, 12)
              if isArmor(itemEx) == TRUE then
                 local get = doTransform(gain.gainArmor,itemEx)
                 setItemArmor(itemEx.uid,get)
              elseif isWeapon(itemEx.uid) == TRUE then
                  setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx))
                  setItemDefense(itemEx.uid, doTransform(gain.gainDefense,itemEx))
              elseif isShield(itemEx.uid) == TRUE then
                  setItemDefense(itemEx.uid, doTransform(gain.gainShield,itemEx))
              end
           end
        else
 
           if level == 0 then
               doPlayerSendTextMessage(cid, 24,"Nic sie nie stalo")
               doSendMagicEffect(toPosition, 2)
           elseif level == gain.maxlvl then
                  doSendMagicEffect(toPosition, 2)
                  return doPlayerSendTextMessage(cid, 24,"Twoj przedmiot nie moze byc bardziej ulepszany")
           elseif level > 0 then
               if level == 1 then
                   setItemName(itemEx.uid, getItemNameById(itemEx.itemid))
                   doPlayerSendTextMessage(cid, 24,"Twoj przedmiot ma normalny poziom.")
               else
                   setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level-1))
                   doPlayerSendTextMessage(cid, 24,"Ulepszyles item do +"..(level-1)..".")
               end
              if isArmor(itemEx) == TRUE then
                 setItemArmor(itemEx.uid,doTransform(gain.loseArmor  ,itemEx))
              elseif isWeapon(itemEx.uid) == TRUE then
                  setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx))
                  setItemDefense(itemEx.uid, doTransform(gain.loseDefense,itemEx))
              elseif isShield(itemEx.uid) == TRUE then
                  setItemDefense(itemEx.uid, doTransform(gain.loseShield,itemEx))
              end
           end
           doSendMagicEffect(toPosition, 9)
        end
     doRemoveItem(item.uid,1)
     return TRUE
end

 

Udostępnij ten post


Link to postu

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×
Okienko zamknie się za 5 sekund...