Suporte ao desenvolvimento de jogos!


    [EO]Spell ativada fazendo perder status a cada "1" segundo

    Compartilhe
    avatar
    lucas100vzs
    Novato
    Novato

    Mensagens : 19
    Créditos : 6

    [EO]Spell ativada fazendo perder status a cada "1" segundo

    Mensagem por lucas100vzs em Sex Ago 29, 2014 3:57 pm

    É bem simples o sistema, não há interações entre cliente~server, somente servidor.

    O que faz?

    -Este sistema fará que a sua magia designada faça o jogador perder o status definido a cada segundo.

    SERVER~SIDE
    Abra seu server.vbp, e procure por:

    Código:
    TempPlayerRec

    E antes de "End Type" adicione isto:

    Código:
    MinusStat as Byte

    Vamos considerar como:


    MinusStat = 0 , para nada
    MinusStat = 1 , para HP
    MinusStat = 2 , para MP


    E na *spell designada* você adiciona um destes dois exemplos de código:

    Código:
    'Exemplo de ativação sem desativação
    TempPlayer(Index).MinusStat = 2 'para o MP no seu caso
     
    Ou também:

    Código:
    'Usando como Ativação~Desativação:
    If TempPlayer(index).MinusStat = 2 then 'checa se já está ativado
    TempPlayer(index).MinusStat = 0
    Call PlayerMsg(Index,"Uma técnica sua foi desativada...", Red)
    else 'Não está ativado, vamos ativar então
    TempPlayer(index).MinusStat = 2
    Call PlayerMsg(Index,"Uma técnica sua foi ativada...", Grey)
    End if

    Isso vai fazer com que se o jogador já estiver com a magia de PERDER MP ativada, ele vai desativar, senão vai ativar...

    Então, vamos continuar, você adicionou simplesmente valores que indiquem que o jogador está em uma situação particular ou não...mas isto ainda não fará com que ele perca MP ou o status citado...

    Portanto, ainda no servidor, Vá até seu serverLoop e procure pela:

    Código:
    Sub ServerLoop()

    e declare:

    Código:
    Dim MinusTimer as Long

    Agora, nesta sub procure por isto:

    Código:
    ' HoT and DoT logic
                        For x = 1 To MAX_DOTS
                            HandleDoT_Player i, x
                            HandleHoT_Player i, x
                        Next

    E adicione isto logo abaixo:

    Código:
    'Vamos contar, certo?
                If Tick > MinusTimer Then
                    If TempPlayer(i).MinusStat = 1 Then 'Para o HP
                        Call SetPlayerVital(i, HP, GetPlayerVital(i, HP) - 10) '10 = valor a ser retirado
                        Call SendVital(i, HP)
                        TempPlayer(i).MinusStat = 0
                        'Isso vai matar caso o HP seja menor ou igual a 0
                        If GetPlayerVital(index, HP) <= 0 Then KillPlayer i
                    End If
                    If TempPlayer(i).MinusStat = 2 Then 'Para o MP
                        If GetPlayerVital(i, MP) >= 10 Then 'Checa pra ver se o jogador tem a quantidade de MP
                            Call SetPlayerVital(i, MP, GetPlayerVital(i, MP) - 10) '10 = valor a ser retirado
                            Call SendVital(i, MP)
                        Else
                            TempPlayer(i).MinusStat = 0
                            Call PlayerMsg(i, "Sua técnica foi desativada por falta de mana...", Red)
                        End If
                    End If
                    MinusTimer = GetTickCount + 1000 '1000 = 1 segundo
                End If

    A contagem está mais que perfeitamente pronta pra ser usada em sua máquina...

    **Adições como esta seriam boas também:
    No Server ainda, procure por:

    Código:
    Sub OnDeath

    E nesta sub, abaixo de:

    Código:
    ' Clear spell casting
        TempPlayer(index).spellBuffer.Spell = 0
        TempPlayer(index).spellBuffer.timer = 0
        TempPlayer(index).spellBuffer.Target = 0
        TempPlayer(index).spellBuffer.tType = 0
        Call SendClearSpellBuffer(index)

    Adicione isto:

    Código:
    'Caso o Player morra, desative sua técnica
    TempPlayer(Index).MinusStat = 0

    OBS: A quem não entendeu "spell designada", aqui vai um exemplo:

    No server, procure por:

    Código:
    Public Sub CastSpell

    E dentro desta sub procure pela magia que quiser e adicione o código de ativação de diminuição do status...
    Exemplo:

    Quero adicionar para a magia de cura de MP SEM MIRA...então eu coloco abaixo de:

    Código:
    SpellPlayer_Effect Vitals.MP, True, index, Vital, SpellNum

    o código:

    Código:
    TempPlayer(Index).MinusStat = 2 'no caso do MP

    E está aí um exemplo de uso...  Razz


    E pronto! Está aí seu sistema!  Angel

    ~Créditos~

    Lucas Dantas(~eu)


    Última edição por lucas100vzs em Qua Set 03, 2014 1:49 am, editado 1 vez(es)
    avatar
    dazateam
    Novato
    Novato

    Mensagens : 12
    Créditos : 0

    Re: [EO]Spell ativada fazendo perder status a cada "1" segundo

    Mensagem por dazateam em Sex Ago 29, 2014 11:34 pm

    Cara vlw mesmo, porém deu um errinho :/


    Tipo seu oque significa porém não consegui resolver, tentei de todos os jeitos, caso queira me adicionar no skype para conversar melhor, só me avisar :)


    Imagem:





    _________________
    Pagina do Game: https://www.facebook.com/GLgameslooper
    avatar
    Pablo Kawan
    Experiente
    Experiente

    Mensagens : 485
    Créditos : 158

    Re: [EO]Spell ativada fazendo perder status a cada "1" segundo

    Mensagem por Pablo Kawan em Sab Ago 30, 2014 8:31 am

    pra que usar
    Código:
    TempPlayerRec
    se existe

    Código:
    SpellRec
    e pode já identificar o numero ou o tipo de add que vai perder nela em vez de uma variavel no temp


    Última edição por kawanzii em Qua Mar 04, 2015 7:46 pm, editado 1 vez(es)


    _________________
    Assinatura removida pela Staff
    ^ Tenho nova, surprise
    avatar
    lucas100vzs
    Novato
    Novato

    Mensagens : 19
    Créditos : 6

    Re: [EO]Spell ativada fazendo perder status a cada "1" segundo

    Mensagem por lucas100vzs em Qua Set 03, 2014 1:50 am

    kawanzii,

    Se usa "TempplayerRec", para se mostrar no jogador que ele está com algo em especial...ou que o diferencia de acordo com o que você usa.....


    dazateam, 

    Esse erro foi porque fui lerdo....muito bem, Tópico Atualizado! Caso queira tirar esse erro, apague essa parte e re-copie a do tópico que agora estará certa! Very Happy

    *OBS: Adicionado caso haja morte, retirar o "Debuff" também... Wink

    Conteúdo patrocinado

    Re: [EO]Spell ativada fazendo perder status a cada "1" segundo

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Seg Nov 12, 2018 5:47 pm