Ir para conteúdo

Vodkart

Herói
  • Total de itens

    3406
  • Registro em

  • Última visita

  • Dias Ganhos

    112

Histórico de Reputação

  1. Upvote
    Vodkart deu reputação a luisfe23 em Quer Saber Se Algum Jogo Roda Em Seu Pc?   
    Can You Run It é uma ferramenta muito simples do System Requirements Lab, que roda direto de seu navegador e permite que você analise o seu PC completamente para saber se roda um jogo ou não em seu computador.
     
    Clique aqui para acessar o site.
     
    Para começar, você se deparará com uma tela onde poderá selecionar qual o jogo que você quer saber se roda ou não. Para isto, basta clicar em Select Product, e escolher dentre uma lista gigantesca qual o game. Depois, é só apertar o "Can You Run It?".
     



     
    Uma outra tela indicará uma barra de carregamento. Caso seja a sua primeira vez no site, ele pedirá que você instale um plugin para que possa ser feita a análise. Se for no Mozilla Firefox, aparecerá uma caixa de diálogo onde basta clicar em "Run". Caso seja no Internet Explorer, o aviso em amarelo no topo da tela aparecerá, e você deverá clicar nele e selecionar “Executar controle ActiveX”. Depois, aparecerá uma caixa de diálogo e você deve apertar o botão “Instalar”.
     



     
    A barra de carregamento irá encher e você irá para a tela do diagnóstico final de seu PC relacionado ao jogo selecionado no início. Você notará que do lado da caixa do seu jogo terá uma espécie de gráfico que mostra o nível de seu PC entre os requisitos mínimos e o recomendado. Assim, já dá pra ter uma noção de como ficará o jogo, entre lento e rápido.
     



     
    Embaixo terá uma espécie de prancheta, com as abas Minimum e Recommended. Em mínimo, será apresentado qual o requisito mínimo utilizado pelo jogo e, abaixo dele, aparecerá o desempenho de seu Prancheta com o diagnóstico.PC, para comparação. Assim, você terá na tela alguns componentes de seu PC, como a velocidade de seu processador, memória RAM, placa de vídeo etc., seguido pelo mínimo exigido. Ao lado mostrará um pequeno gráfico, com barras e uma linha que divide qual o mínimo que o game requer, além da palavra PASS ou FAIL, indicando se passou ou reprovou no teste.
     
    Clicando na aba Recommended, você notará que é quase igual a Minimum, porém com a configuração recomendada para ter um bom desempenho em seu jogo. Se algum de seus componentes falhar, ele oferecerá dicas para melhorar, com até lojas que vendem peças melhores que atenderiam os requisitos recomendados. Mas, infelizmente, são lojas do exterior.
     
    Se você quiser testar algum outro jogo e saber se roda em seu PC, basta clicar no ícone no canto superior direito com a logo do site escrito “click here to test more products”.
     



     
    Para acessar o site clique aqui.
     

    Artigo:
    baixaki.com.br

     
    Abraços.
  2. Upvote
    Vodkart recebeu reputação de 92889857 em Resultado Ads#34   
    obrigado a todos que votarão nesta ads
    e parabens tanto aos vencedores quanto os participantes!
     
    abraços
  3. Upvote
    Vodkart recebeu reputação de Vilden em Função De Remove Life   


    doPlayerAddHealth(cid,-30)
     
     


    function onUse(cid, item, frompos, item2, topos) local config = { Time1 = 5, -- Para ele não dizer novamente storage = 11791, -- Não mexa aqui! time = 4, -- tempo em minutos pos = {x=148,y=38,z=7}, -- posição da parede que ira sumir paredeid = 1058 -- id da parede } function criar() doCreateItem(config.paredeid, 1, config.pos) end local players = getPlayersOnline() local parede = getTileItemById(config.pos, config.paredeid) if parede then if (getPlayerStorageValue(cid, config.storage) <= os.time()) then doRemoveItem(parede.uid, 1) for _, pid in ipairs(players) do setPlayerStorageValue(pid, config.storage, os.time()+config.Time1*60) end addEvent(criar, config.time*60*1000) else doPlayerSendCancel(cid,"espere a parede ser criada novamente.") end end return 1 end
     
    actions

    <action actionid="8009" script="NOME DO SCRIPT.lua" />
     


    if getPlayerLevel(cid) >= 8 then -- a partir de que level
  4. Upvote
    Vodkart deu reputação a pegarapa em Exevo Mas Pally   
    Ola Galerinha Xtibiana .
     
    Vou postar aqui mas uma magia , Exevo Mas Pally .
     
     
    Você vai lá em Data\Spells\Scripts\Attack
     
    Copie 1 arquivvos , abra-o delete oque tem dentro e cole isto ;
    salve , e feixe . 
    Renomei para maspally .
     
    Abra o Spells.xml e cole isto :
     
    Salve , Feixe .
     
    E é so curtir a magia .
     
    Screen Shot :
     

  5. Upvote
    Vodkart deu reputação a pegarapa em Flam Heart   
    Gente vou postar aqui uma magia , Exevo Flam Heart .
     
    Vai la em Data \ Spells \ scripts \ attack .
     
    Copie um arquivo , abra-o delete oque tem dentro e cole ;
    salve , e feixe. 
    renomeie para flamheart .
     
     
    Abra o spells.xml
     
    e cole
    salve , feixe . 
     
    E é so curtir a magia
     
    Screen Shot
     

  6. Upvote
    Vodkart recebeu reputação de lastdemon em [Movements] Item Que Da Addon   
    obs: coloquei para quando usar o anel dar addon full(altere ao modo que quiser)
     
    script.lua

    function onEquip(cid, item, position, fromPosition) local outfit = {lookType = getCreatureOutfit(cid).lookType, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet, lookAddons = 3} local time = 15 -- tempo em minutos if(item.itemid == 2168 ) then doSetCreatureOutfit(cid, outfit, time*60*1000) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sua aparencia mudou.") end return TRUE end function onDeEquip(cid, item, slot) if(item.itemid == 2168) then doRemoveCondition(cid, CONDITION_OUTFIT) end return TRUE end
     
    movements.xml

    <movevent type="Equip" itemid="2168" slot="ring" event="script" value="script.lua"/> <movevent type="DeEquip" itemid="2168" slot="ring" event="script" value="script.lua"/>
  7. Upvote
    Vodkart deu reputação a Nando3513 em Área Anti-Logout   
    Nao sei se todos map editor tem essa opção Mais o Remere's map editor tem
     
    Clika em Terrain Palette
     
    ali em baixo em Tools
     
    Tem a opção No Logout Tool
     
    é so clicar ali e arrastar a area que vc quer
     
    espero ter ajudado!!
     
    se aprovado me de reputação! :button_ok:
  8. Upvote
    Vodkart recebeu reputação de Alissow em Por Storage Numa Spell?   
    function onCastSpell(cid, var) if getPlayerStorageValue(cid,11487) >= 1 then -- storage 11487 return doCombat(cid, acombat, var) else doPlayerSendCancel(cid, "Desculpe,Só jogadores Vips usam está magia.") end return TRUE end
     
     
    sua spell

    local acombat = createCombatObject() local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 0) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE) function getCombatFormulas(cid, lv, maglv) local formula_min = -((lv*1.5 + maglv*3) * 1.8) local formula_max = -((lv*1.5 + maglv*3) * 2) if(formula_max < formula_min) then local tmp = formula_max formula_max = formula_min formula_min = tmp end return formula_min, formula_max end local arr = { {0, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 3, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 0} } local area = createCombatArea(arr) setCombatArea(acombat, area) function onTargetTile(cid, pos) doCombat(cid,combat,positionToVariant(pos)) end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas") setCombatCallback(acombat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) if getPlayerStorageValue(cid,11487) >= 1 then return doCombat(cid, acombat, var) else doPlayerSendCancel(cid, "Desculpe,Só jogadores Vips usam está magia.") end return TRUE end
  9. Upvote
    Vodkart recebeu reputação de Snooz em Resultado Ads#34   
    obrigado a todos que votarão nesta ads
    e parabens tanto aos vencedores quanto os participantes!
     
    abraços
  10. Upvote
    Vodkart recebeu reputação de williamserravalle em Double Exp Para Vip   
    servidos testado 8.54 ~ 8.60
     
    Quando você compra vip você pode aumentar a taxa de exp em percent que ele irá receber a mais,como se fosse um bonus...
     
    a taxa se modifica aqui:
     
    local rate = 1.5 -- 50%
     
    vermelho:representa o quanto irá subir em %
    caso fosse 20% seria
    local rate = 1.2
    e por ai vai....
     
     
    [ Double exp para o Perfect Vip System ] :
     
     
     
     
    [ Double exp para o Vip System By Account V1.0 ] :
     
     
     
     
    [ Double exp para o Vip System By Mock] :
     
     
  11. Upvote
    Vodkart recebeu reputação de blackboy em [Pedido} Sistema De Trem   
    actions/script
     
     
    Roller.lua

    --[[ Roller Coaster System by Colex ]]-- --[[ Updated by Kydrai ]]-- -- Lib RollerCoaster = {} RollerCids = {} function RollerCoaster:onchangeLevel(cid, fromZ, toZ) return TRUE end function RollerCoaster:onmove(cid, rail, railInfo, pos) return TRUE end function RollerCoaster:onchangeSpeed(cid, power) if power == 2 then doSendAnimatedText(getCreaturePosition(cid),"TROC TROC",210) else doSendAnimatedText(getCreaturePosition(cid),"TSSSIIIIII",210) end return TRUE end function RollerCoaster:onTypeChange(cid, fromType, toType) return TRUE end function RollerCoaster:onExitQuery(cid) RollerCids[cid] = nil return TRUE end function RollerCoaster:onExit(cid) return TRUE end function RollerCoaster:onEnterQuery(cid, cart) return TRUE end function RollerCoaster:onEnter(cid, cartID) return TRUE end -- End Lib local TRAINS = {7131, 7132} local all = {7121, 7122, 7123, 7124, 7125, 7126, 7133, 7134, 7135, 7136} local ACTION_TRAIN = {1001, 1002} local RAILS = { {id = all[1], dirs = {{dir = SOUTH, out = 2},{dir = NORTH, out = 2}}}, {id = all[2], dirs = {{dir = EAST, out = 1},{dir = WEST, out = 1}}}, {id = all[3], dirs = {{dir = EAST, out = 1},{dir = SOUTH, out = 2}}}, {id = all[4], dirs = {{dir = WEST, out = 1},{dir = SOUTH, out = 2}}}, {id = all[5], dirs = {{dir = EAST, out = 1},{dir = NORTH, out = 2}}}, {id = all[6], dirs = {{dir = WEST, out = 1},{dir = NORTH, out = 2}}}, {id = all[7], stop = 1}, {id = all[8], stop = 1}, {id = all[9], stop = 1}, {id = all[10], stop = 1}, } local SLOW = 125 local FAST = 50 local INCREASE = 50 local DECREASE = 50 local DOWN_INCREASE = 450 local UP_DECREASE = 155 local INFOS = {} TRUE = 1 FALSE = 0 function getRail(pos) local stack = 1 local found = 0 local rail repeat pos.stackpos = stack rail = getThingfromPos(pos) if rail.itemid == 0 then break end for i, r in ipairs(RAILS) do if (rail.itemid == r.id) then found = 1 break end end stack = stack + 1 until (found == 1) return rail end function moveTrain(cid) local params, pos, rail, newid local dir = -1 if isCreature(cid) then params = INFOS[cid] pos = getCreaturePosition(cid) rail = getRail(pos) for i,r in ipairs(RAILS) do if rail.itemid == r.id then if RollerCoaster:onmove(cid, rail, r, pos) == FALSE then table.remove(INFOS, cid) return 1 end if r.stop ~= nil then if r.stop == 1 then RollerCoaster:onExitQuery(cid) addEvent(exitTrain, 200, cid) return 1 end end local change = rail.actionid - 1000 local power = 0 local power = change doChangeType(cid, r.id, INFOS[cid].beforeid) info = r.dirs[iNFOS[cid].type] dir = info.dir if power == 1 or power == 2 then if RollerCoaster:onchangeSpeed(cid, power) then if power == 2 then INFOS[cid].speed = INFOS[cid].speed - INCREASE elseif power == 1 then INFOS[cid].speed = INFOS[cid].speed + DECREASE end end end if INFOS[cid].currZ ~= pos.z then if RollerCoaster:onchangeLevel(cid, INFOS[cid].currZ, pos.z) then if INFOS[cid].currZ > pos.z then INFOS[cid].speed = INFOS[cid].speed + UP_DECREASE elseif params.currZ < pos.z then params.speed = params.speed - DOWN_INCREASE end end end if params.speed < 1 then params.speed = 1 end params.currZ = pos.z newid = TRAINS[info.out] INFOS[cid].beforeid = r.id break end end end if dir ~= -1 then doSetItemOutfit(cid, newid, -1) doMoveCreature(cid, dir) addEvent(moveTrain, params.speed, cid) else RollerCoaster:onExitQuery(cid) addEvent(exitTrain, 2000, cid) end end function exitTrain(cid) table.remove(INFOS, cid) RollerCoaster:onExit(cid) doSetItemOutfit(cid, TRAINS[1], 0) local pos = getCreaturePosition(cid) pos.y = pos.y - 1 doTeleportThing(cid, pos, 1) doCreatureSetNoMove(cid, 0) end function enterTrain(cid, item, type) if RollerCoaster:onEnter(cid, item) then doSetItemOutfit(cid, item, -1) local pos = getCreaturePosition(cid) table.insert(INFOS, cid, {type = type, speed = SLOW, currZ = pos.z}) addEvent(moveTrain, 1000, cid) end end function getSpeed(cid) if INFOS[cid].speed ~= nil then return INFOS[cid].speed end return FALSE end function setSpeed(cid, speed) if INFOS[cid].speed ~= nil then INFOS[cid].speed = speed return TRUE end return FALSE end function onUse(cid, item, fromPosition, itemEx, toPosition) if isInArray(ACTION_TRAIN, item.actionid) then if RollerCoaster:onEnterQuery(cid, item) and RollerCids[cid] == nil then doTeleportThing(cid, toPosition, 1) doCreatureSetNoMove(cid, 1) RollerCids[cid] = addEvent(enterTrain, 500, cid, item.itemid, item.actionid-1000) end end return TRUE end ----"No Scripting Needed" System----- local change = {} change[all[1]] = {all[3], all[4]} change[all[2]] = {all[4], all[6]} change[all[3]] = {all[1], all[4], all[6]} change[all[4]] = {all[1], all[2], all[3], all[5], all[6]} change[all[5]] = {all[4]} change[all[6]] = {all[2], all[3], all[4]} change[all[7]] = {} change[all[8]] = {} change[all[9]] = {} change[all[10]] = {} function doChangeType(cid, id, beforeID) if table.getn(change[id]) > 0 then if isInArray(change[id],beforeID) then if INFOS[cid].type == 1 then INFOS[cid].type = 2 else INFOS[cid].type = 1 end end end end
     
    actions.xml

    <action fromid="7131" toid="7132" script="Roller.lua"/>
     
    ai se nao me engano no carrinho que vai pra direita --> vc coloca ActionID 1001
    e no carinho que vai pra esquerda <-- vc coloca actionID 1002
  12. Upvote
    Vodkart deu reputação a guixap em Mageshop/spellshop   
    MageShop/SpellShop


     

    Nesse tutorial tentarei mostrar um pouco do que você


    pode fazer pra deixar sua SpellShop/MageShop bonita sem

    muito trabalho (pelo menos eu acho que não deu muito trabalho).

    Então vamos ao conteúdo.



    Bom você precisa pensar o que é referente a magias e magos.

    Então vamos pensar juntos (runas, potions, elementos, wands,

    rods entre outras coisas que você poderá pensar sosinho). Fazendo

    isso você vai pensar aonde isso vai se encaixar e para você pensar

    nisso você precisa ter a base da sua Loja pronta. Então vamos

    criar a mesma.




     



     




    Agora com a base da loja feita (floor principal, segundo floor,


    roof floor que no caso não foi usado o roof). Vamos ver aonde cada

    coisa vai ir no meu caso eu já fiz cada ground e parte pensando no

    detalhe você terá só o trabalho de arrumar umas coisas depois de fazer

    a base eu já postei arrumada.

     

    Agora você vai detalhar o primeiro andar. Onde o seu npc fica,


    aonde ele faz suas poções aonde ele tem suas ferramentas, seu

    livros para poder trabalhar. Então é ali aonde você vai colocar

    os detalhes referentes a isso. Veja como detalhei o meu andar principal.





    Agora no seu segundo andar é aonde fica pode haver a


    Nascente do poder, quarto/casa do Npc Mage ou outros detalhes que

    não foram adicionados no andar principal ( no meu caso eu usei as

    runas/potions pro “alavanca” que no meu caso não usei alavanca usei

    outro item. Então adicionei a nascente do poder aonde fica os 4 elementos

    (energy, ice, tera, fire) e alguns detalhes a mais.




    Depois disso só rever alguns detalhes algumas coisas que você possa ter


    esquecido detalhes que você queria testar ou que ache que fique legal

    e vá testando.
     

    Observação:


    Essa MageShop que usei é de um trabalho que estou fazendo, foi 100%

    feita por mim mais estou avisando por se caso acontecer um Teaser do

    trabalho que estou fazendo não julguem antes de saberem.





    Então é isso galera! Se você gostou do tutorial da um UP pra mim em Rep+


    E se você não gostou do tutorial me rebaixe clicando em Rep- :mellow:

    E comentem dêem dicas ai pra me ajudar em um próximo tutorial trazendo um

    conteúdo melhor para vocês. E espero que o tutorial ajude ai há muitos.

  13. Upvote
    Vodkart recebeu reputação de Shadobr em Double Exp Para Vip   
    servidos testado 8.54 ~ 8.60
     
    Quando você compra vip você pode aumentar a taxa de exp em percent que ele irá receber a mais,como se fosse um bonus...
     
    a taxa se modifica aqui:
     
    local rate = 1.5 -- 50%
     
    vermelho:representa o quanto irá subir em %
    caso fosse 20% seria
    local rate = 1.2
    e por ai vai....
     
     
    [ Double exp para o Perfect Vip System ] :
     
     
     
     
    [ Double exp para o Vip System By Account V1.0 ] :
     
     
     
     
    [ Double exp para o Vip System By Mock] :
     
     
  14. Upvote
    Vodkart recebeu reputação de Nolis em [Npc] Professor De Spells   
    troque:
     

    local node1 = keywordHandler:addKeyword({'light healing'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Would you like to learn light healing for 170 gp?'}) travelNode:addChildKeyword({'yes'}, StdModule.learnSpell, {npcHandler = npcHandler, premium = false, spellName = 'light healing', vocation = 2, price = 170, level = 9}) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Cant you handle the power of the spell?', reset = true})
     
     
    por
     
     

    local node1 = keywordHandler:addKeyword({'light healing'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Would you like to learn light healing for 170 gp?'}) node1:addChildKeyword({'yes'}, StdModule.learnSpell, {npcHandler = npcHandler, premium = false, spellName = 'light healing', vocation = 2, price = 170, level = 9}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Cant you handle the power of the spell?', reset = true})
     
    flw
  15. Upvote
    Vodkart deu reputação a Mock em Mock Fly System 1.0   
    Autor: Mock the bear
    Servidor testado: TFS 0.3.6

     
    Depois de muita espera eu dei a chance de liberar o script, disse que iria postar assim que descobrissem como criar um tile onde não tem. Pois bem um cara desse forum chamado kydrai descobriu e coube ao lucas123 mostrar. Parabens kydrai ;D
    Script dedicado a vc.
    A minnha funçao é essa:

    function doCreateTile(id,pos) -- By mock doAreaCombatHealth(0,0,pos,0,0,0,255) doCreateItem(id,1,pos) end
    E a dele é essa:

    function doCreateTile(cid, tileid, pos) -- by Kydrai doCombatAreaHealth(cid, 0, pos, 0, 0, 0, CONST_ME_NONE) doCreateItem(tileid, 1, pos) end
    O principio é o mesmo. Abusar de um bug do distro que cria um tile quando executa uma spell. E com o tile pode criar o SQM.
     
    Bom vamos começar.
    Primeiro crie um arquivo chamado flylib.lua na pasta data/lib do seu server e coloque isso:

    CONST_FLYVOID = 460 CONT_FLYOUTFIT = 239 IGNORED = {6495,7096,7099,5167,5162,5163,405,7100, 5315,5521,5316,5193,5192,5191,945,5048,923,950,951, 952,953,3623,954,955,949,9101,3352,9106,9103,1524, 1111,437,433,443,434,442,436,445,941,444,435,943, 1027,925,930,926,928,922,921,1112,406,904,931,934, 932,933,5319} --- Config here up = {} down = {} fly = {} fly.win = function(cid)-- Script by mock setPlayerStorageValue(cid, 102015,1) doPlayerSendTextMessage(cid,27,'Now you can fly.') end fly.add = function(cid)-- Script by mock if getPlayerStorageValue(cid, 102015) == -1 or getPlayerStorageValue(cid,13241) == 1 then return false end if getPlayerStorageValue(cid, 102059) <= 0 then local outfit = getCreatureOutfit(cid) outfit.lookType = CONT_FLYOUTFIT doSetCreatureOutfit(cid, outfit, -1) setPlayerStorageValue(cid, 102059,1) doChangeSpeed(cid, 390) doPlayerSendTextMessage(cid,27,'Fale \'up\' e \'down\'.' ) return true else doPlayerSendTextMessage(cid,27, "Você ja esta voando.") return false end end function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true 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) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end fly.using=function(cid)-- Script by mock return getPlayerStorageValue(cid, 102059) > 0 end fly.logout = function(cid)-- Script by mock if fly.using(cid) then local p = getCreaturePosition(cid) setPlayerStorageValue(cid, 102010,1) setPlayerStorageValue(cid, 102011,p.x) setPlayerStorageValue(cid, 102012,p.y) setPlayerStorageValue(cid, 102013,p.z) deletarEmVolta(p) fly.del(cid) end return true end fly.login = function(cid)-- Script by mock if getPlayerStorageValue(cid, 102010) ~= -1 then setPlayerStorageValue(cid, 102010,-1) local p = {} p.x = getPlayerStorageValue(cid, 102011) p.y = getPlayerStorageValue(cid, 102012) p.z = getPlayerStorageValue(cid, 102013) if not checkAround(p) then fly.add(cid) down.gerarEmVolta(p) doTeleportThing(cid,p) end end return true end fly.die = function(cid)-- Script by mock if fly.using(cid) then local p = getCreaturePosition(cid) setPlayerStorageValue(cid, 102011,-1) setPlayerStorageValue(cid, 102012,-1) setPlayerStorageValue(cid, 102013,-1) deletarEmVolta(p) fly.del(cid) end return true end fly.del = function(cid)-- Script by mock if getPlayerStorageValue(cid, 102059) > 0 then if getSqmId(getCreaturePosition(cid)).itemid == CONST_FLYVOID then return false end doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 102059,-1) doChangeSpeed(cid, -390) return true end end function hasSqm2(pos)-- Script by mock local f = getTileThingByPos(pos) if f.itemid ~= 0 and f.itemid ~= 1 and (not isWalkable(pos) and not isInArray(IGNORED,f.itemid)) then return true end return false end function hasSqm3(pos)-- Script by mock local f = getTileThingByPos(pos) if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID and not isInArray(IGNORED,f.itemid) then return true end return false end function deletar(pos)-- Script by mock if hasSqm(pos) then local sqm = getSqmId(pos) if sqm.itemid == CONST_FLYVOID then doRemoveItem(sqm.uid,1) end end end function deletarEmVolta(pos) for x=-1,1 do for y=-1,1 do deletar({x=pos.x+x,y=pos.y+y,z=pos.z}) end end end function checkAround(pos)-- Script by mock for x=-1,1 do for y=-1,1 do if hasSqm2({x=pos.x+x,y=pos.y+y,z=pos.z}) then return true end end end return false end function fly.checkAround(pos)-- Script by mock local n = 0 for x=-1,1 do for y=-1,1 do local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z}) if g.itemid == CONST_FLYVOID then n = n+1 end if isCreature(getTopCreature({x=pos.x+x,y=pos.y+y,z=pos.z}).uid) then return false end end end if n == 9 then return true end return false end function up.checkAround(pos)-- Script by mock for x=-1,1 do for y=-1,1 do local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z}) if hasSqm3({x=pos.x+x,y=pos.y+y,z=pos.z}) or g.itemid == CONST_FLYVOID then return true end end end return false end function down.checkAround(pos,f)-- Script by mock for x=-1,1 do for y=-1,1 do local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z}) if (not f and hasSqm2({x=pos.x+x,y=pos.y+y,z=pos.z})) or g.itemid == CONST_FLYVOID then return true end end end return false end function gerarEmVolta(pos)-- Script by mock local n = 30000 for x=-1,1 do for y=-1,1 do n =n+1 doItem({x=pos.x+x,y=pos.y+y,z=pos.z},n) end end end function doItem(pos,a,d)-- Script by mock if not hasSqm2(pos) then doCreateTile(CONST_FLYVOID,pos) pos.stackpos = 0 local c = getTileThingByPos(pos) doSetItemActionId(c.uid, a) end end function getSqmId(pos,t)-- Script by mock if hasSqm(pos) or t then pos.stackpos = 0 local i = getTileThingByPos(pos) return i end return nil end function down.doItem(pos,a)-- Script by mock if not hasSqm(pos) then doCreateTile(CONST_FLYVOID,pos) pos.stackpos = 0 local c = getTileThingByPos(pos) doSetItemActionId(c.uid, a) end end function down.gerarEmVolta(pos)-- Script by mock local n = 30000 for x=-1,1 do for y=-1,1 do n =n+1 down.doItem({x=pos.x+x,y=pos.y+y,z=pos.z},n) end end end function doCreateTile(id,pos) -- Script by mock doAreaCombatHealth(0,0,pos,0,0,0,255) doCreateItem(id,1,pos) end
     
    Agora é 1 scritp em creaturescripts, 3 em talkactions e 1 em movements.
    Creaturescripts

    Em seu login.lua coloque isso:

    fly.login(cid)
    no seu logout.lua coloque isso:

    fly.logout(cid)
    e no script que o player morre coloque isso:

    fly.die(cid)
    Isso é para quando o player entrar e sair do server pra voltar onde ele estava :coolface:
    Movements

    Em movements.xml:

    <movevent type="StepIn" actionid="30001" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30002" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30003" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30004" event="script" value="fly.lua"/> <movevent type="StepOut" actionid="30005" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30006" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30007" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30008" event="script" value="fly.lua"/> <movevent type="StepIn" actionid="30009" event="script" value="fly.lua"/> <movevent type="AddItem" tileitem="1" itemid="460" event="script" value="fly.lua"/>
    E no script fly.lua

    ---Script by mock the bear function doCopyItem(item,pos) ---Script by mock the bear for i=1,6 do pos.z = pos.z+1 if hasSqm(pos) and getSqmId(pos).itemid ~= 10217 then local i = doCreateItem(item.itemid,item.type,pos) if item.actionid ~= 0 then doSetItemActionid(i,item.actionid) end doSendMagicEffect(pos,9) return i else local p2 = {x=pos.x+1,y=pos.y+1,z=pos.z} doSendDistanceShoot(pos,p2,40) doSendMagicEffect(pos,2) end end end function onAddItem(item,pos,k) ---Script by mock the bear doCopyItem(item,k) doRemoveItem(item.uid,item.type == 0 and 1 or item.type) end function onStepIn(cid, item, position, fromPosition) ---Script by mock the bear local dir = { [30004] = {0,6,7}, [30007] = {7,0,6,1,5}, [30008] = {1,5,7}, [30009] = {5,4,2,1,7}, [30006] = {2,5,4}, [30003] = {4,3,6,2,5}, [30002] = {3,4,6}, [30001] = {6,0,7,3,4}, } if isPlayer(cid) then local chkps = {x=position.x,y=position.y,z=position.z} local ig = false for i,b in pairs(dir[item.actionid]) do local nw = getPosByDir(chkps,b) local g = getTileThingByPos(nw) if hasSqm3(nw) or g.itemid == CONST_FLYVOID or nw.x < 35 or nw.y < 35 then ig = true break end end if not ig then deletarEmVolta(fromPosition) gerarEmVolta(getCreaturePosition(cid)) else doTeleportThing(cid,fromPosition,false) doPlayerSendTextMessage(cid,27, "Sorry, you cannot fly here.") end end end function onStepOut(cid, item, position, fromPosition,q) addEvent(function(pos) if fly.checkAround(pos) then deletarEmVolta(pos) end end,10000,position) end
    Talkactions

    Em talkactions.xml

    <talkaction words="up" case-sensitive="no" event="script" value="flyup.lua"/> <talkaction words="down" case-sensitive="no" event="script" value="flydown.lua"/> <talkaction words="!fly" case-sensitive="no" event="script" value="fly.lua"/>
    Em fly.lua

    function onSay(cid, words, param) --- By moc kthe bear (MTB) if param ~= '' and getPlayerGroupId(cid) > 3 then local cida = getPlayerByName(param) if cida and isPlayer(cida) then fly.win(cida) end return true end if fly.using(cid) then local p = getCreaturePosition(cid) p.stackpos = 0 local f = getTileThingByPos(p) if fly.del(cid) then if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID then return true else setPlayerStorageValue(cid,10941,1) local p = getCreaturePosition(cid) setPlayerStorageValue(cid, 102011,p.x) setPlayerStorageValue(cid, 102012,p.y) setPlayerStorageValue(cid, 102013,p.z) return true end else doPlayerSendTextMessage(cid,27,'You cannot turn off the fly here.') end else if fly.add(cid) then local pos = getCreaturePosition(cid) if getSqmId(pos).itemid == 10217 then down.gerarEmVolta(pos) end return true else doPlayerSendTextMessage(cid,27,'You cannot fly.') return true end end return true end
    Flyup.lua

    function onSay(cid)--- By moc kthe bear (MTB) local time = os.time() if time < getPlayerStorageValue(cid, 102054) then doPlayerSendCancel(cid, "You are exhausted.") return true end if not fly.using(cid) then return false end local pos = getCreaturePosition(cid) pos.z = pos.z-1 if hasSqm(pos) or pos.z < 0 or up.checkAround(pos) then doPlayerSendTextMessage(cid,27,'You cannot fly higger.') return true else gerarEmVolta(pos) doTeleportThing(cid,pos) pos.z = pos.z+1 deletarEmVolta(pos) end return true end
    Flydown.lua

    function onSay(cid)--- By moc kthe bear (MTB) local time = os.time() if time < getPlayerStorageValue(cid, 102054) then doPlayerSendCancel(cid, "You are exhausted.") return true end if not fly.using(cid) then return false end local pos = getCreaturePosition(cid) pos.stackpos = 0 local g = getTileThingByPos(pos) pos.z = pos.z+1 local f = getTileThingByPos(pos) if getSqmId(getCreaturePosition(cid)).itemid ~= CONST_FLYVOID or down.checkAround(pos) or (g.itemid ~= CONST_FLYVOID and f.itemid ~= CONST_FLYVOID and f.itemid ~= 0 and f.itemid ~= 1) or (not isWalkable(pos,true,false,false) and hasSqm(pos)) or (hasSqm(pos) and not getTileHouseInfo(pos)) == 0 then doPlayerSendTextMessage(cid,27,'You cannot go to down here.') return true else down.gerarEmVolta(pos) doTeleportThing(cid,pos) pos.z = pos.z-1 deletarEmVolta(pos) end return true end
     
    E pronto. Esse não tem o recurso de cair que tem no video por que aquilo é do K.A junto do flysystem 2.0. Esse ja foi do K.A porem agora ele tem um melhor. Esse ai é bom sim porem não serve mais pro k.a entao ta liberado. Façam bom uso modifiquem da forma que quiserem corrijam os bugs e repostem melhorado contanto que nao tire meus creditos. Lembrando que nao precisa mudança na source.
     

     
    Eu sei ta um pog do baralho nao tive paciencia pra faze um remake.
    Se gostaram clica no meu ovinho da assinatura
  16. Upvote
    Vodkart deu reputação a Kydrai em [Arquivado][Function] Docreatetile(Cid, Tileid, Pos) / Doremovetile(Pos)   
    doCreateTile(cid, tileid, pos) / doRemoveTile(pos)


     
    Eu prefiro modificar nas sources, mas, infelizmente, não é todo mundo que tem acesso as sources ou conseguem compilar.
    Aqui mostrarei um dos métodos que conheço para criar um tile onde não existe nada (útil num fly system por exemplo).
     
    Testado no TFS 0.3.6pl1.
    Com um pouco de observação, tentativa e pog eu descobri esse método a um tempo.
     
    Abra o arquivo lib/050-function.lua e adicione nele (detalhe corrigido pelo mock):

    function doCreateTile(tileid, pos) doCombatAreaHealth(0, 0, pos, 0, 0, 0, CONST_ME_NONE) doCreateItem(tileid, 1, pos) return true end function doRemoveTile(pos) doRemoveItem(doCreateItem(460, 1, pos)) end
    Se quiser testar (cria um tile em cima do player):

    function onSay(cid, words, param, channel) local pos = getCreaturePosition(cid) pos.z = pos.z - 1 doCreateTile(103, pos) end
     
    Com isso dá pra faze um fly system:
    A área seria:

    x x x x o x x x x x = tile o = tile + player
    Só teria que usar um onStepOut, verificar onde não existe tile e criar, remover os tiles antigos que não seriam utilizados e impedir que deixem items voando.
    E com algumas edições nas sources ainda pode-se fazer fly system que utiliza uma área de apenas um tile.
     
    Se alguém conhece outros métodos e puder compartlhar fique a vontade.
  17. Upvote
    Vodkart deu reputação a MatheusGlad em [Talkaction] Talkaction Para Invasao.   
    Oque o script faz?
    Ele faz invasao de um monstro em uma pos que voce informa no script.

     
    Bem o script eh muito facil para se editar, acho que nao precisa saber quase nada de programaçao para edita-lo.
     
    Script:

    local monsters = { ["Demon"] = {pos = {x=992,y=992,z=7}, message = "Invasao de Demon."}, ["Dragon"] = {pos = {x=993,y=992,z=7}, message = "Invasao de Dragon."}, ["Juggernaut"] = {pos = {x=994,y=992,z=7}, message = "Invasao de Juggernaut."}, ["Dragon Lord"] = {pos = {x=995,y=992,z=7}, message = "Invasao de Dragon Lord."}, ["Behemoth"] = {pos = {x=996,y=992,z=7}, message = "Invasao de Behemoth."} } function onSay(cid, words, param) local dat = {} if param == "" then doPlayerSendCancel(cid, "Voce precisa usar os parametros corretos.") end if param == "monstros" then for t, x in pairs(monsters) do table.insert(dat, t) end doPlayerPopupFYI(cid, "Monstros no Script:\n"..table.concat(dat, ",").."") return TRUE end for i, p in pairs(monsters) do if param:lower() == i:lower() then doSummonCreature(i, p.pos) doBroadcastMessage(p.message, 22) end end return TRUE end
     
    Tag:

    <talkaction log="yes" words="/invasao" access="4" event="script" value="invasao.lua"/>
     
    Como instalar o script:
     
     
     
    Como usar o script:
     
     
     
    Como botar mais monstros disponiveis para invasao:
     
     
     
    Sinceramente, eu nao sabia se ja tinha alguma talkaction como essa aqui mais estava querendo postar algo entao ta ai usem sem moderaçao xD.
  18. Upvote
    Vodkart recebeu reputação de LorDz em Premium Tile.   
    a sim sim
    tem que fechar
     

    teleport1 ={x=153, y=21, z=7}
     
    bem observado
     
    ah e falha minha o certo é
     

    if getPlayerStorageValue(cid, 13500) - os.time() <= 0 then
  19. Downvote
    Vodkart deu reputação a Leoprotons em Bomber Man System By Leoprotons   
    Removido.
  20. Upvote
    Vodkart deu reputação a joaohd em [Talkaction] Name Changer   
    Bom, sem muito papo, vamos ao script:
     
    Em data/talkactions/scripts, crie um arquivo chamado namechange.lua e coloque isto dentro:
     

    -- Creditos a Won Helder, apocarai, MatheusMkalo function onSay(cid, words, param) local maxLen = 15 -- tamanho maximo do nome local itemid = 2361 ------ Numero do Item que será removido local proibido = {"!","@","*"} -- simbolos proibidos for i = 1, #proibido do if string.find(tostring(param), proibido[i]) then doPlayerSendCancel(cid,"Não pode usar símbolos em seu nome.") return TRUE end end if tostring(param) == "" then -- checkar se não é nome vazio doPlayerSendCancel(cid, "Você deve informar um nome.") return TRUE end if string.len(tostring(param)) > maxLen then doPlayerSendCancel(cid, "Você pode usar no máximo " .. maxLen .. " letras.") return TRUE end if not getTilePzInfo(getCreaturePosition(cid)) then doPlayerSendCancel(cid,"So pode ser usado em pz.") return TRUE end if getPlayerItemCount(cid, itemid) >= 1 then doPlayerRemoveItem(cid, itemid, 1) db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos.") addEvent(doRemoveCreature, 5*1000, cid, true) else doPlayerSendCancel(cid,"Você não possui o item " .. getItemNameById(itemid) .. ".") end return TRUE end
     
    E em talkactions.xml:
     

    <talkaction words="!changename" event="script" value="namechange.lua"/>
     
     
    Pronto.
     
    Para usar diga: !changename NOME NOVO
     
    Créditos: Won Helder,
    apocarai,
    MatheusMkalo
     
     
     
    flw
  21. Upvote
    Vodkart recebeu reputação de Snooz em Ads#34   
  22. Upvote
    Vodkart recebeu reputação de lukervis em The Gods Effect   
    se tem problema eu não sei
     
    porque eu só testei com aneis mesmo não com doll...
     
    qualquer coisa da um toque
     
    abraços
  23. Upvote
    Vodkart deu reputação a douguera em (Spells) 4 Magias Nova 1 Pra Cada Vocaçao Com Ss   
    Vou Postar minhas 4 Nova magia Pra Voces Espero que Gostem.
     
     

    local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 47) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -5.3, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 48) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) arr1 = { {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, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 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}, } arr2 = { {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, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 2, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 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, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(combat1, area1) setCombatArea(combat2, area2) local function onCastSpell1(parameters) doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) return TRUE end
     
     

    <instant name="Granvis" words="Exevo Gran Vis" lvl="70" soul="0" exhaustion="1000" prem="1" selftarget="0" casterTargetOrDirection="0" needlearn="0" script="granvis.lua"> <vocation name="Druid"/> <vocation name="Elder Druid"/> </instant>
     
    IMAGEM DA MAGIA
     

     
     
     
     

    local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 8) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -5.3, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 7) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 3) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) local combat4 = createCombatObject() setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat4, COMBAT_PARAM_EFFECT, 3) setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) arr1 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 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}, } arr2 = { {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, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } arr3 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 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}, } arr4 = { {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, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local area4 = createCombatArea(arr4) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) setCombatArea(combat4, area4) local function onCastSpell1(parameters) doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, combat3, parameters.var) end local function onCastSpell4(parameters) doCombat(parameters.cid, combat4, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) addEvent(onCastSpell3, 300, parameters) addEvent(onCastSpell4, 300, parameters) return TRUE end
     
     

    <instant name="poxzin" words="Exevo Gran Mas Kill" lvl="70" soul="0" exhaustion="1000" prem="1" selftarget="0" casterTargetOrDirection="0" needlearn="0" script="poxzin.lua"> <vocation name="Sorcerer"/> <vocation name="Master Sorcerer"/> </instant>
     
    IMAGEM DA MAGIA
     

     
     

    local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 35) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -5.3, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 36) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 39) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) local combat4 = createCombatObject() setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat4, COMBAT_PARAM_EFFECT, 36) setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) arr1 = { {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, } arr2 = { {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, } arr3 = { {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, } arr4 = { {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0}, {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local area4 = createCombatArea(arr4) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) setCombatArea(combat4, area4) local function onCastSpell1(parameters) doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, combat3, parameters.var) end local function onCastSpell4(parameters) doCombat(parameters.cid, combat4, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) addEvent(onCastSpell3, 100, parameters) addEvent(onCastSpell4, 100, parameters) return TRUE end
     
     

    <instant name="kina" words="Exori Gran Flam" lvl="70" soul="0" exhaustion="1000" prem="1" selftarget="0" casterTargetOrDirection="0" needlearn="0" script="kina.lua"> <vocation name="Knight"/> <vocation name="Elite Knight"/> </instant>
     
    IMAGEM DA MAGIA
     

     
     

    local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 23) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -5.3, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 23) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 19) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) local combat4 = createCombatObject() setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat4, COMBAT_PARAM_EFFECT, 19) setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -6.0, 0, -4.3, 0) arr1 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 3, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 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}, } arr2 = { {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, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } arr3 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 3, 1, 1, 1, 1, 1}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 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}, } arr4 = { {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, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, {1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0}, {0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) local area4 = createCombatArea(arr4) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) setCombatArea(combat4, area4) local function onCastSpell1(parameters) doCombat(parameters.cid, combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, combat3, parameters.var) end local function onCastSpell4(parameters) doCombat(parameters.cid, combat4, parameters.var) end local function onCastSpell5(parameters) doCombat(parameters.cid, combat5, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 100, parameters) addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell3, 200, parameters) addEvent(onCastSpell4, 200, parameters) addEvent(onCastSpell3, 200, parameters) addEvent(onCastSpell4, 200, parameters) return TRUE end
     
     

    <instant name="Hit" words="Exevo Gran Mas Song" lvl="70" soul="0" exhaustion="1000" prem="1" selftarget="0" casterTargetOrDirection="0" needlearn="0" script="hit.lua"> <vocation name="Paladin"/> <vocation name="Royal Paladin"/> </instant>
     
    IMAGEM DA MAGIA
     

     
    Galera Se Gostem por favor Comente ae se tiver bug avisa pq eu to comessando agora nessa area de scripter ok vlws ...
  24. Upvote
    Vodkart recebeu reputação de felipedorgas em End Vip End Promotion   
    @TOPIC

    function onLogin(cid) if getVipTime(cid) > 0 and isVip(cid) == FALSE then local townid = 1 doPlayerSetTown(cid, townid) local templePos = getTownTemplePosition(getPlayerTown(cid)) doTeleportThing(cid, templePos, false) if(isInArray({9, 10, 11, 12}, getPlayerVocation(cid))) then doPlayerSetVocation(cid, voc-4) end setVipTime(cid, 0) doTeleportPlayers(cid, templePos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!") else local duration = getVipDate(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or "")) end return TRUE end
     
    @Kakilo
     
    sim funciona em servidores 8.54+
     
    e aconselho a usar no seu servidor,esse sistema é melhor que o do MOCK.
     
    flw
  25. Upvote
    Vodkart deu reputação a nailannob em [Armadilha] Npc Com Enigma. (Para Quests)   
    Não sei se existe um script igual, mas estou postando o meu.


    Precisei de um npc que apresentasse um enigma.

     
    Descrição:
    Um npc que pode ser usado em quests. Pede ao player para resolver o enigma.
     
    Função:
    Se o player acertar a resposta poderá passar por um certo 'stone tile' ou porta.
    Se o player errar a resposta será 'sumonado' um certo monstro em um certo SQM.
     
    Vá até data/npc/ duplique um arquivo XML de algum npc.
    Mude o nome para Servo e cole isto:

    Legenda:


    Na cor ◘: Nome do NPC que será mostrado no OT.

     
     
    Vá até data/npc/scripts/ duplique um arquivo.lua de algum script de outro npc.
    Mude o nome para port_inf e cole isto:

    Legenda:


    Na cor ◘ : O enigma que será falado pelo NPC.

    Na cor ◘ : A resposta correta.

    Na cor ◘ : Número da storage: no caso, numero do actionid que terá que ser adicionado no tile/porta.

    Na cor ◘ : Nome do monstro que será 'sumonado' se o player errar a resposta.

    Na cor ◘ : Cordenadas de onde aparecerá o monstro.

     
    Depois disso, adicione o actionid no tile/porta que o player poderá passar só após responder o enigma.
    No meu caso adicionei o actionid: 313131 em uma Stone Tile.
     
    Agora é só importar o NPC no seu RME ou seu outro Map Editor.
    E mudar as falas do NPC se quiser ou se precisar. -Mas tome cuidado com as palavras que precisam ser faladas.
     

    Pronto! Seu npc está pronto!


    Meu resultado:



     
    Meu primeiro tópico e também meu primeiro script. Podem me corrigir e me xingar se estiver um lixo.
    Se tiver algo inútil no código, me avisem. É que foi tudo baseado no Henricus.
    Dúvida: Alguém sabe se há uma possibilidade/script onde o npc faria perguntas variadas aleatoriamente?
     

    Falow. Espero que tenha ajudado alguém.


     
    Créditos: 50% para mim e 50% para o cara que fez o Henricus (npc da Inquisition).
  • Quem Está Navegando   0 membros estão online

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