[Dúvida] Receber dano sem equip.

    Compartilhe

    GallighanMaker
    Experiente
    Experiente

    Medalhas :
    Mensagens : 604
    Créditos : 53

    [Dúvida] Receber dano sem equip.

    Mensagem por GallighanMaker em Sab Jul 04, 2015 4:32 pm

    Estou pensando em um sistema onde o jogador receberá dano se não estiver usando uma armadura em determinados mapas como no gelo (receber dano por causa do congelamento). Alguém tem uma base para eu poder me espelhar ou conhece algum metodo funcional?.


    _________________
    @IndieDB @Steam Concept
    --

    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1173
    Créditos : 124

    Re: [Dúvida] Receber dano sem equip.

    Mensagem por Dooolly em Sab Jul 04, 2015 9:37 pm

    Vamo lá então

    Abra o Serve-side.

    Em modConstant procure por:
    Código:
    Public Const MAP_MORAL_SAFE As Byte = 1

    Abaixo adicione:
    Código:
    Public Const MAP_MORAL_DAMAGE As Byte = 2

    Agora em modServerLoop na Sub ServerLoop() procure por:
    Código:
    ServerOnline = True

    Acima adicione:
    Código:
    Dim TickDamage as long

    Ainda nessa mesma sub procura por:
    Código:
    ' Check for disconnections every half second
            If Tick > tmr500 Then

    Acima adicione:
    Código:
    If Tick > TickDamage Then
                For i = 1 To Player_HighIndex
                    If Map(GetPlayerMap(i)).Moral = MAP_MORAL_DAMAGE Then
                      SetPlayerVital i, HP, GetPlayerVital(i, HP) - 10 ' Onde tem 10 mude para o valor do dano
                      SendActionMsg GetPlayerMap(i), "-10 HP", BrightRed, ACTIONMSG_SCROLL, GetPlayerX(i) * 32, GetPlayerY(i) * 32, 1
                    End If
                Next
               
                TickDamage = GetTickCount + 1000  ' onde tem 1000 mude para o tempo q vc queira q dê o dando 1000 = 1s
            End If

    Agora no Client-Side
    Vá no frmEditor_MapProperties e na cmbMoral na propriedade "List"
    adicione: Damage Zone

    pronto, não testei fiz agr, então


    _________________
    Meu Forum

    Spoiler:


    GallighanMaker
    Experiente
    Experiente

    Medalhas :
    Mensagens : 604
    Créditos : 53

    Re: [Dúvida] Receber dano sem equip.

    Mensagem por GallighanMaker em Dom Jul 05, 2015 2:48 pm

    Esta dando problema :
    http://i.imgur.com/QqUbhT9.png



    Depois que eu salvo o mapa ele salva como damage zone mas quando fecho o editor ele da esse problema acima, mas mesmo com o problema, dentro do jogo ele detecta o mapa, causa o dano mas depois de um tempo da o erro tbm.


    _________________
    @IndieDB @Steam Concept
    --

    gui408
    Ocasional
    Ocasional

    Mensagens : 184
    Créditos : 7

    Re: [Dúvida] Receber dano sem equip.

    Mensagem por gui408 em Dom Jul 05, 2015 2:56 pm

    Vc coloco sistema e deletou todos os maps antes?

    GallighanMaker
    Experiente
    Experiente

    Medalhas :
    Mensagens : 604
    Créditos : 53

    Re: [Dúvida] Receber dano sem equip.

    Mensagem por GallighanMaker em Dom Jul 05, 2015 3:36 pm

    sim e não surtiu efeito, persiste o erro.


    _________________
    @IndieDB @Steam Concept
    --

    Dooolly
    Moderador Global
    Moderador Global

    Medalhas :
    Mensagens : 1173
    Créditos : 124

    Re: [Dúvida] Receber dano sem equip.

    Mensagem por Dooolly em Dom Jul 05, 2015 5:13 pm

    GallighanMaker escreveu:sim e não surtiu efeito, persiste o erro.

    Não precisa apagar mapas!

    mude o codigo para esse:
    Código:
    If Tick > TickDamage Then
                For i = 1 To Player_HighIndex
                  If IsPlaying(i) Then
                    If Map(GetPlayerMap(i)).Moral = MAP_MORAL_DAMAGE Then
                      SetPlayerVital i, HP, GetPlayerVital(i, HP) - 10 ' Onde tem 10 mude para o valor do dano
                      SendActionMsg GetPlayerMap(i), "-10 HP", BrightRed, ACTIONMSG_SCROLL, GetPlayerX(i) * 32, GetPlayerY(i) * 32, 1
                      SendVital i, HP
                    End If
                  End If
                Next
               
                TickDamage = GetTickCount + 1000  ' onde tem 1000 mude para o tempo q vc queira q dê o dando 1000 = 1s
            End If


    _________________
    Meu Forum

    Spoiler:


    GallighanMaker
    Experiente
    Experiente

    Medalhas :
    Mensagens : 604
    Créditos : 53

    Re: [Dúvida] Receber dano sem equip.

    Mensagem por GallighanMaker em Dom Jul 05, 2015 5:42 pm

    Agora aparentemente esta tudo ok e funcionando, para quem quiser usar aqui o codigo com a verificação da armadura e adicionei a funcao KillPlayer quando o hp chegar a 0.

    Código:
        'Damege map cold
            If Tick > TickDamage Then
                For i = 1 To Player_HighIndex
                   If IsPlaying(i) Then
                    If Map(GetPlayerMap(i)).Moral = MAP_MORAL_DAMAGE Then
                        If GetPlayerEquipment(i, Armor) <= 0 Then 'Verifica se esta usando uma armadura
                       SetPlayerVital i, HP, GetPlayerVital(i, HP) - 10 ' Onde tem 10 mude para o valor do dano
                       SendActionMsg GetPlayerMap(i), "-10 HP", BrightRed, ACTIONMSG_SCROLL, GetPlayerX(i) * 32, GetPlayerY(i) * 32, 1
                       PlayerMsg i, "You lost 10 HP because of the cold, put on a armor for warmth.", BrightRed
                       SendVital i, HP
                       If GetPlayerVital(i, HP) <= 0 Then
                            KillPlayer i
                            PlayerMsg i, "You're killed by a cold.", BrightRed
                   End If
                   End If
                   End If
                   End If
                Next
                
                TickDamage = timeGetTime + 10000  ' onde tem 1000 mude para o tempo q vc queira q dê o dando 1000 = 1s
            End If


    Demonstração (GIF):



    ..


    Pedido/Dúvida atendido, pode trancar o tópico se quiser.


    _________________
    @IndieDB @Steam Concept
    --

    joaopaulo98
    Experiente
    Experiente

    Mensagens : 548
    Créditos : 36

    Re: [Dúvida] Receber dano sem equip.

    Mensagem por joaopaulo98 em Seg Jul 06, 2015 11:06 pm

    GallighanMaker escreveu:Agora aparentemente esta tudo ok e funcionando, para quem quiser usar aqui o codigo com a verificação da armadura e adicionei a funcao KillPlayer quando o hp chegar a 0.

    Código:
        'Damege map cold
            If Tick > TickDamage Then
                For i = 1 To Player_HighIndex
                   If IsPlaying(i) Then
                    If Map(GetPlayerMap(i)).Moral = MAP_MORAL_DAMAGE Then
                        If GetPlayerEquipment(i, Armor) <= 0 Then 'Verifica se esta usando uma armadura
                       SetPlayerVital i, HP, GetPlayerVital(i, HP) - 10 ' Onde tem 10 mude para o valor do dano
                       SendActionMsg GetPlayerMap(i), "-10 HP", BrightRed, ACTIONMSG_SCROLL, GetPlayerX(i) * 32, GetPlayerY(i) * 32, 1
                       PlayerMsg i, "You lost 10 HP because of the cold, put on a armor for warmth.", BrightRed
                       SendVital i, HP
                       If GetPlayerVital(i, HP) <= 0 Then
                            KillPlayer i
                            PlayerMsg i, "You're killed by a cold.", BrightRed
                   End If
                   End If
                   End If
                   End If
                Next
                
                TickDamage = timeGetTime + 10000  ' onde tem 1000 mude para o tempo q vc queira q dê o dando 1000 = 1s
            End If


    Demonstração (GIF):



    ..


    Pedido/Dúvida atendido, pode trancar o tópico se quiser.

     TickDamage = timeGetTime + 10000  ' onde tem 1000 mude para o tempo q vc queira q dê o dando 1000 = 1s


    timeGetTime " erro variavel não definida "


    _________________
    Sing:


    GallighanMaker
    Experiente
    Experiente

    Medalhas :
    Mensagens : 604
    Créditos : 53

    Re: [Dúvida] Receber dano sem equip.

    Mensagem por GallighanMaker em Ter Jul 07, 2015 12:10 am

    é que a engine que eu uso utiliza timeGetTime no seu caso tente com:
    Código:
     TickDamage = GetTickCount + 10000  ' onde tem 1000 mude para o tempo q vc queira q dê o dando 1000 = 1s


    _________________
    @IndieDB @Steam Concept
    --

    joaopaulo98
    Experiente
    Experiente

    Mensagens : 548
    Créditos : 36

    Re: [Dúvida] Receber dano sem equip.

    Mensagem por joaopaulo98 em Ter Jul 07, 2015 12:23 am

    funcionou  vlw mano Successful


    _________________
    Sing:


      Data/hora atual: Qua Dez 07, 2016 5:37 am