Ir para conteúdo

SmiX

Conde
  • Total de itens

    963
  • Registro em

  • Última visita

  • Dias Ganhos

    2

Tudo que SmiX postou

  1. Você está usando estes itens como alavanca? alavancas = {[1945] = 1946, [1946] = 1945} Se não, use eles e me diga o que acontece.
  2. local effects = {41, 20, 12} -- Aqui bote o efeitos que irão sair local spell_config = { [1] = { damage = COMBAT_FIREDAMAGE, areaEffect = CONST_ME_FIREAREA, }, [2] = { damage = COMBAT_ENERGYDAMAGE, areaEffect = CONST_ME_ENERGYAREA, }, [3] = { damage = COMBAT_EARTHDAMAGE, areaEffect = CONST_ME_SMALLPLANTS, } } local combats = {} for _, config in ipairs(spell_config) do local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, config.damage) setCombatParam(combat, COMBAT_PARAM_EFFECT, config.areaEffect) function onGetFormulaValues(cid, level, skill, attack, factor) return -(((skill + 25) / 3) + (level / 5)), -((skill + 25) + (level / 5)) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") table.insert(combats, {combat, config.shootEffect}) end function onCastSpell(cid, var) local function doSendDistance(cid, target, effect) if not isCreature(cid) or not isCreature(target) then return end doSendDistanceShoot(getThingPos(cid), getThingPos(target), effect) end for n = 1, #combats do addEvent(doCombat, n * 100, cid, combats[n][1], var) for _, efid in pairs(effects) do addEvent(doSendDistance, n * 100, cid, getCreatureTarget(cid), efid) end end return true end Agora ta funcionando. Não está 100% do seu gosto, acho eu.
  3. Não testado: data/creaturescripts/scripts/killMonsterInArea.lua local config = { position_initial = {x=1, y=2, z=3}, -- Posição superior direita da sala position_end = {x=4, y=5, z=6}, -- Posição inferior direita da sala corpses_id = {2916, 2917, 2918, 2919}, -- Todos os ids do corpses posicao_of_teleport = {x=7, y=8, z=9}, -- Posição para onde o teleporte vai mandar o player teleport_actionid = 1837, -- Actionid do telport, não precisa colocar esse id no mapa editor. } function onDeath(cid) for x = config.position_initial.x, config.position_end.x do for y = config.position_initial.y, config.position_end.y do for z = config.position_initial.z, config.position_end.z do forArea = {x = x, y = y, z = z, stackpos = 253} getCorpses = getThingFromPos(forArea) if isMonster(getCorpses.uid) then break end for i = 1, #config.corpses_id do if isInArray(getCorpses.uid, getTileItemById(getCorpses, i)) then local teleport = doCreateTeleport(1387, config.posicao_of_teleport, config.posicao_of_teleport) doItemSetAttribute(teleport, "aid", config.teleport_actionid) end end end end end end tag: <event type="death" name="monsterKillInArea" event="script" value="killMonsterInArea.lua"/> Agora vai no arquivo do 'demon' depois de: <loot> </loot> adicione essas linhas: <script> <event name="monsterKillInArea"/> </script>
  4. Seu otservidor tem algum script que faça isso, ou será alguma função própria dele?
  5. è dificil lucrar com ot? R: Se sua equipe for bem organizada e dedicada, não. tornar ele popular? R: Isso quem diz é o alvo publico, que vai repassando de um por um até que seu servidor esteja lotado. e com mapa proprio e xp bem esquematizado R: Dependi muito do que seu servidor tem a oferecer. Se for um servidor de Tibia, tem que ser muito bem planejado e com muitas ideias inovadoras. e quanto daqui uns dois anos da pra tirar de lucro R: São os players quem dizem isso para você. Mais também é dependente do que você oferece a serviços prestados aos usuários. olha eu acho que todo negocio que a gente abre visionamos o lucro por que se não tivesse não abririamos R: Com certeza, concordo plenamente. aguardo opniões R: Já dei a minha. ^^
  6. Desculpe, meu desconhecimento quanto a esse sistema, mais "Frags System" são as caveiras que o player ganha quando mata um player?
  7. Você pode usar este aqui, e editar no próprio script o tempo da exaustão: local MIN = 500 local MAX = 700 local EMPTY_POTION = 7635 local time_exhaustion = 1 -- Tempo da exautão do player, em segundos. function onUse(cid, item, fromPosition, itemEx, toPosition) if isPlayer(itemEx.uid) == FALSE then return FALSE end if exhaustion.get(cid, 1342) > 0 then doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED) return TRUE end if((not(isKnight(itemEx.uid)) or getPlayerLevel(itemEx.uid) < 80) and getPlayerCustomFlagValue(itemEx.uid, PlayerCustomFlag_GamemasterPrivileges) == FALSE) then doCreatureSay(itemEx.uid, "Only knights of level 80 or above may drink this fluid.", TALKTYPE_ORANGE_1) return TRUE end if doCreatureAddHealth(itemEx.uid, math.random(MIN, MAX)) == LUA_ERROR then return FALSE end exhaustion.set(cid, 1342, time_exhaustion) doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_MAGIC_BLUE) doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1) return TRUE end Ou usar o script passado pelo GuzitoG e editar o 'config.lua' a parte: timeBetweenExActions = 1 -- Tempo de exaustão
  8. Compra e veda do servidores, são proibidas aqui no Xtibia. Alias, não existe essas sources em outro fórum?
  9. local config = { money_requires = 1, monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade alavancas = {[1945] = 1946, [1946] = 1945}, -- Id das alavancas pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}}, } function onUse(cid, item) local alavanca = config.alavancas[item.itemid] if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end if doPlayerRemoveMoney(cid, config.money_requires) then for k, v in pairs(config.monsters) do for i=1, v do local monster = doSummonCreature(k, config.pos[1]) doSendMagicEffect(getThingPos(monster), 10) end end else doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.") return true end end Nãp precisa colocar o "uniqueid" e nem a "actionid" no script, só na tag. Em alavancas são os ids das alavancas a serem puxadas.
  10. local posi = {x=1, y=1, z=1} -- Posicao pra onde vai o player function onStepIn(cid, item, position, lastPosition, fromPosition) if getPlayerLevel(cid) < 51 then doTeleportThing(cid, posi) doSendMagicEffect(getThingPos(cid), 10) else doPlayerSendTextMessage(cid, 27, "Sorry, you need a level 50 minus.") doTeleportThing(cid, lastPosition) end end
  11. skill = { item = 9971, -- Item quantidade = 0, -- Quantidade quantidadeskill = 90, -- Skill adicionada limiteskill = 90 -- Limite } magicLevel = { item = 9971, quantidade = 0, quantidademl = 90, limitedeml = 90 } skillID = { ["club"] = SKILL_CLUB, ["sword"]= SKILL_SWORD, ["axe"] = SKILL_AXE, ["distance"] = SKILL_DISTANCE, ["shielding"] = SKILL_SHIELD } vocationSkill = { -- Vocações - SKILL ["club"] = {4, 8}, ["sword"] = {4, 8}, ["axe"] = {4, 8}, ["distance"] = {3, 7}, ["shielding"] = {4, 8} } vocationMagicLevel = {1, 2, 5, 6} -- Vocações - MAGIC LEVEL protectZone = "sim" function onSay(cid, words, param, channel) if getPlayerStorageValue(cid, 1839) <= 0 then setPlayerStorageValue(cid, 1839, 1) local pid = getPlayerGUID(cid) if (protectZone == "sim") and (not getTilePzInfo(getCreaturePosition(cid))) then doPlayerSendCancel(cid, "Você precisa estar em protection zone pra poder comprar.") end if (param == '') then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Como usar: !comprar club; !comprar magiclevel.") return true end local storage, duration = 5, 5 if (param == 'magiclevel') then if getPlayerMagLevel(cid) < magicLevel.limitedeml then if isInArray(vocationMagicLevel, getPlayerVocation(cid)) then if doPlayerRemoveItem(cid, magicLevel.item, magicLevel.quantidade) then if (os.time() - getPlayerStorageValue(cid, storage)) >= duration then setPlayerStorageValue(cid, storage, os.time()) doRemoveCreature(cid, true) db.executeQuery("UPDATE `players` SET `maglevel` = `maglevel` + ".. magicLevel.quantidademl .." WHERE `id` = ".. pid) else doPlayerSendCancel(cid, "Espere ".. duration .." segundos para comprar novamente.") end else doPlayerSendCancel(cid, "Você não tem o item requerido.") end else doPlayerSendCancel(cid, "Voce não pode comprar magic level.") end else doPlayerSendCancel(cid, "Você chegou no limite de magic level.") end return true end if(skillID[param:lower()]) then if(getPlayerSkill(cid, skillID[param:lower()]) < skill.limiteskill) then if isInArray(vocationSkill[param:lower()], getPlayerVocation(cid)) then if doPlayerRemoveItem(cid, skill.item, skill.quantidade) then if (os.time() - getPlayerStorageValue(cid, storage)) >= duration then setPlayerStorageValue(cid, storage, os.time()) doRemoveCreature(cid, true) db.executeQuery("UPDATE `player_skills` SET `value` = `value` + ".. skill.quantidadeskill .." WHERE `player_id` = ".. pid .. " and `skillID[` = ".. skillID[param:lower()]) else doPlayerSendCancel(cid, "Espere ".. duration .." segundos para comprar novamente.") end else doPlayerSendCancel(cid, "Você não tem o item requerido.") end else doPlayerSendCancel(cid, "Voce não pode comprar este skill.") end else doPlayerSendCancel(cid, "Você chegou no limite de skill.") end else doPlayerSendCancel(cid, "Skill desconhecida.") end else doPlayerSendCancel(cid, "Você já usou esse comando um vez.") end return true end
  12. local config = { money_requires = 1, monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade alavancas = {[1945] = 1946, [1946] = 1945}, pos = {{x=990,y=1048,z=7}, {x=995,y=1049,z=7}}, } function onUse(cid, item) local alavanca = config.alavancas[item.itemid] if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end if doPlayerRemoveMoney(cid, config.money_requires) then for k, v in pairs(config.monsters) do for i=1, v do local monster = doSummonCreature(k, config.pos[1]) doSendMagicEffect(getThingPos(monster), 10) end end else doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.") return true end end Pronto, agora você só precisa editar as posições. OBS: sempre deixe duas posições na tabela "pos".
  13. SmiX

    magia...

    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionFormula(condition, -0.9, 0, -0.9, 0) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  14. local config = { money_requires = 1, monsters = {["Rat"] = 3, ["Tiger"] = 2}, -- Nomde do montros e quantidade alavancas = {[1945] = 1946, [1946] = 1945}, } function onUse(cid, item) local alavanca = config.alavancas[item.itemid] if alavanca ~= nil then doTransformItem(item.uid,alavanca[1]) end if doPlayerRemoveMoney(cid, config.money_requires) then for k, v in pairs(config.monsters) do for i=1, v do local monster = doSummonCreature(k, getClosestFreeTile(cid, getThingPos(cid))) doSendMagicEffect(getThingPos(monster), 10) end end else doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.") return true end end tag: <action actionid="2032" event="script" value="summonMonster.lua"/> Botei por actionid mesmo. ^^
  15. 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) return TRUE end
  16. data/actions/scripts/summonMonster.lua: local config = { money_requires = 1, monsters = {"Rat", "Cave Rat"}, -- Pode colocar mais monstros, o respawn vai ser aleatório } function onUse(cid, item) if doPlayerRemoveMoney(cid, config.money_requires) then local monster = doCreateMonster(config.monsters[math.randon(#config.monsters)], getClosestFreeTile(cid, getThingPos(cid))) doSendMagicEffect(getThingPos(monster), 21) doTransformItem(item.uid, item.itemid+1) addEvent(doTransformItem, 2000, item.uid, item.itemid-1) else doPlayerSendTextMessage(cid, 27, "Sorry, you need a "..config.money_requires.." for summon monster.") return true end end tag: <action itemid="id da alavanca" event="script" value="summonMonster.lua"/>
  17. Porque o player não começa com o exhaustion, então lancei o "if not x then" para ele começar com o exhaustiom no valor 0, só esqueci o "exhaustion.set"... function onLogin(cid) if getPlayerStorageValue(cid, 12345) == 1 then local x = exhaustion.get(cid, 12346) or 0 exhaustion.set(cid, 12346, 60) if x > 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The exhaustion is in "..x.." seconds.") end end end
  18. Não intendi muito bem, mais eu fiz da seguinte forma: Se o player estiver com a storage "12345" no valor 1 o script passara para a próxima checagem e mostrara ao player quanto tempo ele tem de exhaustion. function onLogin(cid) if getPlayerStorageValue(cid, 12345) == 1 then local x = exhaustion.get(cid, 12346) if not x then x = 0 end if x > 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The exhaustion is in "..x.." seconds.") end end end
  19. SmiX

    Dúvidas com funções

    Vlw mano agora sim eu intendi... Pena que não posso dar rep+ a todos que ajudaram, vou dar rep+ pra o primeiro que me ajudou.(Os utimos serão os primeiros) vlw brun123.
  20. Mesmo se ele der logout, ficara com o exhauti. E para checar o tempo que resta você usa a estrutura seguinte: local tsm = { storage = 2338, time = function()return exhaustion.get(cid, storage)end, } if tsm.time(cid, tsm.storage) < 10 then print("SmiX é lindo") end Acima acontece o seguinte; se o tempo da storage for menor que 10 segundo ele manda printar, uma verdade, "SmiX é lindo".
  21. SmiX

    S.O.S Curso

    Eu tive um amigo que precisou fazer o curso de iniciante, como a balconista citou. Mais ele precisava mesmo, teve uma hora da aula em que o professor dele pediu, pra que os alunos colocassem o "mouse" no relógio e, ele colocou o "mouse" em cima do relógio de pulso dele. :x tenso Se eu fosse você faria o que ela recomendou e depois faria um avançados.. A pressa é a inimiga da perfeição.
  22. Eu faria de um modo mais facil e simples: local delay, storage = 60, 2737 exhaustion.set(cid, storage, delay)
  23. SmiX

    Dúvidas com funções

    Vlw caotic, mas ainda não intendi o "os.time()"...
  24. SmiX

    Dúvidas com funções

    Poderiam me dar alguns exemplos, para melhor intendimento.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...