Aldeia RPG

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Suporte ao desenvolvimento de jogos


3 participantes

    [E.O 2.0] - Sistema de AutoCast de Skill

    Kotol
    Kotol
    Moderador Local
    Moderador Local


    Mensagens : 74
    Créditos : 16

    [E.O 2.0] - Sistema de AutoCast de Skill Empty [E.O 2.0] - Sistema de AutoCast de Skill

    Mensagem por Kotol Qua Abr 26, 2023 11:38 pm

    É bem simples, é um sistema que autoCasta a magia do primeiro Slot, sempre que a mesma tem o CD disponível para cast. Foram adicionadas correções (que já podem/devem conter na sua máquina).

    Sistema:
    -AutoCast da skill "F1";

    Extras:
    -[Correção] - Se já tiver um cast em andamento, ele impede outros casts, sejam manuais ou automáticos;
    -[Correção] - Se a skill estiver em Cooldown, ele sai no "Handle" e nem chama a SUB de cast;
    -[Correção] - Checar slot da HotBar(universal), aonde valores inseridos inválidos podem gerar queda de servidor;
    -[Adição] - Cooldown de 1 segundo na ação: Cast-Spell , até para evitar flood.

    CLIENT~SIDE

    Sem delongas, vamos lá, primeiramente, abra seu "Client.Vbp", e na "FrmMain", crie:

    1x Checkbox
    Name: chkAutoSkill

    Agora, abra seu "ModGamelogic", e em "Public Sub GameLoop", procure por:
    Código:
    ' check if we need to end the CD icon
                If NumSpellIcons > 0 Then
                    For i = 1 To MAX_PLAYER_SPELLS
                        If PlayerSpells(i) > 0 Then
                            If SpellCD(i) > 0 Then
                                If SpellCD(i) + (Spell(PlayerSpells(i)).CDTime * 1000) < Tick Then
                                    SpellCD(i) = 0
                                    BltPlayerSpells
                                    BltHotbar
                                End If
                            End If
                        End If
                    Next
                End If

    Logo abaixo adicione isto: 
    Código:
    'Auto Cast
    If frmMain.chkspell.Value = 1 Then
                If Hotbar(1).Slot > 0 Then 'Spell exist on slot
                    If SpellCD(Hotbar(1).Slot) <= 0 Then
                        If SpellBuffer <= 0 Then 'Check CD and Casting
                            If (Spell(Hotbar(1).Slot).CDTime * 1000) < Tick Then  'Check CD of time
                                CastSpell Hotbar(1).Slot
                            End If
                        End If
                    End If
                End If
            End If


    Ainda em "ModGamelogic" , na "Public Sub CastSpell", procure por:
    Código:
    If SpellCD(spellslot) > 0 Then
            AddText "Spell has not cooled down yet!", BrightRed
            Exit Sub
        End If

    E logo abaixo adicione isto:
    Código:
    'Checks for: AutoCast
        If SpellBuffer > 0 Then Exit Sub

    E o cliente está finalizado.

    SERVER~SIDE

    Agora, é a parte do servidor, abra seu "Server.Vbp" e em "ModHandleData", na "Sub HandleCast", procure por:
    Código:
    Set Buffer = New clsBuffer
        Buffer.WriteBytes Data()
        ' Spell slot
        n = Buffer.ReadLong 'CLng(Parse(1))
        Set Buffer = Nothing

    E logo abaixo adicione isto:
    Código:
    If n <= 0 Or n > MAX_HOTBAR Then Exit Sub 'Check: Valid SpellSlot
        If TempPlayer(Index).SpellCD(n) > GetTickCount Then Exit Sub 'Check: Cooldown
        If GetTickCount < TempPlayer(Index).spellBuffer.Timer Then Exit Sub 'Check: Casting
        
        'Add 1s casting cooldown
        If GetTickCount < TempPlayer(Index).CastTimer + 1000 Then Exit Sub
        TempPlayer(Index).CastTimer = GetTickCount

    Agora finalmente, em "ModTypes", procure por este tipo:
    Código:
    Public Type TempPlayerRec

    E logo abaixo, antes do primeiro "End Type", declare esse tipo:
    Código:
    CastTimer As Long

    E pronto! Agora você não só tem um sistema de "AutoCast" usando a primeira magia do seu slot do atalho de magias(F1~F12) , mas também tem controle de uma porção de flood que poderia acontecer no seu servidor, além de algumas correções (muitas disponíveis no fórum também). Qualquer dúvida, sugestão ou erro, entre em contato e boa criação!

    Edit 1: (Editado com correção de Slot)

    Créditos do 'AutoCast'
    Kotol


    Última edição por Kotol em Sex Abr 28, 2023 2:07 pm, editado 1 vez(es)

    Valentine e joaozinhowbr gostam desta mensagem

    avatar
    joaozinhowbr
    Novato
    Novato


    Mensagens : 2
    Créditos : 0

    [E.O 2.0] - Sistema de AutoCast de Skill Empty Re: [E.O 2.0] - Sistema de AutoCast de Skill

    Mensagem por joaozinhowbr Sex Abr 28, 2023 1:32 pm

    Quando ativa o auto skill nao importa qual skill esteja no f1 ele so usa a skill 1 da tabela de skills
    Kotol
    Kotol
    Moderador Local
    Moderador Local


    Mensagens : 74
    Créditos : 16

    [E.O 2.0] - Sistema de AutoCast de Skill Empty Re: [E.O 2.0] - Sistema de AutoCast de Skill

    Mensagem por Kotol Sex Abr 28, 2023 2:05 pm

    Opa, foi falta de atenção minha (fazendo coisas na madrugada), mas obrigado pelo report.

    Pois então, eu atualizarei o post com a correção, mas pra você, pegue essa parte:
    Código:
    'Auto Cast
                If frmMain.chkAutoSkill.Value = 1 Then
                    If Hotbar(1).Slot > 0 Then 'Spell exist on slot
                        If SpellCD(1) <= 0 And SpellBuffer <= 0 Then 'Check CD and Casting
                            If SpellCD(1) + (Spell(PlayerSpells(1)).CDTime * 1000) < Tick Then 'Check CD of time
                                CastSpell 1
                            End If
                        End If
                    End If
                End If


    E substitua por esta:
    Código:
    'AutoCast
    If frmMain.chkspell.Value = 1 Then
                If Hotbar(1).Slot > 0 Then 'Spell exist on slot
                    If SpellCD(Hotbar(1).Slot) <= 0 Then
                        If SpellBuffer <= 0 Then 'Check CD and Casting
                            If (Spell(Hotbar(1).Slot).CDTime * 1000) < Tick Then  'Check CD of time
                                CastSpell Hotbar(1).Slot
                            End If
                        End If
                    End If
                End If
            End If

    E pronto, ele vai castar a skill do primeiro SLOT da hotbar.

    joaozinhowbr gosta desta mensagem

    avatar
    gabrielcpv
    Novato
    Novato


    Mensagens : 7
    Créditos : 0

    [E.O 2.0] - Sistema de AutoCast de Skill Empty Re: [E.O 2.0] - Sistema de AutoCast de Skill

    Mensagem por gabrielcpv Sáb Mar 30, 2024 9:54 am

    @Kotol

    Sabe o que pode ser?

    [E.O 2.0] - Sistema de AutoCast de Skill Imagem15


    Já arrumei kkkkkkkkk ficou assim:

    Código:
    'AutoCast
                If frmMain.chkspell.value = 1 Then
                    If Hotbar(1).Slot > 0 Then 'Spell exist on slot
                        If SpellCD(Hotbar(1).Slot) <= 0 Then
                            If SpellBuffer <= 0 Then 'Check CD and Casting
                                If (Spell(Hotbar(1).Slot).CDTime * 1000) < Tick Then  'Check CD of time
                                    Call CastSpell(Hotbar(1).Slot, Cancel)
                                End If
                            End If
                        End If
                    End If
                End If

    WillMaiaBR gosta desta mensagem


    Conteúdo patrocinado


    [E.O 2.0] - Sistema de AutoCast de Skill Empty Re: [E.O 2.0] - Sistema de AutoCast de Skill

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Qui maio 02, 2024 7:43 pm