Ir para conteúdo
Banner com Efeitos

Hoad

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Hoad deu reputação a Vodkart em [TFS 0.4] Problema com script de npc que muda de classe   
    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser,msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid,msg:lower() local level, storage = 8, 437369 local class = {["mage"] = 1,["savage"] = 2, ["warrior"] = 3} -- defina as classes if (msgcontains(msg, 'vocation') or msgcontains(msg, 'class')) then npcHandler:say("So you are a decided one. What is your path? Follow your natural instincts as a {savage}. Bend the elements arround you, become a {mage}. Face and fright your enemies, {warrior}!", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if class[msg] then if getPlayerLevel(cid) >= level and getPlayerVocation(cid) <= 0 then setPlayerStorageValue(cid, storage, 1) doPlayerSetVocation(cid, class[msg]) npcHandler:say("Congratulations! You have become a "..msg, cid) talkState[talkUser] = 0 else npcHandler:say("You are not prepared yet. Come back when you get stronger. Reach level "..level..".", cid) talkState[talkUser] = 0 end else npcHandler:say("Sorry, choose a {savage}, {mage} or {warrior}!", cid) end elseif msg == "no" then selfSay("I will be waiting for you when you change your mind", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
    fala assim:
     
    hi
    class ou vocation
    fala o nome da vocação, exemplo: savage
     
  2. Gostei
    Hoad recebeu reputação de Milbradt em [HELP-SPELL] Chuva de Meteoros   
    Então, eu só mudei os efeitos da spell criada pelo xWhiteWolf 
     
    Crie um arquivo .lua dentro de sua pasta spells/script/attack chamado meteor.lua e cole isso dentro dele:





    E no arquivo spells.xml, cole isso:




     
    Edit: Agora vi que era azul, vou tentar melhorar
    Edit2: Pronto
  3. Gostei
    Hoad deu reputação a Darkressxx1 em Tibia | Warcraft. [RPG]   
    Proyecto:  ¡TIBIA - WORLD OF WARCRAFT! Mapper: Xadic Contribuidor: Nights   Imagens:   Mini-mapa: `   Xadic-Worldofwarcraft.rar (3.0 MB) (11.0 MB UN-ZIP). https://mega.co.nz/#!ixY3hAqT!_wjoKA6A34FNWX1HYoz3fiBGzVO_oFpwglPTSm-tGjE  
  4. Gostei
    Hoad deu reputação a Sematico em Sematico's Desert City   
    Olá,
     
    Essa foi praticamente a primeira cidade de deserto que criei.
    Algumas partes ficaram legaizinhas, outras nem tanto.
     
    Não vou utilizar esse mapa para nada, então estou disponibilizando para download. Talvez alguém tenha algum uso para ele.
     
    Abraços!

     

     
    ______
     
    Fotinhos:



     
    ______
     
    Download: MAPA
    Scan aqui!
  5. Gostei
    Hoad deu reputação a Aries Mapper em Biblioteca   
  6. Gostei
    Hoad deu reputação a LukazGiovanni em Mage Store [LukazG]   
    Olá galerinha!
    Vou começar a sempre postar algumas coisinhas aqui
     
    ♦ Pequena Mage Store (loja potions, runas, wands, rods...) ♦
     
    ► IMAGEM

     
    ► DOWNLOAD
    Clique aqui.
     
    ► SCAN
    Clique aqui.
     
    ► CRÉDITOS
    Lucas Giovanni (LukazG)
  7. Gostei
    Hoad recebeu reputação de MagmaRoox em Edição attack spell   
    Vc pode abaixar o dano das spells mexendo na formula de cada uma das spells (que estão localizadas na pasta data/spells/scripts) ou no arquivo vocations.xml (em data/XML) vc pode reduzir o dano de cada vocação em 
    <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>  
  8. Gostei
    Hoad deu reputação a xWhiteWolf em (Resolvido)doCombat infuncional   
    o problema é q vc quer uma função que fique repetindo pra checar se ele deve soltar o combat ou não.. o mínimo q vc tem que passar é o combat e as variaveis referentes à ele pra spell poder soltar o combat. A idéia é que tudo que vc vá fazer numa função que varie, seja incluido nos parametros da função. 
    Dá uma lida numas aulas de scripting sobre funções pra vc entender melhor e depois que vc tiver bom começa a pegar libs (documentos só com funções) pra vc dissecar e entender
  9. Gostei
    Hoad deu reputação a Wakon em (Resolvido)Comando para remover mana atual do player   
    Use a função doCreatureAddMana(cid, mana), basta colocar para adicionar - mana ao jogador.
    doCreatureAddMana(cid, -1000)  
  10. Gostei
    Hoad deu reputação a MaXwEllDeN em O que são Storages?   
    O que são Storages?




    Storage Value é um valor que fica gravado no banco de dados, no banco de dados ele é estruturado assim:



    quando você usa a função getPlayerStorageValue(uid, chave)

    O que acontece é praticamente o seguinte:



    É basicamente assim que funciona, por isso por padrão todas storages que não tenham um valor definido recebem o valor -1.
    Se não me engano um player pode ter até 65555 storages, todas ficam em uma única tabela no banco de dados.

    Como atribuir uma storage a um player:

    Como verificar a storage de um player: Exercício: Crie um script que só deixe o player usar um item uma vez.

    Esse tutorial ficou bem curto, mas algumas pessoas têm dificuldade em entender as Storages
  11. Gostei
    Hoad deu reputação a xWhiteWolf em Callbacks de creaturescripts   
    Fala galera do TK, hoje eu vim trazer pra vocês uma coisa que se perdeu em todos esses anos de OT e que é uma das coisas mais importantes prum scripter intermediário/avançado. São as explicações dos respectivos callbacks de creaturescripts. Espero que ajude bastante gente

    Créditos: 90% Zonnebloem (um gringo ai que postou isso das sources) e 10% pra mim por completar oque ele não tinha escrito e arrumado umas coisas que ele escreveu errado.
     
        ____________________________     CREATURE EVENTS TIPOS:  _________________

    TFS 0.2
    type="login"     function onLogin(cid)   type="logout"     function onLogout(cid)   type="advance"     function onAdvance(cid, skill, oldLevel, newLevel)   type="think"     function onThink(cid, interval)   type="kill"     function onKill(cid, target)   type="death"     function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified)   type="preparedeath"     function onPrepareDeath(cid, killer) TFS 0.3/0.4
    type="login"     function onLogin(cid)   type="logout"     function onLogout(cid)   type="advance"     function onAdvance(cid, skill, oldLevel, newLevel)   type="think"     function onThink(cid, interval)   type="kill"     function onKill(cid, target, lastHit)   type="death"     function onDeath(cid, corpse, deathList)   type="preparedeath"     function onPrepareDeath(cid, deathList)   type="statschange"     function onStatsChange(cid, attacker, type, combat, value)   type="combat"     function onCombat(cid, target)   type="target"     function onTarget(cid, target)   type="look"     function onLook(cid, thing, position, lookDistance)   type="textedit"     function onTextEdit(cid, item, newText)   type="outfit"     function onOutfit(cid, old, current)   type="push"     function onPush(cid, target)   type="follow"     function onFollow(cid, target)   type="attack"     function onAttack(cid, target)   type="areacombat"     function onAreaCombat(cid, tileItem, tilePosition, isAggressive)   type="cast"     function onCast(cid, target)   type="direction"     function onDirection(cid, old, current)   type="reportbug"     function onReportBug(cid, comment)   type="sendmail"     function onSendMail(cid, receiver, item, openBox)   type="receivemail"     function onReceiveMail(cid, sender, item, openBox)   type="traderequest"     function onTradeRequest(cid, target, item)   type="tradeaccept"     function onTradeAccept(cid, target, item, targetItem)   type="joinchannel"     function onJoinChannel(cid, channel, users)   type="leavechannel"     function onLeaveChannel(cid, channel, users) TFS 1.0
    type="login"     function onLogin(cid)   type="logout"     function onLogout(cid)   type="think"     function onThink(cid, interval)   type="preparedeath"     function onPrepareDeath(cid, killer)   type="death"     function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified)   type="kill"     function onKill(cid, target)   type="advance"     function onAdvance(cid, skill, oldLevel, newLevel)   type="modalwindow"     function onModalWindow(cid, modalWindowId, buttonId, choiceId)   type="textedit"     function onTextEdit(cid, item, text)   type="changehealth"     function onChangeHealth(cid, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType)   type="changemana"     function onChangeMana(cid, attacker, manaChange)   type="extendedopcode"     function onExtendedOpcode(cid, opcode, buffer)     ____________________________     INFORMAÇÃO SOBRE OS TIPOS:  _________________
    antes de tudo tenha em mente que os tipos só serão executados no player ou monstro em que eles forem registrados; Registrar no login.lua vai fazer com que ele seja executado em todos os players assim q eles logarem. Se deve ser executado somente por alguns monstros, registre no monstro em questão no xml dele.

    login

    Quando é executada:
    - Quando um player loga

    Parametros:
    - cid = creatureid do player que logou

    quando está return false:
    - nada

    registra creature event:
    - não

    ~~~~

    logout

    Quando é executada:
    - quando um player desloga pelo logout do próprio cliente. Não acontece se o player morrer, for disconectado ou xlogs

    Parametros:
    - cid = creatureid do player que deslogou

    quando está return false:
    - Player não vai conseguir deslogar

    registra creature event:
    - não

    ~~~~

    advance

    Quando é executado:
    - Toda vez que um player avançar de level, magic level ou qualquer outra skill

    Parametros:
    - cid = creature id do player que avançou
    - skill = tipo da skill que o player avançou vide tabela abaixo (note que vc pode utilizar tanto o nome SKILL_FIST quanto o numero 0)
    SKILL_FIST = 0 SKILL_CLUB = 1 SKILL_SWORD = 2 SKILL_AXE = 3 SKILL_DISTANCE = 4 SKILL_SHIELD = 5 SKILL_FISHING = 6 SKILL__MAGLEVEL = 7 SKILL__LEVEL = 8 - oldlevel = level antes do player avançar
    - newlevel = o novo level após avançar

    quando está return false:
    - ele não vai avançar o nível

    Registra creature event:
    - sim (isso significa que vc pode colocar pra ele registrar um outro creatureevent dentro desse script após alcançar X level)

    ~~~~

    think

    Quando é executada:
    - Pelo tempo

    Parametros:
    - cid = creatureid do monstro ou player
    - interval = intervalo entre cada checagem OU em que intervalo deve ser executada, 500 é 0.5 segundo.

    quando está return false:
    - nada

    Registra creature event:
    - sim

    ~~~~

    kill

    Quando é executada:
    - Ao matar um player/monstro

    Parametros:
    - cid = creatureid do player ou do monstro que mata
    - target = creatureid do player ou monstro que é morto

    quando está return false:
    - O target não morrerá, ele ficará com 0 de vida e a barra sumirá para os inimigos.Ele precisará se curar para que sua barra de vida volte

    registra creature event:
    -sim

    ~~~~

    death

    Quando é executada:
    - Quando um player ou monstro morrem

    Parametros:
    - cid = creatureid do player monstro que morre
    - corpse = corpo do monstro ou player que morre

    exemplo de adicionando 3 crystal coins no corpo que morreu.
    doAddContainerItem(corpse.uid, 2160, 3) - deathlist = uma table com o nome de todos que mataram, sendo na ordem o deathlist[1] oque deu o ultimo hit e o deathlist[2] sendo oque deu mais dano.
    quando está return false:
    - O corpo não será criado

    Registra creature event:
    - Sim

    ~~~~

    preparedeath

    Quando é executada:
    - Quando um monstro ou player está prestes a morrer (pode ser usada em scripts que devem ser executados no segundo antes do player morrer)

    Parameters:
    - cid = creatureid do player ou monstro que está prestes a morrer
    - deathlist = uma tabela com o nome dos atacantes

    quando está return false:
    - o player ou monstro não irá morrer (mesma história do kill)

    Registra creature event:
    - Sim

    ~~~~

    statschange

    quando é executada:
    -Quando um player ou monstro ou ganha ou perde vida/mana de um combat ou uma função (combats não são só os das spells, mas também weapons/fist/melee... vale lembrar também que monstros não possuem mana)

    Parametros:
    - cid = creatureid do player ou monstro q ganha/perde vida/mana
    - attacker = creatureid do player ou monstro que causou a mudança na health/mana
    - type = tipo da mudança, sendo ela:Ganho de vida, perca de vida, ganho de mana e perca de mana vide tabela abaixo:
    STATSCHANGE_HEALTHGAIN = 0 STATSCHANGE_HEALTHLOSS = 1 STATSCHANGE_MANAGAIN = 2 STATSCHANGE_MANALOSS = 3 - combat = o tipo de combat que causou a alteração, sendo esses tipos:
    COMBAT_NONE = 0 COMBAT_PHYSICALDAMAGE = 1 COMBAT_ENERGYDAMAGE = 2 COMBAT_EARTHDAMAGE = 4 COMBAT_POISONDAMAGE = 4 COMBAT_FIREDAMAGE = 8 COMBAT_UNDEFINEDDAMAGE = 16 COMBAT_LIFEDRAIN = 32 COMBAT_MANADRAIN = 64 COMBAT_HEALING = 128 COMBAT_DROWNDAMAGE = 256 COMBAT_ICEDAMAGE = 512 COMBAT_HOLYDAMAGE = 1024 COMBAT_DEATHDAMAGE = 2048 - value = valor da mudança
    quando está return false:
    - O player ou o monstro não ganharão/perderão vida/mana no combat. Pode ser usado pra fazer ele ficar imortal por um certo período ou não ser capaz de tomar dano de certos players/creaturas 

    Registra creature event:
    - Sim

    ~~~~

    combat

    Quando é executado:
    - Quando um player ou monstro starta um combat (qualquer tipo de ataque)

    Parametros:
    - cid = creatureid do player ou monstro que usa o combat
    - target = creatureid do player ou monstro que sofre o combat

    quando está return false:
    - O player ou monstro não será capaz de levar ataques, isso também inclui que ele não poderá dar target em alguém/algo . Isso pode ser usado para criar monstros que não possam levar ataques ou fazer players ficarem imunes a dano por um certo tempo.

    Registra creature event:
    - Sim


    _______________________________________________________________________________________________

    Agora começa a graça da coisa:


    ~~~~

    target

    Quando é executado:
    - Quando um player ou monstro dá target em um player/mostro (follow/attack)

    Parametros:
    - cid = creatureid do player ou monstro que dá o target
    - target = creatureid do player ou monstro que é targeted

    quando está return false:
    - O player/monstro não poderá dar target.. alguns testes com monstros revelaram que o monstro ainda consegue te atacar então acho que essa função só serve para player

    Registra creature event:
    - Sim
     

    ~~~~

    look

    Quando é executado:
    - Quando um player dá look em algo

    Parametros:
    - cid = creatureid do player que dá o look
    - thing = objeto/player/monstro que o player dá look
    - position = não tenho certeza se é a posição do objeto que é dado look ou se é a minha posição.
    - lookDistance = distancia entre esse objeto e eu.

    quando está return false:
    - Não aparece a mensagem de look na tela

    Registra creature event:
    - Sim
     
    ~~~~

    textedit

    Quando é executado:
    - Quando um player edita um texto em algum item writeable (livros por exemplos)

    Parametros:
    - cid = creatureid do player
    - item = item que está sendo modificiado
    - newText = texto novo que foi escrito 

    quando está return false:
    - O player não conseguirá editar o texto, quando ele tentar dar ok o item continuará com o mesmo texto.. Pode ser usado numa quest com muito RPG pra checar se a senha que o player escreveu no livro é a correta.

    Registra creature event:
    - sim
     
    ~~~~

    outfit

    Quando é executado:
    - Quando um player ou monstro muda de outfit

    Parametros:
    - cid = creatureid do player ou monstro que muda de outfit
    - old = outfit antiga
    - current = outfit atual (após ter trocado)

    quando está return false:
    - a troca de outfit será cancelada e o player/monstro voltará para a antiga outfit

    Registra creature event:
    - sim
     
    ~~~~

    push

    Quando é executado:
    - Quando um player tenta empurrar um monstro ou um player

    Parametros:
    - cid = creatureid do player que empurrar
    - target = creatureid do player ou monstro que é empurrado

    quando está return false:
    - O player não conseguirá empurrar (arrastar o oponente com o mouse). É bastante util em eventos para que eles não possam ficar se empurrando

    Registra creature event:
    - sim
     
    ~~~~

    follow

    Quando é executado:
    - Quando um player dá follow em algum monstro ou player ou até num NPC

    Parametros:
    - cid = creatureid do player que dá o follow
    - target = creatureid da criatura (monstro/npc/player) que é seguida

    quando está return false:
    - O follow não irá ocorrer

    Registra creature event:
    - Sim
     
    ~~~~

    attack

    Quando é executado:
    - Quando um player ou monstro ataca (melee, spells não contam)

    Parametros:
    - cid = creatureid do player ou monstro que ataca
    - target = creatureid do player ou monstrp que sofre o ataque

    quando está return false:
    - O player/monstro não irá atacar, é bastante útil em sistemas que vc queira deixar uma certa criatura imune a ataques mas que ela ainda possa morrer pra spells

    Registra creature event:
    - Sim
     
    ~~~~

    areacombat

    Quando é executado:
    - Quando um player ou monstro starta um combat em área (usa uma spell ou dano em área)

    Parametros:
    - cid = creatureid do player ou monstro que usa o combat
    - tileItem = player que está dentro da area
    - tilePosition = posição do player que está dentro da area
    - isAggressive = se esse combat em área é agressivo ou não, lembre-se que magias como exura gran mas res fazem combat em área mas esse combat não é agressivo porque ela cura em área

    quando está return false:
    - o combat é cancelado

    Registra creature event:
    - Sim
     

    ~~~~

    cast

    Quando é executado:
    - Quando um player ou monstro solta uma magia

    Parametros:
    - cid = creatureid do player ou monstro que usa a magia
    - target = creatureid do player ou monstro que sofre o dano da magia

    quando está return false:
    - a magia não é lançada

    Registra creature event:
    - sim
     
    ~~~~

    direction

    Quando é executado:
    - Quando uma criatura (NPC/Player/Monster) muda de direção 

    Parametros:
    - cid = creatureid do player ou monstro que mudará de direção
    - old =  direção antiga
    - current = direção atual, após ter mudado, vide tabela abaixo:
    NORTH = 0EAST = 1 SOUTH = 2 WEST = 3 SOUTHWEST = 4 SOUTHEAST = 5 NORTHWEST = 6 NORTHEAST = 7 atente-se no fato de que não é possível virar pras direções 4,5,6 e 7 mas você utilizá-las num script que cheque a direção entre dois players, daí sim seria possível (como é no caso do exiva)
    quando está return false:
    - A criatura não será capaz de mudar de direção

    Registra creature event:
    - Sim
     
    ~~~~

    reportbug

    Quando é executado:
    - Quando um player reporta um bug

    Parametros:
    - cid = creatureid do player que reportou o bug
    - comment = comentário que ele adicionou ao reportar

    quando está return false:
    - O report será cancelado e não será enviado. Pode ser usado num script avançado de reports onde se o player não tiver escrito nenhum comentário ou tiver escrito determinadas palavras o envio será cancelado (pra evitar spams)

    Registra creature event:
    - Sim
     
    ~~~~

    sendmail

    Quando é executado:
    - Quando um player manda uma carta/parcel para outro

    Parametros:
    - cid = creatureid do player que mandou a correspondencia
    - receiver = creatureid do player que irá receber essa correspondencia
    - item = item que foi enviado (id dele)
    - openBox = conteúdo (no caso de parcel)

    quando está return false:
    - Correspondência não será enviada. É util pra registrar um log de todas as trocas entre players e pegar hackers.

    Registra creature event:
    - Sim
     
    ~~~~

    receivemail

    Quando é executado:
    - Quando um player recebe uma carta/parcel de outro

    Parametros:
    - cid = creatureid do player que recebou a correspondência
    - sender = creatureid do player que enviou a correspondência
    - item =  item recebido
    - openBox =  conteúdo da correspondencia (no caso de ser uma parcel)

    quando está return false:
    - Ele não receberá a correspondência.

    Registra creature event:
    - Sim 

    ~~~~

    traderequest

    Quando é executado:
    - Quando um player dá trade

    Parametros:
    - cid = creatureid do player que deu o trade
    - target = creatureid do player que ele tentou iniciar uma troca
    - item = item que foi iniciada a troca (se for uma backpack cheia de coisas dentro esse item será uma table com todos os itens)

    quando está return false:
    - A troca não será executada. É útil para scripts de itens vip onde o player não possa trocar determinados itens

    Registra creature event:
    - Sim
     
    ~~~~

    tradeaccept

    Quando é executado:
    - Quando um player aceita a troca com outro)

    Parametros:
    - cid = creatureid do player que aceitou a troca (você)
    - target = creatureid do player que aceitou a troca (cara com quem você trocou)
    - item = items que você deu em troca, no caso de uma backpack cheia de itens esse parametro será uma table com todos os itens
    - targetItem =  items que você recebeu em troca, no caso de uma backpack cheia de itens esse parametro será uma table com todos os itens

    quando está return false:
    - a troca não será concluída.

    Registra creature event:
    - Sim
     
    ~~~~

    joinchannel

    Quando é executado:
    - Quando um player entra num channel (aqueles canais tipo trade/ help chat/ info/ guild/ etc...)

    Parametros:
    - cid = creatureid do player que entrou no chat
    - channel = canal que o player entrou.. vide lista abaixo:
    CHANNEL_GUILD = 0 CHANNEL_PARTY = 1 CHANNEL_RVR = 3 CHANNEL_HELP = 9 CHANNEL_DEFAULT = 0xFFFE CHANNEL_PRIVATE = 0xFFFF - users = outros usuários do canal.
    quando está return false:
    - O player não conseguirá entrar no channel

    Registra creature event:
    - Sim
     
    OBS: a mesma coisa vale pra função leavechannel, só que o return false o player não conseguirá sair do channel.


    Espero que isso ajude bastante gente, eu não expliquei os types da versão 1.0 porque é basicamente a mesma coisa e pelos parametros dá pra você ter uma ideia doque é oque. :]
  12. Gostei
    Hoad deu reputação a xWhiteWolf em Spell de speed que muda outfit até tal ação   
    ah é, realmente.. falha minha que copiei as funções e não arrumei huahua pelo menos vc entendeu a lição e foi capaz de me corrigir, parabéns.
  13. Gostei
    Hoad recebeu reputação de xWhiteWolf em Spell de speed que muda outfit até tal ação   
    Aeeeeeeho, agora foi certinho, so mudei o cid para uid das paradinhas abaixo  Ficou otimo, vlw :D
    if getCreatureCondition(cid, CONDITION_OUTFIT) if getCreatureCondition(cid, CONDITION_HASTE)
  14. Gostei
    Hoad deu reputação a xWhiteWolf em Spell de speed que muda outfit até tal ação   
    não sei como funciona a getCreatureTarget no seu servidor, mas usa assim q deve dar certo:
     
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 2) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) -- seta por tempo ilimitado setConditionFormula(condition, 0.7, -56, 0.7, -56) setCombatCondition(combat, condition) local function checker(uid, health) if isPlayer(uid) then if (getCreatureTarget(uid) and isCreature(getCreatureTarget(uid))) or getCreatureHealth(uid) < health then --se ele tiver um target ou perder vida cancela. if getCreatureCondition(uid, CONDITION_HASTE) doRemoveCondition(uid, CONDITION_HASTE) end if getCreatureCondition(uid, CONDITION_OUTFIT) doRemoveCondition(uid, CONDITION_OUTFIT) end doSendMagicEffect(getCreaturePosition(uid), 2) else local health = getCreatureHealth(uid) addEvent(checker, 200, uid, health) -- checa a cada 200 milisegundos end end return true end function onCastSpell(cid, var) doSetCreatureOutfit(cid, {lookType = 318}, -1) -- seta o outfit 318 por tempo ilimitado checker(cid, getCreatureHealth(cid)) doCombat(cid, combat, var) return true end  
  15. Gostei
    Hoad deu reputação a xWhiteWolf em Spell de speed que muda outfit até tal ação   
    muito complexa a sua linha de raciocínio.. pensa cmg:

    Uma spell que seta a outfit e velocidade por tempo indeterminado, caso o player perca vida ou ataque alguém ela remove as conditions responsáveis pelo haste e pelo outfit ->

    e temos isso daqui:
     
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 2) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) -- seta por tempo ilimitado setConditionFormula(condition, 0.7, -56, 0.7, -56) setCombatCondition(combat, condition) local function checker(uid, health) if isPlayer(uid) then if not getCreatureTarget(uid) and getCreatureHealth(uid) >= health then --se ele tiver um target ou perder vida cancela. local health = getCreatureHealth(uid) addEvent(checker, 200, uid, health) -- checa a cada 200 milisegundos else if getCreatureCondition(cid, CONDITION_HASTE) doRemoveCondition(uid, CONDITION_HASTE) end if getCreatureCondition(cid, CONDITION_OUTFIT) doRemoveCondition(uid, CONDITION_OUTFIT) end doSendMagicEffect(getCreaturePosition(uid), 2) end end return true end function onCastSpell(cid, var) doSetCreatureOutfit(cid, {lookType = 318}, -1) -- seta o outfit 318 por tempo ilimitado checker(cid, getCreatureHealth(cid)) doCombat(cid, combat, var) return true end  
  16. Gostei
    Hoad recebeu reputação de xWhiteWolf em Problema com função getPlayerMagLevel(cid)   
    Obrigado por responder.
    Então, depois de ler e pesquisar mais um pouco sobre, refiz a spell e assim ficou:
     
     
     
    E agora foi certinho  
    Obrigado mais uma vez NW C:
     
  17. Gostei
    Hoad deu reputação a xWhiteWolf em Problema com função getPlayerMagLevel(cid)   
    Vamos ler a descrição do erro e tentar entender oque ela significa:
     
    Description:
    <luaGetPlayerMagLevel> Player not found

    ao usar a função getPlayerMagLevel ele não encontrou o player que vc tá tentando fazer a checagem. Ok, mas por que isso ocorre?
    Bom, você colocou lá em cima:
    local cura = getPlayerMagLevel(cid)

    Mas oque é esse cid aí? De onde ele vem?

    Parece que achamos o problema... vc tá tentando puxar o ml de algo que não está definido ainda.
    "Mas Lobo, cid é o player que executa a spell, certo?"
    SIM, mas só dentro do escopo da spell.

    Acompanhe:
     
    Pra você fazer uma spell que recupera dependendo do ml vc precisa fazer um callback nessa spell.. segue esse tutorial aqui
  18. Gostei
    Hoad deu reputação a gpedro em Como criar um site para seu servidor!   
    executem isso no banco de dados


    ALTER TABLE `accounts` ADD `vip_time` INT( 11 ) NOT NULL DEFAULT '0';
  19. Gostei
    Hoad deu reputação a Cazuza em (Resolvido)Movements com efeito   
    tenta assim:
    function onStepIn(cid, item, position, fromPosition) local maxmana = getCreatureMaxMana(cid) local maxhealth = getCreatureMaxHealth(cid) if isPlayer(cid) then doSendMagicEffect(position, 39) doCreatureAddHealth(cid, maxhealth) doCreatureAddMana(cid, maxmana) doPlayerSendTextMessage(cid, 22, "You have been restored.") end return true end
  20. Gostei
    Hoad deu reputação a olokomeu em (Resolvido)Movements com efeito   
    Tenho esse script caso lhe ajude ( Recupera Life e Mana):
     
    Vai em globalevents.xml e coloca:
     
     
    Depois vá em Globalevents>script e cria um lua com o nome areahealth
     
     
     
     
     
     
    Onde está em Vermelho é a posição do tile que irá curar. 
    Onde está em Verde é o quanto você quer que recupere.
     

  21. Gostei
    Hoad deu reputação a xWhiteWolf em (Resolvido)Movements com efeito   
    testa agr rapaz
    function onStepIn(cid, item, position, fromPosition) local maxmana = getCreatureMaxMana(cid) local maxhealth = getCreatureMaxHealth(cid) if isPlayer(cid) then doSendMagicEffect(position, 39) doCreatureAddHealth(cid, maxhealth) doCreatureAddMana(cid, maxmana) doPlayerSendTextMessage(cid, 22, "You have been restored.") end return true end
  22. Gostei
    Hoad deu reputação a olokomeu em [Tutorial] Bug "Temple position is wrong" (MySql)   
    Bem, quebrei muita cabeça um dia desses com esse maldito Bug, porém, com umas dicas do amigo "danihcv" e eu mexendo, acabei resolvendo e quis dividir esse tutorial com o povo do TibiaKing. Lembrando que esse erro acontece quem usa Mysql e possue website "Gesior"( Não sei se todas as versões dão esse erro, mas a versão 0.3.8 deu). Vamos deixar e papo e mão na massa .

    O erro é o seguinte:

    - Quando loga a conta no tibia ele abre a janela normalmente do char, porém, quando tenta logar dar esse erro:

    (Esse erro é um conflito que há entre as coordenadas (x,y e z) do config.lua + database).

    1- Para retirar esse bug, a primeira coisa será entrar no config.lua e achar essa tag:

    Caso ela estiver em "1", não altere nada. Mas se tiver outro numero, coloque "1".

    2 - Abra o arquivo accountmanagement.php, que se encontra na pasta htdocs procure essa tag:

    Dentro do (), coloque "1", se dentro do () tiver algo parecido com "$newchar_town", apague e coloque "1".

    3- Verifique ainda no mesmo arquivo accountmanagement.php essa tag:


    As coordenadas (PosX,PosY e PosZ) varia de otserver para otserver e tem que estar igual ao que tem no config.lua:

    4- Va na sua DataBase (phpadmin), procure uma "aba" acima que diz "SQL", clique nela, coloque essa tag e aperte em "executar":


    Lembrando mais uma vez, as coordenadas (PosX,PosY e PosZ) variam de otserver para otserver e devem está iguais, ao do Config.lua + accountmanagement.php .

    Pronto. Depois disso entre normalmente que o char ira logar nas coordenadas configuradas.

    Gostou? não esquece do REP+!


    Tutorial feito por:
    70% Eu
    30% danihcv
  23. Gostei
    Acessa meu Tutorial abaixo, e vê se o seu erro é esse.
     
    http://www.tibiaking.com/forum/topic/48314-tutorial-bug-account-manager/
  24. Gostei
    Mano vamos la.
     
    1 erro > Items Iniciais<   Voce vai ter que ir la no seu phpmyadmin e deletar todos os items da tabela player items, depois voce refaz com o que voce quer. se nao resolver voce vai em creaturescripts e tira o script que esta com itens iniciais. 
     
    2 erro > Position ao Nascer <  Essa position voce configura tambem no seu phpmyadmin, voce coloca as cordenadas que voce quer, ai voce poe as msms na sua config.
     
    3 erro > Position ao Relogar <  Essa provavelmente é o seu TOWNID, voce vai no phpmyadmin e poe townid 1 < ou o que voce quiser >. vai na sua config e poe o mesmo townid que voce colocou no phpmyadmin.
     
    Se nao resolver entre em contato,
    Ajudei ?? REP +
  25. Gostei
    Hoad deu reputação a Cat em (Resolvido)Escada de pedra dividida   
    Removido

Informação Importante

Confirmação de Termo