Ir para conteúdo

carloos

Membro
  • Registro em

  • Última visita

Tudo que carloos postou

  1. po mano só sei o antigo que era 3.6, agora esta 4.0 sumiu todas as criaturas do rmeres
  2. alguém poderia me ajudar pf ? atualizei o tfs do meu server e nao tinha um erro se quer, mas agora apareceu centanas de erros nas criaturas e quando abre o mapa da erro no spawn e house. nao sei o que fazer alguém me ajuda pf ? ja atualizei os nomes para letras minusculas e nao teve jeito da esses erros na distro
  3. nao estou conseguindo colocar meu servidor 8.6 online. alguem me ajuda pf meu whats 87 9.99565166 GRATIFICAREI COM 50TAO NO PIX.
  4. o que mudaria o ondeath para o onkill ?
  5. mas de qualquer forma depois que ele ganhar a storage apos matar os 4 bosses ela nao iria ficar pra sempre? ou seja, apos matar o boss 1 vez os 4, poderá passar pela porta sempre no periodo de 48h. preciso que para passar por essa porta seja necessario fazer acesso no minimo a cada 48h, acesso leia-se matar os 4 bosses.
  6. mas a magica está por trás de liberar o acesso matando os 4 bosses a cada 48h, e nao em uma porta aleatoria que so passa a cada 48h @koyotestark
  7. é 0.4
  8. ele hoje ja funciona assim: sao 4 bosses e só é permitida a entrada pela porta de tiver o storage dos 4 bosses. o que eu queria ? que ao matar os 4 bosses ganhassem essas storagens, que duram 48H, e para passar é necessario matar todos os 4 a cada 2 dias
  9. e uma porta, que so passa se matar os 4 bosses
  10. testei o primeiro e nao funcionou testei o segundo e foi igual o primeiro. me ajuda!
  11. alguem poderia me ajudar com 1 script POR FAVOR queria que essa storage a qual a criatura entrega ao morrer durasse apenas 48h e depois disso ela volte a 0 local monsters = { ["Energy Soul"] = 6640, ["Mazoran"] = 6641, ["Brother Freeze"] = 6642, ["Fleshcrawler"] = 6643 } function onDeath(cid, corpse, deathList) local t = monsters[getCreatureName(cid)] if t then for _, pid in ipairs(deathList) do if isCreature(pid) and isPlayer(pid) then if getPlayerStorageValue(pid, t) <= 0 then setPlayerStorageValue(pid, t, 1) doCreatureSay(pid,"Voce nao tera chance contra o grande Deathbine!",TALKTYPE_ORANGE_1) end end end end return true end
  12. MUITO OBRIGADO PELA ATENÇAO. acabei de testar e agora está dando este erro me ajuda pf [Error - Action Interface] data/actions/scripts/alavanca/bossdeath.lua:onUse Description: (luaGetThingFromPos) Tile not found
  13. e nao é que funcionou. mas ficou aparecendo isso. [Error - Action Interface] data/actions/scripts/alavanca/bosspox.lua:onUse Description: (luaDoCreatureSetStorage) Creature not found
  14. alguem poderia me ajuda para esse sistema de alavanca levar de 1 a 10 players igual no global e nao só apenas 10 ? -- CONFIG -- local playersOnly = "no" local questLevel = 1 local STORAGE_BOSS_CD = 17457 local cdtime = 1 * 1 * 1 -- exhaust in seconds local room = { -- boss room fromX = 1802, fromY = 675, fromZ = 7, -------------- toX = 1868, toY = 724, toZ = 7 } local monster_pos = { [1] = {pos = {1837, 716, 7}, monster = "Cursed Prospector Soul"} } local players_pos = { {x = 1834, y = 702, z = 6, stackpos = 253}, {x = 1834, y = 701, z = 6, stackpos = 253}, {x = 1835, y = 701, z = 6, stackpos = 253}, {x = 1836, y = 701, z = 6, stackpos = 253}, {x = 1837, y = 701, z = 6, stackpos = 253}, {x = 1838, y = 701, z = 6, stackpos = 253}, {x = 1837, y = 702, z = 6, stackpos = 253}, {x = 1836, y = 702, z = 6, stackpos = 253}, {x = 1835, y = 702, z = 6, stackpos = 253}, {x = 1838, y = 702, z = 6, stackpos = 253} } local new_player_pos = { {x = 1830, y = 715, z = 7}, {x = 1842, y = 715, z = 7}, {x = 1836, y = 720, z = 7}, {x = 1836, y = 710, z = 7}, {x = 1836, y = 715, z = 7}, {x = 1836, y = 715, z = 7}, {x = 1835, y = 713, z = 7}, {x = 1833, y = 721, z = 7}, {x = 1838, y = 718, z = 7}, {x = 1837, y = 718, z = 7} } -- CONFIG END -- function onUse(cid, item, fromPosition, itemEx, toPosition) local all_ready, monsters, player, level = 0, 0, {}, 0 if item.itemid == 9826 then for i = 1, #players_pos do table.insert(player, 0) end for i = 1, #players_pos do player[i] = getThingfromPos(players_pos[i]) if player[i].itemid > 0 then if string.lower(playersOnly) == "yes" then if isPlayer(player[i].uid) == true then all_ready = all_ready+1 else monsters = monsters+1 end else all_ready = all_ready+1 end end end if all_ready == #players_pos then for i = 1, #players_pos do player[i] = getThingfromPos(players_pos[i]) if isPlayer(player[i].uid) == true then if getPlayerStorageValue(player[i].uid,STORAGE_BOSS_CD) > os.time() then doPlayerSendCancel(cid,"Acesso so liberado a cada 20h.") return false end if getPlayerLevel(player[i].uid) >= questLevel then level = level+1 end else level = level+1 end end if level == #players_pos then if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then for _, area in pairs(monster_pos) do doSummonCreature(area.monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]}) end for i = 1, #players_pos do doSendMagicEffect(players_pos[i], CONST_ME_POFF) doTeleportThing(player[i].uid, new_player_pos[i]) doSendMagicEffect(new_player_pos[i], CONST_ME_ENERGYAREA) setPlayerStorageValue(player[i].uid,STORAGE_BOSS_CD,os.time() + cdtime) end doTransformItem(item.uid,9825) else doPlayerSendTextMessage(cid,19,"Only players can do this quest.") return false end else doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.") return false end else doPlayerSendCancel(cid,"You need "..table.getn(players_pos).." players to do this quest.") return false end elseif item.itemid == 9825 then local player_room = 0 for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 then if isPlayer(thing.uid) == true then player_room = player_room+1 end end end end end if player_room >= 1 then doPlayerSendTextMessage(cid,19,"There is already a team in the quest room.") return false elseif player_room == 0 then for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 then doRemoveCreature(thing.uid) end end end end doTransformItem(item.uid,9826) end end return true end
  15. carloos postou uma resposta no tópico em Suporte Tibia OTServer
    esta menssagem aparece quando o item quebra. consegui resolver obrigado pela atencao
  16. carloos postou uma resposta no tópico em Suporte Tibia OTServer
    muito obrigado pela atençao, mas preciso desse que estou usando, pois ele funciona junto de outro script de DODGE
  17. carloos postou uma resposta no tópico em Suporte Tibia OTServer
    alguem poderia me ajudar com esse erro? sempre que o item quebra e aparece essa mensagem Your Crystal of refinament has failed and destroy your" e vem o erro data/actions/scripts/upgrade.luanUse Description: (luaGetThing) Thing not found --- Perfect refine system by Mock the bear (MTB). --- Email: mock_otnet@hotmail.com -- &a = weapon attack -- &d = weapon defense -- &s = shield defense -- &p = armor defense -- # = nivel do item -- @ = max level local gain = { gainArmor='&p+(2)',loseArmor='&p-(2)', gainShield='&s+(2)',loseShield='&s-(2)', gainAttack='&a+(2)',loseAttack='&a-(2)', gainDefense='&d+(2)',loseDefense='&d-(2)', chance='(100/math.sqrt((((@/4)+(#*2))/@)*#))', maxlvl = 5, blocked_ids = {7878, 2454, 7772, 7863, 7753, 7406, 7857, 7872, 7766, 7747, 7415, 7756, 7866, 7881, 7775, 8905, 8909, 8908, 8906, 8907, 8854, 8851, 10313, 2397, 7385, 8209, 9932, 2358, 2455, 8849, 5803, 2456, 8857, 8855, 8851, 8854, 8853, 8856} -- items que nao podem ser aprimorados } local it = { --[itemid] = [percent] [8300] = 50, -- 50% } 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 local function isArmor(uid) -- Function by Mock the bear. if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then return true end return false end local function isWeapon(uid) -- Function by Mock the bear. uid = uid or 0 local f = getItemWeaponType(uid) if f == 1 or f == 2 or f == 3 then return true end return false end local function isShield(uid) -- Function by Mock the bear. uid = uid or 0 if getItemWeaponType(uid) == 4 then return true end return false end local function isBow(uid) -- Function by Mock the bear. uid = uid or 0 if getItemWeaponType(uid) == 5 then return true end return false end local function getWeaponLevel(uid) -- Function by Mock the bear. uid = uid or 0 local name = getItemName(uid.uid) or getItemInfo(uid.itemid).name or '' local lvl = string.match(name,'%s%+(%d+)%s*') return tonumber(lvl) or 0 end local function doTransform(s,i) -- Function by Mock the bear. local c = string.gsub(s,'@',gain.maxlvl) local c = string.gsub(c,'&a',(getItemAttack(i.uid) ~= 0 and getItemAttack(i.uid) or getItemInfo(i.itemid).attack)) local c = string.gsub(c,'&d',(getItemDefense(i.uid) ~= 0 and getItemDefense(i.uid) or getItemInfo(i.itemid).defense)) local c = string.gsub(c,'&s',(getItemDefense(i.uid) ~= 0 and getItemDefense(i.uid) or getItemInfo(i.itemid).defense)) local c = string.gsub(c,'&p',(getItemArmor(i.uid) ~= 0 and getItemArmor(i.uid) or getItemInfo(i.itemid).armor)) local c = string.gsub(c,'#',getWeaponLevel(i)) local q = assert(loadstring('return '..c)) return math.floor(assert(q())) end function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == 0 or item.itemid == 0 then return false end toPosition.stackpos = 255 if isInArray(gain.blocked_ids, itemEx.itemid) or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5) or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx)) or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then doPlayerSendTextMessage(cid, 24,"You cant refine this item.") return TRUE end if isCreature(itemEx.uid) == TRUE then return FALSE end local level = getWeaponLevel(itemEx) local chance = doTransform(gain.chance,itemEx) if level == gain.maxlvl then doSendMagicEffect(toPosition, 2) return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Your item is on max level, you can't upgrade it.") end doPlayerSendTextMessage(cid, 24,"Trying refine with "..(chance+it[item.itemid] > 100 and 100 or chance+it[item.itemid]).."% of sucess!") if chance+it[item.itemid] >= math.random(0,100) then local nm = getItemName(itemEx.uid) local slot = nm:match('(%[.+%])') or '' ---If you server use slot system dont change it slot = slot~='' and ' '..slot or slot setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level+1)..slot) addEvent(doPlayerSendTextMessage,500,cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Your item has been upgrated to +"..(level+1)..slot..".") doSendMagicEffect(toPosition, 28) if isArmor(itemEx) then local get = doTransform(gain.gainArmor,itemEx) setItemArmor(itemEx.uid,get) elseif isBow(itemEx.uid) then setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx)) elseif isWeapon(itemEx.uid) then setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx)) setItemDefense(itemEx.uid, doTransform(gain.gainDefense,itemEx)) elseif isShield(itemEx.uid) then setItemDefense(itemEx.uid, doTransform(gain.gainShield,itemEx)) end else if level == 0 then addEvent(doPlayerSendTextMessage,500,cid, 24,"No effect.") doSendMagicEffect(toPosition, 2) elseif level > 0 then local nm = getItemName(itemEx.uid) local slot = nm:match('(%[.+%])') or '' ---If you server use slot system dont change it slot = slot~='' and ' '..slot or slot if level == 1 then doRemoveItem(item.uid, 1) getItemNameById(item.itemid) addEvent(doPlayerSendTextMessage,500,cid, MESSAGE_STATUS_CONSOLE_RED,"Your Crystal of refinament has failed and destroyed your " .. getItemNameById(itemEx.itemid) .. " in the process") else doRemoveItem(itemEx.uid, 1) getItemNameById(item.itemid) addEvent(doPlayerSendTextMessage,500,cid, MESSAGE_STATUS_CONSOLE_RED,"Your Crystal of refinament has failed and destroyed your " .. getItemNameById(itemEx.itemid) .. " in the process") end if isArmor(itemEx) then setItemArmor(itemEx.uid,doTransform(gain.loseArmor ,itemEx)) elseif isWeapon(itemEx.uid) then setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx)) setItemDefense(itemEx.uid, doTransform(gain.loseDefense,itemEx)) elseif isBow(itemEx.uid) then setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx)) elseif isShield(itemEx.uid) then setItemDefense(itemEx.uid, doTransform(gain.loseShield,itemEx)) end end doSendMagicEffect(toPosition, 4) end doRemoveItem(item.uid,1) return true end
  18. carloos postou uma resposta no tópico em Suporte Tibia OTServer
    alguém poderia me ajudar com esse script? quando o jogador anda o treino para, queria que acontecesse o mesmo com o dummy, quando alguém empurrar o manequim o treino também acaba. é possível ? ---@ Create by Sarah Wesker | Tested Version: TFS 0.4 ---@ list of training dummies. local dummies = { [9653] = { skillRate = 0.8, skillSpeed = 2 }, [1476] = { skillRate = 0.7, skillSpeed = 3 }, [1477] = { skillRate = 0.7, skillSpeed = 3 }, [1478] = { skillRate = 0.7, skillSpeed = 3 }, [1442] = { skillRate = 0.7, skillSpeed = 3 }, [5787] = { skillRate = 0.5, skillSpeed = 3 } } ---@ Global training parameters of the system. local staminaTries = 1 --# on minutes local skillTries = 1 --# tries by blow local skillSpent = function() return math.random(425, 575) end --# mana consumed by blow local slotForUse = CONST_SLOT_LEFT ---@ list of weapons to train. local weapons = { [7754] = { shootDistEffect = CONST_ANI_FIRE, skillType = SKILL_MAGLEVEL }, -- magicLevel Sor [2426] = { shootDistEffect = CONST_ANI_SPEAR, skillType = SKILL_DISTANCE }, -- distance [7744] = { shootEffect = CONST_ME_BLOCKHIT, skillType = SKILL_SWORD }, -- sword [7750] = { shootEffect = CONST_ME_BLOCKHIT, skillType = SKILL_AXE }, -- axe [7758] = { shootEffect = CONST_ME_BLOCKHIT, skillType = SKILL_CLUB }, -- club [7879] = { shootDistEffect = CONST_ANI_ENERGY, skillType = SKILL_MAGLEVEL }, -- magicLevel Sor [2404] = { shootDistEffect = CONST_ANI_THROWINGKNIFE, skillType = SKILL_DISTANCE }, -- distance [7869] = { shootEffect = CONST_ME_BLOCKHIT, skillType = SKILL_SWORD }, -- sword [7875] = { shootEffect = CONST_ME_BLOCKHIT, skillType = SKILL_AXE }, -- axe [7883] = { shootEffect = CONST_ME_BLOCKHIT, skillType = SKILL_CLUB } -- club } ---@ EDTE is the global event table to control the system correctly. if not EDTE then EDTE = {} end ---@ functions to assign or obtain the training status of a player. function getPlayerExerciseTrain(cid) return EDTE[cid] or false end function setPlayerExerciseTrain(cid, status) EDTE[cid] = status return status end ---@ local training function. local function exerciseDummyTrainEvent(params, weapon) if isPlayer(params.cid) then local item = getPlayerSlotItem(params.cid, slotForUse) local playerPosition = getCreaturePosition(params.cid) if getDistanceBetween(playerPosition, params.currentPos) == 0 and item.itemid == params.itemid then local weaponCharges = getItemAttribute(item.uid, "charges") or getItemInfo(params.itemid).charges local reloadMs = getVocationInfo(getPlayerVocation(params.cid)).attackSpeed * params.dummy.skillSpeed if weaponCharges >= 1 then doItemSetAttribute(item.uid, "charges", weaponCharges -1) if weapon.shootDistEffect then doSendDistanceShoot(playerPosition, params.dummyPos, weapon.shootDistEffect) end if weapon.shootEffect then doSendMagicEffect(params.dummyPos, weapon.shootEffect) end if weapon.skillType == SKILL_MAGLEVEL then doPlayerAddSpentMana(params.cid, (skillSpent() * params.dummy.skillRate) * getConfigValue("rateMagic")) else doPlayerAddSkillTry(params.cid, weapon.skillType, (skillTries * params.dummy.skillRate) * getConfigValue("rateSkill")) end local currentStamina = getPlayerStamina(params.cid) doPlayerSetStamina(params.cid, currentStamina + staminaTries) if weaponCharges <= 1 then exerciseDummyTrainEvent(params, weapon) else setPlayerExerciseTrain(params.cid, addEvent(exerciseDummyTrainEvent, reloadMs, params, weapon)) end return true else doRemoveItem(item.uid) doPlayerSendTextMessage(params.cid, MESSAGE_EVENT_ADVANCE, "Your exercise weapon has expired, therefore your training too.") end else doPlayerSendTextMessage(params.cid, MESSAGE_EVENT_ADVANCE, "You have finished your training.") end end return setPlayerExerciseTrain(params.cid, nil) end function onUse(cid, item, fromPos, target, toPos, isHotkey) local ammo = getPlayerSlotItem(cid, slotForUse) if ammo.uid ~= item.uid then return doPlayerSendCancel(cid, "The weapon must be located in your left hand.") end if not target then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end local playerPosition = getCreaturePosition(cid) if not getTileInfo(playerPosition).protection then return doPlayerSendCancel(cid, "You can only train in protection zone.") end local dummy = dummies[target.itemid] local weapon = weapons[item.itemid] if not weapon or not dummy then return doPlayerSendDefaultCancel(cid, RETURNVALUE_CANNOTUSETHISOBJECT) end local dummyPosition = getThingPosition(target.uid) if getDistanceBetween(playerPosition, dummyPosition) > 6 then return doPlayerSendDefaultCancel(cid, RETURNVALUE_THEREISNOWAY) end if not getPlayerExerciseTrain(cid) then local params = {} params.cid = cid params.currentPos = playerPosition params.dummyPos = dummyPosition params.itemid = item.itemid params.dummy = dummy exerciseDummyTrainEvent(params, weapon) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have started training with dummy.") else doPlayerSendCancel(cid, "You can not train") end return true end
  19. foi isso que eu tinha feito, mas pensei que havia feito algo errado está dando esse erro. TFS0.4
  20. consegui, pode fechar o topico
  21. alguem poderia me ajudar com esse script? nesse script de dodge nao há blocked_ids para bloquear certos itens de receber o dodge igual o script do upgrade é possivel adicionar no dodge igual o upgrade ? DODGE UPGRADE
  22. Como faço para que nesse script eu nao possa usar o item de dentro do bp. e como faço para apenas poder usar-lo se ele estiver em cima de um item com action X? AGRADEÇO A TODOS DESDE JA! quando o uso dentro da bp ele nao sai e aparece esse erro
  23. manda pra mim como ficou o seu dps do edit

Informação Importante

Confirmação de Termo