Ir para conteúdo

Vodkart

Héroi
  • Registro em

Solutions

  1. Vodkart's post in (Resolvido)como abrir quantas tasks quiser? script do vodkart was marked as the answer   
    @poko360 tinha mta coisa faltando, quando vc copiou saiu várias funções n sei pq
     
    pega daqui:
     
     
    https://pastebin.com/raw/kF7TLf9A
  2. Vodkart's post in (Resolvido)Retorno do Mysql was marked as the answer   
    function onSay(player, words, param) local ret, t = db.storeQuery('SELECT `item_id` FROM `player_autoloot` WHERE `player_id` = '..getPlayerGUID(player)),{} if ret then repeat t[#t+1] = result.getNumber(ret, 'item_id') until not result.next(ret) result.free(ret) end for _, var in pairs(t) do player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, var) end return true end  
  3. Vodkart's post in (Resolvido)Spawn de items was marked as the answer   
    @hiquezerah está sendo verificado sim amigo, na área que escolheu, está tudo sendo no mapper editor?
     
    vc consegue criar o monstro lá nessa area com o /m?
     
    usa assim:
     
    local create_tab = { area = {{x=2795,y=879,z=7}, {x=2799,y=886,z=7}}, -- começo e fim items = { {chance = 50, itemid = 2173, amount = 1}, {chance = 10, itemid = 2494, amount = 1}, {chance = 100, itemid = 2159, amount = 20}, {chance = 100, itemid = 2160, amount = 100}, {chance = 100, name = "Gerador"}, -- monster name {chance = 100, itemid = 1111, amount = 1, actionID = 26008} -- uma chest por exemplo } } function isWalkable(pos) -- by Nord / editado por Omega if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false elseif isCreature(getTopCreature(pos).uid) then return false elseif getTileInfo(pos).protection then return false elseif hasProperty(getThingFromPos(pos).uid, 3) or hasProperty(getThingFromPos(pos).uid, 7) then return false end return true end function doAddItenFromMap() local pos = {x= math.random(create_tab.area[1].x,create_tab.area[2].x), y=math.random(create_tab.area[1].y,create_tab.area[2].y), z=create_tab.area[1].z} local var = create_tab.items[math.random(#create_tab.items)] if isWalkable(pos) and var.chance > math.random(1, 100) then if var.name ~= nil then doCreateMonster(var.name, pos, false, true) doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA) doSendMagicEffect(pos, CONST_ME_MORTAREA) else local ret = doCreateItem(var.itemid, var.amount, pos) if var.actionID ~= nil then doItemSetAttribute(ret, "aid", var.actionID) end end else doAddItenFromMap() end end function onThink(cid, interval, lastExecution) doAddItenFromMap() return true end  
  4. Vodkart's post in (Resolvido)Ajuda alguem porfavor was marked as the answer   
    @isac001 de boa, vamos por por actionID então!!
     
    function doTpTime(cid, delay, pos, msg) if not isCreature(cid) then return LUA_ERROR end if delay > 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "{Teleport} "..delay.." segundos para se teletransportar para "..msg..".") addEvent(doTpTime, 1000, cid, delay-1, pos, msg) else doTeleportThing(cid, pos) doSendMagicEffect(getPlayerPosition(cid), 10) doPlayerSendTextMessage(cid, 22, "Voce foi teleportado para "..msg.."! DBO EVOLUTION") end end local store,exhausted = 756841,10 function onUse(cid, item, fromPosition, item2, toPosition) local items = { -- [actionID] [15872] = {pos = {x = 433, y = 992, z = 15}, msg = "Earth"}, [15873] = {pos = {x = 478, y = 992, z = 15}, msg = "Namek Planet"}, [15874] = {pos = {x = 500, y = 992, z = 15}, msg = "Vegeta Planet"} } local var = items[item.actionid] if not var then return true end if getPlayerStorageValue(cid, store) >= os.time() then doPlayerSendCancel(cid, "wait " .. getPlayerStorageValue(cid, store) - os.time() .. " seconds to use this item.") return true end setPlayerStorageValue(cid, store, os.time()+exhausted) doTpTime(cid, 5, var.pos, var.msg) return true end  
    FAVOR TROCAR O ACTIONID QUE ESTÃO DENTRO DAS CHAVES []
        local items = { -- [ACTIONID]         [15872] = {pos = {x = 433, y = 992, z = 15}, msg = "Earth"},          [15873] = {pos = {x = 478, y = 992, z = 15}, msg = "Namek Planet"},         [15874] = {pos = {x = 500, y = 992, z = 15}, msg = "Vegeta Planet"}     } ai no actions.xml coloca assim por exemplo:
     
    <action actionid="15872;15873;15874" script="nome do seu script.lua"/>
     

    ou se forem tudo em ordem os actionID, tbm pode ser assim:
     
    <action actionid="15872-15874" script="nome do seu script.lua"/>  
  5. Vodkart's post in (Resolvido)Soft e Firewalker Boots. was marked as the answer   
    para que usar 2 códigos se pode fazer somente 1?
     
    usa assim:
     
     
    nome do seu script.lua
    local ret = { [10021] = {id = 6132, price = 10000, effect = CONST_ME_FIREWORK_BLUE}, [10022] = {id = 9933, price = 20000, effect = CONST_ME_FIREWORK_RED} } function onUse(cid, item, fromPosition, itemEx, toPosition) local t = ret[item.itemid] if not t then return true elseif not doPlayerRemoveMoney(cid, t.price) then doPlayerSendCancel(cid, "You need "..t.price.." golds.") return true end local pos = getThingPos(cid) doSendMagicEffect(pos, t.effect) doTransformItem(item.uid, t.id) return true end  
    tag:
     
    <action itemid="10021;10022" event="script" value="nome do seu script.lua"/>  
    ----------------------
    OBS: não dá para ver o vídeo.
  6. Vodkart's post in (Resolvido)Boss só pode receber dando quando seus summons forem mortos was marked as the answer   
    @maicao22 seu servidor não tem a função onStats... apaga tudo aí que te mandei, e dentro do xml do monstro apaga o event tbm, claro... (obs: apa as tags tbm)
     
     
     
    agora usa assim:
     
    nome do seu script.lua
    function onLogin(cid)     registerCreatureEvent(cid, "noBossDamage")     return true end function onCombat(cid, target)     if isPlayer(cid) and isMonster(target) then     local monster = "Rabbit" -- nome do boss             if getCreatureName(target):lower() == monster:lower() and #getCreatureSummons(target) ~= 0 then                 return false             end     end      return true  end TAG
    <event type="login" name="noBossLogin" event="script" value="nome do seu script.lua"/> <event type="combat" name="noBossDamage" event="script" value="nome do seu script.lua"/>  
  7. Vodkart's post in (Resolvido)Nao sei aonde ta erro was marked as the answer   
    function getPlayerReset(cid) local check = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)) return check:getDataInt("reset") <= 0 and 0 or check:getDataInt("reset") end local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_HOLY) function onGetFormulaValues(cid, level, maglevel) min = -(level*2.6)*(getResets(cid)+ 5 ) max = -(level*2.6)*(getResets(cid)+ 5 ) return min, max end local arr = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local resetmin = 1 function onCastSpell(cid, var) if getPlayerReset(cid) >= resetmin then doCombat(cid, combat, var) else doPlayerSendCancel(cid, "DESCULPA, VOCE NAO TEM ".. resetmin .." RESET PARA USAR ESSA SPELL.") doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) end return true end  
  8. Vodkart's post in (Resolvido)ajuda a terminar esse script de quest was marked as the answer   
    @hiquezerah sim, todos os players recebem um time de 24 horas para voltar a fazer a quest, essa storage é ó para controlar esse time.
  9. Vodkart's post in (Resolvido)Morrer e dropar tudo e após passar rook itens nao vem do script de first itens was marked as the answer   
    setPlayerStorageValue(cid, 30001, 1)
     
    o certo é
     
    setPlayerStorageValue(cid, 30002, 1)
    outra coisa que não entendo, no eu servidor começa em voc? ai quando ganha voc tem que vir mais itens?
  10. Vodkart's post in (Resolvido)[GLOBALEVENT] Ganhar item se player tiver em determinada area was marked as the answer   
    @poko360 o problema é o 'return true' no lugar errado, você está parando o looping.
     
    function onThink(interval, lastExecution) local from, to = {x = 148, y = 49, z = 7}, {x = 170, y = 60, z = 7} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), from, to) then doPlayerAddItem(pid, 2152, 4) doSendAnimatedText(getCreaturePosition(pid), '+400$', 65) end end return true end  
  11. Vodkart's post in (Resolvido)[Ajuda] Script com erro was marked as the answer   
    local table = { itemNeed = 2205, -- Mesmo id do itemid que você colocou na tag xml. delay = 1000 -- Tempo que vai ficar saindo } function doPlayerLoopEff(cid) if not isCreature(cid) then return LUA_ERROR end local sto = getPlayerStorageValue(cid, 2399) - os.time() local x = sto > 0 and 2 or 1 local mpAdd = math.random(500, 500)*x if isPlayer(cid) and getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == table.itemNeed then doSendAnimatedText(getThingPos(cid), "+" .. mpAdd .. "MP", TEXTCOLOR_LIGHTGREEN) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doCreatureAddMana(cid, mpAdd) addEvent(function() doPlayerLoopEff(cid) end, table.delay) end return true end function onEquip(cid, item, slot) doPlayerLoopEff(cid) return true end  
  12. Vodkart's post in (Resolvido)colocar efeito nesse npc was marked as the answer   
    depois dessa linha:
    setPlayerStorageValue(cid,addoninfo.storageID,1) adiciona
    doSendMagicEffect(getPlayerPosition(cid), 10) -- 10 é o numero do efeito  
  13. Vodkart's post in (Resolvido)Problemas com Auto Loot - TFS 0.3.7 was marked as the answer   
    está faltando bastante função!!
     
    coloca todas essas funções na sua lib:
     
    -- lib and functions by Vitor Bertolucci (Killua) function warnPlayersWithStorage(storage, value, class, message) -- By Killua if not value then value = 1 end if not class then class = MESSAGE_SATUS_CONSOLE_WARNING end if not storage or not message then return end if #getPlayersOnline() == 0 then return end for _, pid in pairs(getPlayersOnline()) do if getPlayerStorageValue(pid, storage) == value then doPlayerSendTextMessage(pid, class, message) end if getPlayerAccess(pid) >= 4 then doPlayerSendTextMessage(pid, class, "Message to those with storage "..storage..message) -- Gms will always receive the messages end end end function getPlayerStorageZero(cid, storage) -- By Killua local sto = getPlayerStorageValue(cid, storage) return sto > 0 and sto or 0 end function getStorageZero(storage) -- By Killua local sto = getGlobalStorageValue(storage) return sto > 0 and sto or 0 end function countTable(table) -- By Killua local y = 0 if type(table) == "table" then for _ in pairs(table) do y = y + 1 end return y end return false end function getPlayersInArea(frompos, topos) -- By Killua local players_ = {} local count = 1 for _, pid in pairs(getPlayersOnline()) do if isInArea(getCreaturePosition(pid), frompos, topos) then players_[count] = pid count = count + 1 end end return countTable(players_) > 0 and players_ or false end function getGuildNameByID(gid) -- By Killua local query = db.getResult("SELECT `name` FROM `guilds` WHERE `id` = '"..gid.."'") if query:getID() == -1 then return false end local name = query:getDataString("name") query:free() return name end function getContainerItemsInfo(containerUid) -- By Killua local table = {} if containerUid and containerUid > 0 then local a = 0 for i = 0, getContainerSize(containerUid) do local item = getContainerItem(containerUid,i) a = a + 1 table[a] = {uid = item.uid, itemid = item.itemid, quant = item.type} end return table end return false end function getTableEqualValues(table) -- By Killua local ck = {} local eq = {} if type(table) == "table" then if countTable(table) and countTable(table) > 0 then for i = 1, countTable(table) do if not isInArray(ck, table[i]) then ck[i] = table[i] else eq[i] = table[i] end end return countTable(eq) > 0 and eq or 0 end end return false end function killuaGetItemLevel(uid) -- By Killua local name = getItemName(uid) local pos = 0 for i = 1, #name do if string.byte(name:sub(i,i)) == string.byte('+') then pos = i + 1 break end end return tonumber(name:sub(pos,pos)) end k_table_storage_lib = { filtrateString = function(str) -- By Killua local tb, x, old, last = {}, 0, 0, 0 local first, second, final = 0, 0, 0 if type(str) ~= "string" then return tb end for i = 2, #str-1 do if string.byte(str:sub(i,i)) == string.byte(':') then x, second, last = x+1, i-1, i+2 for t = last,#str-1 do if string.byte(str:sub(t,t)) == string.byte(',') then first = x == 1 and 2 or old old, final = t+2, t-1 local index, var = str:sub(first,second), str:sub(last,final) tb[tonumber(index) or tostring(index)] = tonumber(var) or tostring(var) break end end end end return tb end, translateIntoString = function(tb) -- By Killua local str = "" if type(tb) ~= "table" then return str end for i, t in pairs(tb) do str = str..i..": "..t..", " end str = "a"..str.."a" return tostring(str) end } function setPlayerTableStorage(cid, key, value) -- By Killua return doPlayerSetStorageValue(cid, key, k_table_storage_lib.translateIntoString(value)) end function getPlayerTableStorage(cid, key) -- By Killua return k_table_storage_lib.filtrateString(getPlayerStorageValue(cid, key)) end function setGlobalTableStorage(key, value) -- By Killua return setGlobalStorageValue(key, k_table_storage_lib.translateIntoString(value)) end function getGlobalTableStorage(key) -- By Killua return k_table_storage_lib.filtrateString(getGlobalStorageValue(key)) end function printTable(table, includeIndices,prnt) -- By Killua if includeIndices == nil then includeIndices = true end if prnt == nil then prnt = true end if type(table) ~= "table" then error("Argument must be a table") return end local str, c = "{", "" for v, b in pairs(table) do if type(b) == "table" then str = includeIndices and str..c.."["..v.."]".." = "..printTable(b,true,false) or str..c..printTable(b,false,false) else str = includeIndices and str..c.."["..v.."]".." = "..b or str..c..b end c = ", " end str = str.."}" if prnt then print(str) end return str end function checkString(str) -- By Killua local check = true for i = 1, #str do local letra = string.byte(str:sub(i,i)) if letra >= string.byte('a') and letra <= string.byte('z') or letra >= string.byte('A') and letra <= string.byte('Z') or letra >= string.byte('0') and letra <= string.byte('9') then check = true else check = false break end end return check end function isWalkable(cid, pos, considerCreatures) -- By Killua if considerCreatures == nil then considerCreatures = true end if getTopCreature(pos).uid and getTopCreature(pos).uid > 0 then if considerCreatures then return false else return true end end pos.stackpos = 0 if getTileThingByPos(pos).uid ~= 0 then if doTileQueryAdd(cid, pos) == RETURNVALUE_NOERROR then return true end end return false end function isArmor(uid) -- By Killua if tonumber(getItemAttribute(uid,"armor")) and tonumber(getItemAttribute(uid,"armor")) > 0 and getItemWeaponType(uid) == 0 then return true end return false end function isWeapon(uid) -- By Killua return getItemWeaponType(uid) ~= 0 end function isShield(uid) -- By Killua return getItemWeaponType(uid) == 5 end function isSword(uid) -- By Killua return getItemWeaponType(uid) == 1 end function isClub(uid) -- By Killua return getItemWeaponType(uid) == 2 end function isAxe(uid) -- By Killua return getItemWeaponType(uid) == 3 end function isBow(uid) -- By Killua return getItemWeaponType(uid) == 4 end function isWand(uid) -- By Killua return getItemWeaponType(uid) == 7 end  
  14. Vodkart's post in (Resolvido)agregar x time was marked as the answer   
    @popitox o code box do forum bugando de novo!
     
    usa: https://pastebin.com/raw/TkD5L97M
  15. Vodkart's post in (Resolvido)como eu pego uma function que conta quantos char online tem na acc? was marked as the answer   
    function getPlayerSameAcc(cid) local t = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerAccountId(cid) == getPlayerAccountId(pid) then t[#t+1] = pid end end return t end  
     
    ai poderia usar assim:
     
    if #getPlayerSameAcc(cid) > 1 then -- bloco end  
  16. Vodkart's post in (Resolvido)Trocar alavanca por piso was marked as the answer   
    @diarmaint 
    local newpos9 = {x = 229,y = 13,z = 7} function efekts3(cid) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Welcome on Ot!\n\n Go talk to NPC Yama and start your adventure!\n Firstly visit train room, hunt some wolfes and remember about !mission.") end function onStepIn(cid, fromPosition, toPosition) if getPlayerStorageValue(cid, 50002) > 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid,22,"You have it done.") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end doSendMagicEffect(getPlayerPosition(cid), 3) setPlayerStorageValue(cid, 50002,1) doTeleportThing(cid, newpos9) doSendMagicEffect(newpos9, 33) if getPlayerStorageValue(cid, 50031) <= 0 then addEvent(efekts3, 500, cid) setPlayerStorageValue(cid, 50031, 1) end return true end  
  17. Vodkart's post in (Resolvido)Bloquear o trade de determinado item was marked as the answer   
    https://otland.net/threads/item-not-able-to-trade.147127/
  18. Vodkart's post in (Resolvido)[PEDIDO] effect no monstro ao player aparecer na tela was marked as the answer   
    function onThink(cid, interval, lastExecution) local monster_name = "Boss Iziris" -- nome do monstro local storage, exhausted = 986542, 60 local effect = 45 local t = getSpectators(getPlayerPosition(cid), 7, 5, false) -- tela do player 7x5 sqm (pode alterar) if t then for _, ret in ipairs(t) do if isMonster(ret) and getCreatureName(ret) == monster_name and getGlobalStorageValue(storage) <= os.time() then setGlobalStorageValue(storage, os.time()+exhausted) doSendMagicEffect(getCreaturePosition(ret), effect) end end end return true end  
    @Brunds acho que não dá certo, porque o cid dos monstros é único, digamos que para todos os demons seja 38374767
     
     
  19. Vodkart's post in (Resolvido)Colocar Look Para mostrar... was marked as the answer   
    @mullino entao deixa eu ver o script que adiciona dodge e critical, usei pela storage ali dos códigos:
     
    local dodge, critic = 48902,48903
  20. Vodkart's post in (Resolvido)[ERRO] Effect ao item dropar de um monstro! was marked as the answer   
    @Yamborghini 
     
    local stone_effects = { --[itemid] = effect, --Ex.: [11447] = 297, [11442] = 298, } local function sendEffStone(cid, pos, stones) if not isCreature(cid) then return true end for i = 1, 255 do pos.stackpos = i local item = getTileThingByPos(pos) if item.uid ~= 0 then if isContainer(item.uid) then if isContainer(item.uid) and getContainerSize(item.uid) > 0 then for slot=0, (getContainerSize(item.uid)-1) do local stone = getContainerItem(item.uid, slot) if isInArray(stones, stone.itemid) and stone_effects[stone.itemid] then doSendMagicEffect({x= pos.x+1, y= pos.y, z= pos.z}, stone_effects[stone.itemid]) end end end end end end end function onKill(cid, target) local stones = {11453, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11454, 12244, 12232, 12242, 12417, 12419, 12245, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414} --id de todas as stones if ehMonstro(target) and isPlayer(cid) then local pos = getThingPos(target) local pid = getCreatureSummons(cid)[1] addEvent(sendEffStone, 150, pid, pos, stones) end return true end  
  21. Vodkart's post in (Resolvido)Modificação de Script was marked as the answer   
    function onSay(cid, words, param) local charge_price = 1 -- quantidade por carga do item abaixo local item_id = 2159 -- id do item que será removido local slotShield = nil local slotArmor = nil local slotLegs = nil local slotHelmet = nil local slotBoots = nil local slotWeapon = nil local slots = { [1] = {slot=slotHelmet, lib=helmets}, [4] = {slot=slotArmor, lib=armors}, [5] = {slot=slotShield, lib=shields}, [6] = {slot=slotShield, lib=shields}, [7] = {slot=slotLegs, lib=legs}, [8] = {slot=slotBoots, lib=boots} } if weapons[getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid] then slotWeapon = CONST_SLOT_RIGHT elseif weapons[getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid] then slotWeapon = CONST_SLOT_LEFT end if shields[getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid] then slotShield = CONST_SLOT_RIGHT elseif shields[getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid] then slotShield = CONST_SLOT_LEFT end local price = 0 if param == "weapon" then if slotWeapon ~= nil then if (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges") == "Broken") then price = (weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) else price = ((weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges"))) end if doPlayerRemoveItem(cid, item_id, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges", weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) setItemName(getPlayerSlotItem(cid, slotWeapon).uid, getItemNameById(getPlayerSlotItem(cid, slotWeapon).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges")) ..'/'.. weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge ..']') doPlayerSendTextMessage(cid, 22, "Sua weapon foi reparada.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Desculpe mas você não tem "..(price*charge_price).."x "..getItemNameById(item_id).." para reparar sua weapon") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de weapon esta vazio.") end return true end if param == "shield" then if slotShield ~= nil then if (getItemAttribute(getPlayerSlotItem(cid, slotShield).uid, "Charges") == "Broken") then price = (shields[getPlayerSlotItem(cid, slotShield).itemid].charge) else price = ((shields[getPlayerSlotItem(cid, slotShield).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, slotShield).uid, "Charges"))) end if doPlayerRemoveItem(cid, item_id, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, slotShield).uid, "Charges", shields[getPlayerSlotItem(cid, slotShield).itemid].charge) setItemName(getPlayerSlotItem(cid, slotShield).uid, getItemNameById(getPlayerSlotItem(cid, slotShield).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, slotShield).uid, "Charges")) ..'/'.. shields[getPlayerSlotItem(cid, slotShield).itemid].charge ..']') setItemDefense(getPlayerSlotItem(cid, slotShield).uid, shields[getPlayerSlotItem(cid, slotShield).itemid].def) doPlayerSendTextMessage(cid, 22, "Seu shield foi reparado.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Desculpe mas você não tem "..(price*charge_price).."x "..getItemNameById(item_id).." para reparar seu shield.") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de shield esta vazio.") end return true end if param == "armor" then i = 4 if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then price = (slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) else price = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) end if doPlayerRemoveItem(cid, item_id, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) doPlayerSendTextMessage(cid, 22, "Seu armor foi reparado.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Desculpe mas você não tem "..(price*charge_price).."x "..getItemNameById(item_id).." para reparar sua armor") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de armor esta vazio.") end return true end if param == "legs" then i = 7 if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then price = (slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) else price = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) end if doPlayerRemoveItem(cid, item_id, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) doPlayerSendTextMessage(cid, 22, "Sua legs foi reparada.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Desculpe mas você não tem "..(price*charge_price).."x "..getItemNameById(item_id).." para reparar sua legs.") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de legs esta vazio.") end return true end if param == "boots" then i = 8 if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then price = (slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) else price = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) end if doPlayerRemoveItem(cid, item_id, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) doPlayerSendTextMessage(cid, 22, "Sua boots foi reparada.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Desculpe mas você não tem "..(price*charge_price).."x "..getItemNameById(item_id).." para reparar sua bota.") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de boots esta vazio.") end return true end if param == "helmet" then i = 1 if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then price = (slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) else price = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) end if doPlayerRemoveItem(cid, item_id, price*charge_price) then doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) doPlayerSendTextMessage(cid, 22, "Seu helmet foi reparado.") doSendMagicEffect(getPlayerPosition(cid), 29) else doPlayerSendTextMessage(cid, 23, "Desculpe mas você não tem "..(price*charge_price).."x "..getItemNameById(item_id).." para reparar sua bota") return true end else doPlayerSendTextMessage(cid, 23, "Seu slot de helmet esta vazio.") end return true end local pricetotal = 0 for i=1, 8 do if slots[i] ~= nil then if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges") == "Broken") then pricetotal = ((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) + pricetotal) else pricetotal = (((slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges"))) + pricetotal) end end end end if slotWeapon ~= nil then if (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges") == "Broken") then pricetotal = ((weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) + pricetotal) else pricetotal = (((weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) - (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges"))) + pricetotal) end end if doPlayerRemoveItem(cid, item_id, pricetotal*charge_price) then for i=1, 8 do if slots[i] ~= nil then if slots[i].lib[getPlayerSlotItem(cid, i).itemid] then slots[i].slot = i if isShield(getPlayerSlotItem(cid, i).uid) then setItemDefense(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].def) elseif not isWeapon(getPlayerSlotItem(cid, i).uid) then setItemArmor(getPlayerSlotItem(cid, i).uid, slots[i].lib[getPlayerSlotItem(cid, i).itemid].arm) end doItemSetAttribute(getPlayerSlotItem(cid, i).uid, "Charges", slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge) setItemName(getPlayerSlotItem(cid, i).uid, getItemNameById(getPlayerSlotItem(cid, i).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, i).uid, "Charges")) ..'/'.. slots[i].lib[getPlayerSlotItem(cid, i).itemid].charge ..']') end end end if slotWeapon ~= nil then doItemSetAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges", weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge) setItemName(getPlayerSlotItem(cid, slotWeapon).uid, getItemNameById(getPlayerSlotItem(cid, slotWeapon).itemid)..' [Dur: '.. (getItemAttribute(getPlayerSlotItem(cid, slotWeapon).uid, "Charges")) ..'/'.. weapons[getPlayerSlotItem(cid, slotWeapon).itemid].charge ..']') end doPlayerSendTextMessage(cid, 22, "Seus itens foram reparados.") doSendMagicEffect(getPlayerPosition(cid), 30) else doPlayerSendTextMessage(cid, 23, "Desculpe, Você não possui "..(pricetotal*charge_price).."x "..getItemNameById(item_id).." para reparar todos os itens") return true end return TRUE end  
  22. Vodkart's post in (Resolvido)Task system 3.0 nao conta mostros was marked as the answer   
    @leozincorsair troca essa linha:
     
    if isMonster(target) and not isSummon(target) then
    por
    if isMonster(target) then  
  23. Vodkart's post in (Resolvido)AJUDA SCRIPTS ACTION - TFS 0.4 was marked as the answer   
    galera ele só quer poder adicionar mais itens conforme os points, digamos que com 12 points vem aquela porrada de itens... exemplo assim:
     
    local lever = { [7200] = {amount = 12, items = {{2474,1},{12568,1},{2469,1},{11114,1},{2181,1},{7365,1},{8905,1},{12001,1}}}, [7138] = {amount = 200, items = {{7903,1},{7884,1},{7885,1},{7886,1},{8911,1},{7363,1},{7460,1},{7390,1}}}, [7146] = {amount = 300, items = {{7900,1},{7899,1},{7894,1},{7891,1},{12597,1},{12391,1},{3974,1},{2446,1}}} } function getItemsLevers(cid, items) local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID for _, i_i in ipairs(items) do local item, amount = i_i[1],i_i[2] if isItemStackable(item) or amount == 1 then doAddContainerItem(backpack, item, amount) else for i = 1, amount do doAddContainerItem(backpack, item, 1) end end end end function getItemsFromList(items) local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1]) if i ~= table.maxn(items) then str = str .. ', ' end end end return str end local storage,exausted = 98762, 2 function onUse(cid,item,fromPosition,itemEx,toPosition) if not lever[item.actionid] then return true end local var = lever[item.actionid] if getotfunPoints(cid) < var.amount then return doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "Você precisa de "..var.amount.." Ot Fun points.") elseif getPlayerStorageValue(cid, storage) >= os.time() then return doPlayerSendCancel(cid, "espere " .. getPlayerStorageValue(cid, storage) - os.time() .. " alguns segundos e tente novamente.") end getItemsLevers(cid, var.items) doPlayerSendTextMessage(cid,22,"Você Acaba De Adquirir: " .. getItemsFromList(var.items)) doPlayerRemoveotfunPoints(cid,var.amount) setPlayerStorageValue(cid, storage, os.time()+exausted) doSendMagicEffect(getCreaturePosition(cid), math.random(28,30)) doTransformItem(item.uid, item.itemid == 1740 and 1740 or 1740) -- troque aqui o id da alavanca return true end  
     
    --------------------------------
     
    agora você pode adicionar quantos items quiser, só colocar {itemid, amount}
     
    exemplo:
     
    items = {{2173,1},{2160,10}}
     
    ai para adicionar mais itens ficaria:
     
    items = {{2173,1},{2160,10},{2494,1}}
  24. Vodkart's post in (Resolvido)Script simples de teleportar was marked as the answer   
    @HisokaFail 
     
    local ret = { {{x = 1083, y = 1036, z = 13}, {x = 1067, y = 1035, z = 13}}, ---- [{pisa aqui}] = {vai parar aqui} {{x = 1085, y = 1037, z = 13}, {x = 1069, y = 1038, z = 13}}, } function onStepIn(cid, item, fromPosition, item2, topos) if not isPlayer(cid) then return true end for i = 1,#ret do if isPosEqualPos(ret[i][1], topos) then doTeleportThing(cid, ret[i][2]) break end end return true end  
  25. Vodkart's post in (Resolvido)Buff é mostrado nas informações de outro script was marked as the answer   
    verdade, vou usar o do Vita Sio como exemplo, ficou assim:
     
     
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 20 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) local store = 789651 -- valor da storage escolhido setPlayerStorageValue(variantToNumber(var), store, os.time()+config.tempo) return doCombat(cid, combat, var) end  
    ------------------------------------------------------------------------
     
    Testa a spell do Vita Sio - Vida // e fala se funcionou.

Informação Importante

Confirmação de Termo