Ir para conteúdo
  • Cadastre-se

MaTTch

Membro
  • Total de itens

    510
  • Registro em

  • Última visita

  • Dias Ganhos

    12

Tudo que MaTTch postou

  1. Verdade. Tinha me esquecido que minha libs é modificada. @Topic Tenta usar o script que eu editei logo antes do post do Garou, mas deixa como função o callback.
  2. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local config = { strg1 = 200201, -- storage começando a task strg2 = 91001, -- storage finalizou a task (ganha qnd matar os monstros) idiom = 8971 } function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end functi
  3. Infelizmente eu não entendo de PHP, você vai ter que pedir ajuda a quem mexe com site.
  4. Aé, esqueci kk Aqui: local configSpell = { pushSqms = 3, -- quantos sqm vai empurrar exhaustStorage = 55230, -- se quiser pode mudar exhaustTime = 5 -- exhausted em segundos } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 20) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6.3, 0, -7.3, 0) local function isWalkable(pos, creature, pz, proj) if(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0) then return false end if(getTil
  5. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 20) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6.3, 0, -7.3, 0) local function isWalkable(pos, creature, pz, proj) if(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0) then return false end if(getTilePzInfo(pos) and not pz) then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if(tile.itemid ~= 0 and not isCreature(tile.uid)) t
  6. Troca o script por esse: local config = { removeItem = "yes", strInName = "[VIP] ", vipStorage = 13500, vipDays = 15 } config.removeItem = getBooleanFromString(config.removeItem) function onUse(cid, item, fromPosition, itemEx, toPosition) local name, guid = getCreatureName(cid), getPlayerGUID(cid) doRemoveItem(item.uid, config.removeItem and 1 or 0) setPlayerStorageValue(cid, config.vipStorage, (config.vipDays*24*60*60) + os.time()) doRemoveCreature(cid) db.query("UPDATE `players` SET `name` = '"..config.strInName..""..name.."' WHERE `id` = "..guid..";")
  7. Tenta assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 20) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6.3, 0, -7.3, 0) local function isWalkable(pos, creature, pz, proj) if(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0) then return false end if(getTilePzInfo(pos) and not pz) then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(p
  8. Isso seria um problema, pois e se tivesse um objeto block (walls por exemplo) atras ou na frente do target?
  9. Tenta trocar: db.executeQuery por: db.query
  10. local config = { removeItem = "yes", strInName = "[VIP] " } config.removeItem = getBooleanFromString(config.removeItem) function onUse(cid, item, fromPosition, itemEx, toPosition) local name, guid = getCreatureName(cid), getPlayerGUID(cid) doRemoveItem(item.uid, config.removeItem and 1 or 0) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `name` = '"..config.strInName..""..name.."' WHERE `id` = "..guid..";") return true end Agora só adicionar a TAG em actions
  11. http://www.tibiaking.com/forum/topic/39025-puxarempurrar-conjunto-de-spells/ Você pode usar a ferramenta de pesquisa ali no canto superior.
  12. local name, guid = getCreatureName(cid), getPlayerGUID(cid) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `name` = '[VIP] "..name.."' WHERE `id` = "..guid..";")
  13. Tipo isso: local config = { [13401] = "C16 Doll", [13402] = "Goku Doll", [13403] = "Vegeta Doll", } local rand = {} for itemid, _ in pairs(config) do table.insert(rand, itemid) end rand = rand[math.random(#rand)] doItemSetAttribute(doPlayerAddItem(cid, rand), "name", ""..config[rand].." / "..getCreatureName(cid).." completou todas tasks") ?
  14. Acho que ninguém fará isso de graça, pois da muito trabalho.
  15. Acho que entendi agora, o effect por ser "torto" tem que ter sua posição declarada. Tenta assim: local combat, combat_effect = createCombatObject(), createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6.3, 0, -7.3, 0) local arrs = { createCombatArea({ -- combat {1,1,1,1,1}, {1,1,1,1,1}, {1,1,1,1,1}, {1,1,1,1,1}, {1,1,1,1,1}, {1,1,1,1,1}, {0,0,2,0,0} }), createCombatArea({ -- effect {0,0,0,0,0}, {1,0,1,0,1}, {0,0,0,
  16. Não entendi muito bem... Mas fiz um aqui pra ver: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6.3, 0, -7.3, 0) local arr = createCombatArea({ {1,1,1}, {1,1,1}, {1,1,1}, {1,3,1} }) setCombatArea(combat, arr) function onTargetTile(cid, pos) local dir = getCreatureLookDirection(cid) if(dir == NORTH) then doSendMagicEffect(pos, 98) -- aqui voce configura os efeitos das direcoes elseif(dir == EAST) then doSendMagicEffect(pos, 96) elseif(di
  17. Magia de paralyzar: local config = { storage = 11111, paralyzeTime = 5, -- em segundos } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 100) setConditionFormula(condition, -0.9, 0, -0.9, 0) local function keepParalyze(target) if(isPlayer(target) and exhaustion.check(target, config.storage) or isMonster(target)) then doAddCondition(target, condition) end end function onTargetCreature(cid, target) if
  18. Bom... Já faz um tempo que eu tenho essa duvida sobre metatables, e queria saber como funcionam e o que fazem. Eu resolvi procurar sobre quando eu me deparei com uma delas nas libs do servidor: Mas nunca cheguei a uma conclusão, por isso eu decidi criar esse post pedindo a ajuda de vocês, espero que alguém saiba como isso funciona.
  19. function onSay(cid, words, param) if(param == "") then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command need a player name param.") end local pid = getPlayerByNameWildcard(param) if(not pid) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not exist or is offline.") end local result, retInt = db.getResult("SELECT `unjustified` FROM `killers` WHERE `id` IN (SELECT `kill_id` FROM `player_killers` WHERE `player_id` = "..getPlayerGUID(pid)..");"), result:getDataInt("unjustified") if(result:getID() ~= -1) then if(retInt >= 0) th
  20. Vá em globalevents/scripts crie um arquivo LUA e dentro coloque isso: local config = { --["nome do texto"] = {position} -- Lembrando que o texto é limitado para apenas 9 caracteres. ["Texto1"] = {x=160, y=52, z=6}, ["Texto2"] = {x=160, y=52, z=6}, ["Etc..."] = {x=160, y=52, z=6} } function onThink(cid, interval, lastExecution) for text, pos in pairs(config) do doSendAnimatedText(pos, text, math.random(1,255)) end return true end e em globalevents.xml adicione a TAG: <globalevent name="EVENT_NAME" interval="1000" event="script" value="NOME_DO_ARQUIVO.lua"
  21. No erro esta falando que sua TAG ainda ta como "target". Coloque como "attack"
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo