Ir para conteúdo

Nogard

Héroi
  • Registro em

  • Última visita

Tudo que Nogard postou

  1. Nogard postou uma resposta no tópico em Suporte Tibia OTServer
    esse 'Addon Doll' é um item? uma action?
  2. Nogard postou uma resposta no tópico em Playground (Off-topic)
    :/ Façamos nossa parte, quanto mais conteúdo, creio que maior será o movimento.
  3. Nogard postou uma resposta no tópico em Ouvidoria
    É, então isso só ocorre no Firefox. Estou usando o Chrome.
  4. Nogard postou uma resposta no tópico em Ouvidoria
    Deve ser o navegador que você está usando, aqui não ocorre isso.
  5. Vá em Data/Movements/Scripts, crie um novo arquivo lua chamado storagecheck, e coloque isso: function onStepIn (cid, position, fromPosition) local config = { storage = 00000, --- Storage que será verificada action = 0000 ---Action ID do Tile } if item.actionid == config.action then ---- if getPlayerStorageValue(cid, config.storage) == 0 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end return true end Configure a Storage que será verificada, e o Action ID que você colocará no Tile. Após feito isso, salve, e feche. Vá em Data/Movements, abra o arquivo movements.xml, e adicione essa tag: <movevent type="StepIn" itemid="0000" event="script" value="storagecheck.lua"/> Coloque o Item ID do piso em que o player irá pisar.
  6. Nogard postou uma resposta no tópico em Suporte Tibia OTServer
    Liberou as portas no firewall?
  7. Nogard postou uma resposta no tópico em Suporte Tibia OTServer
    uma door? poderia me mandar o script?
  8. Nogard postou uma resposta no tópico em Suporte Tibia OTServer
    Instantaneamente? Bom, eu colocaria uma verificação da storage, quando o player logasse, caso não tivesse a storage, seria teleportado, e setado uma nova.
  9. Achei que você soubesse o processo necessário.. Perdão. rs. Bom, abra seu arquivo creaturescripts.xml, e adicione essa tag: <event type="login" name="BonusOutfit" event="script" value="nomedosearquivo.lua"/> colocando o respectivo nome que deu ao arquivo lua. Em seguida, vá em data/creaturescripts/scripts, e abre o arquivo login.lua. Procure por RegisterCreatureEvent, e adicione essa linha, abaixo das demais: registerCreatureEvent(cid, "BonusOutfit") Apenas lembrando, o script dará o bonus caso o jogador esteja usando a outfit respectiva a vocation. (Isso é, caso funcione).
  10. function onKill(cid, target, lastHit) if isPlayer(cid) and isPlayer(target) then doBroadcastMessage('O jogador '.. getPlayerName(target) ..' ['.. getPlayerLevel(target) ..'] Acaba de ser morto pelo jogador ' .. getPlayerName(cid) ..' [' .. getPlayerLevel(cid) .. '].', MESSAGE_EVENT_DEFAULT) else return false end return true end
  11. Tem, tem como. Pra configurar as vocações e outfits, mude essa parte: local outfits = { hunter = 2, mage = 3, --- ID das Outfits. knight = 4 } local vocations = { hunters = 2, mage = 3, --- ID das Vocations. knight = 4 } Pra editar a quantia de Mana e Life que será adicionado, mude essa parte: local bonus = { hunterhp = 200 --- HP e Mana de bônus da primeira vocação da tabela, no caso Hunters. huntermana = 100 magehp = 100 --- HP e Mana de bônus da segunda vocação da tabela, no caso Mages. magemana = 300 knighthp = 300 --- HP e Mana de bônus da primeira vocação da tabela, no caso Knights. knightmana = 100 }
  12. Em questão de aumentar Mana + Health, caso o Player esteja de x outfit, e sendo da respectiva x vocation, eu usaria um creaturescript. function onLogin (cid) local outfits = { hunter = 2, mage = 3, knight = 4 } local vocations = { hunters = 2, mage = 3, knight = 4 } if getCreatureOutfitId(cid) == outfits.hunter and getPlayerVocation(cid) == vocations.hunters then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+200) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+300) elseif getCreatureOutfitId(cid) == outfits.mage and getPlayerVocation(cid) == vocations.mage then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+100) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+400) elseif getCreatureOutfitId(cid) == outfits.knight and getPlayerVocation(cid) == vocations.knight then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+100) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+100) end return true end
  13. Nogard postou uma resposta no tópico em Ouvidoria
    Realmente o fórum já não tem tantos membros interessados em trazer conteúdo no momento. Porém há muito material de aprendizagem já criados Rodrigo, basta dar uma procurada. Mesmo os membros atuais, que se interessam em ajudar, não irão lhe responder tudo, procuramos não dar nada de 'mão beijada', apenas lhe damos um rumo, para que você possa resolver sua questão. Muitas das vezes, entregar algo na mão, ou material já feito, faz com que o membro não aprenda nada, muito menos se interesse em aprender. Realmente há ausência de alguns membros antigos, mas façamos nossa parte. Abraços.
  14. ~ Edit Bom, EU editaria o arquivo das minhas spells, colocando uma verificação. Creio que haja meios mais fáceis.
  15. Primeiro, vá em data/creaturescripts/scripts, crie um novo arquivo .lua chamado killzabolick, e adicione isso dentro: function onKill(cid, target, lastHit) if (isCreature(cid)) and getCreatureName(target) == 'Zabolic' then setPlayerStorageValue(cid, 7449, 1) doPlayerLearnInstantSpell(cid, 'Extreme Paralyze') doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você acaba de receber a magia Extreme Paralyze! Pode usá-la 3 vezes') end return true end salve, feche. Vá em data/creaturescripts, e abra creaturescripts.xml, adicione essa tag: <event type="kill" name="Kill Zabolick" event="script" value="killzabolick.lua"/> Salve, feche. Novamente, vá em data/creaturescripts/scripts, abra o arquivo login.lua, de ctrl+f e procure por registerCreatureEvent, assim que achar, adicione essa linha abaixo dos demais: registerCreatureEvent(cid, "Kill Zabolick") Salve, feche. Agora, substitua o arquivo da sua spell, por esse: local water = {490, 491, 492, 493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625} local combat = createCombatObject() local meteor = createCombatObject() setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(meteor, COMBAT_PARAM_EFFECT, 52) local stun = createConditionObject(CONDITION_PARALYZE) setConditionParam(stun, CONDITION_PARAM_TICKS, 5000) setConditionFormula(stun, -0.8, 0, -0.9, 0) setCombatCondition(meteor, stun) local meteor_water = createCombatObject() setCombatParam(meteor_water, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(meteor_water, COMBAT_PARAM_EFFECT, 52) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.8, 0, -1.3, 0) combat_arr = { {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {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, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0} } local combat_area = createCombatArea(combat_arr) setCombatArea(combat, combat_area) local function meteorCast(p) doCombat(p.cid, p.combat, positionToVariant(p.pos)) end local function stunEffect(cid) doSendMagicEffect(getThingPos(cid), CONST_ME_STUN) end function onTargetTile(cid, pos) if (math.random(0, 1) == 1) then local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}) if (isInArray(water, ground.itemid) == TRUE) then local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_FIRE) addEvent(meteorCast, 300, {cid = cid, pos = pos, combat = meteor_water}) else local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z} doSendDistanceShoot(newpos, pos, CONST_ANI_ICE) addEvent(meteorCast, 300, {cid = cid,pos = pos, combat = meteor}) end end end setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) if getPlayerStorageValue(cid, 7449) == 1 then setPlayerStorageValue(cid, 7450, 1) setPlayerStorageValue(cid, 7449, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você acaba de usar a magia uma vez') return doCombat(cid, combat, var) elseif getPlayerStorageValue(cid, 7450) == 1 then setPlayerStorageValue(cid, 7451, 1) setPlayerStorageValue(cid, 7450, 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você acaba de usar a magia duas vezes') return doCombat(cid, combat, var) elseif getPlayerStorageValue(cid, 7451) == 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você acaba de usar a magia pela terceira e última vez') doPlayerUnlearnInstantSpell(cid, 'Extreme Paralyze') setPlayerStorageValue(cid, 7451, 0) end return true end Salve.
  16. Você deve ter adicionado '<eof> ' por engano no arquivo. Apenas o retirei e adicionei um end, finalizando a função.
  17. Nogard postou uma resposta no tópico em Suporte & Pedidos
    Considerando que é a primeira vez que tentou, ficou bem legal man.
  18. Terminei o script agora, não testei. Deixei bem fácil de você configurar. (Script dos Baús). Vá em data/actions/scripts, crie um novo arquivo .lua com o nome de gemsystem, e adicione isso em seu interior: function onUse(cid, item, fromPosition, itemEx, toPosition) local vocations = { druid = 1, sorcerer = 2, paladin = 3, knights = 4, } local actions = { managem = 1111, spiritgem = 3333, knights = 4444, } local items = { item = 2160, quantidade = 100, managem = 5555, spiritgem = 6666, knightgem = 7777 } local messages = { druidsorcerer = 'Esse báu é destinado apenas aos Druids e Sorceres', paladins = 'Esse báu é destinado apenas aos Paladins', knight = 'Esse baú é destinado apenas aos knights', } if item.actionid == actions.managem then if getPlayerVocation(cid) ~= vocations.druid or getPlayerVocation(cid) ~= vocations.sorcerer then doPlayerSendCancel(cid, messages.druidsorcerer) elseif getPlayerItemCount(cid, items.item) <= items.quantidade then doPlayerSendCancel(cid, 'Você precisa de '.. items.quantidade ..' '..getItemNameById(items.item).. 'pra isso.') else doPlayerAddItem(cid, items.managem, 1) doPlayerRemoveItem(cid, items.item, items.quantidade) end return true end if item.actionid == actions.spiritgem then if getPlayerVocation(cid) ~= vocations.paladin then doPlayerSendCancel(cid, messages.paladins) elseif getPlayerItemCount(cid, items.item) <= items.quantidade then doPlayerSendCancel(cid, 'Você precisa de '.. items.quantidade ..' '..getItemNameById(items.item).. 'pra isso.') else doPlayerAddItem(cid, items.spiritgem, 1) doPlayerRemoveItem(cid, items.item, items.quantidade) end return true end if item.actionid == actions.knights then if getPlayerVocation(cid) ~= vocations.knights then doPlayerSendCancel(cid, messages.knight) elseif getPlayerItemCount(cid, items.item) <= items.quantidade then doPlayerSendCancel(cid, 'Você precisa de '.. items.quantidade ..' '..getItemNameById(items.item).. 'pra isso.') else doPlayerAddItem(cid, items.knightgem, 1) doPlayerRemoveItem(cid, items.item, items.quantidade) end end return true end Adicione os action id's nos baús, e adicione-os nessa tabela (Sim, deixei praticamente tudo em tabela, pra facilmente você editar): Para editar os ID's do item que será cobrado, sua quantidade, e o ID's das gemas, edite: Nas vocations, deixei auto explicativo, basta editar conforme o respectivo nome da vocation: Por fim, para editar as mensagens que aparecerão para as vocations que não coincidirem com o baú, edite aqui: Salve, feche. Abra actions.xml, cituado em data/actions, e adicione essa tag: <action itemid="0000" event="script" value="gemsystem.lua"/> Adicione o Item ID do baú. Teste.
  19. Manda o script da sua spell.
  20. WoD

    Nogard postou uma resposta no tópico em Formação de Equipe
    Sugiro dar uma arrumada nas Sprites, em questão da perspectiva. Acredito que se incluísse mais detalhes no roteiro, ofereceria um diferencial aos jogadores, um motivo pra se prenderem ao enredo. Boa sorte, abraço.
  21. Nogard postou uma resposta no tópico em Suporte Tibia OTServer
    Seu servidor ta com câncer então amigo, lamento.
  22. Nogard postou uma resposta no tópico em Suporte Tibia OTServer
    Crie um novo arquivo .lua em creaturescripts/scripts, nomeie de playersave, e coloque isso: function onAdvance(cid, skill, oldLevel, newLevel) doPlayerSave(cid) return true end Abra creaturescripts.xml, e coloque essa tag: <event type="advance" name="PlayerSave" event="script" value="playersave.lua"/> Vá novamente em creaturescripts/scripts, abra login.lua. De ctrl+f e procure por RegisterCreatureEvent, após achar, cole isso na ultima linha dos registros: registerCreatureEvent(cid, "PlayerSave") Testa.

Informação Importante

Confirmação de Termo