Suporte ao desenvolvimento de jogos!


    Requerimento Classe Quest

    Compartilhe

    gui408
    Ocasional
    Ocasional

    Mensagens : 216
    Créditos : 10

    Requerimento Classe Quest

    Mensagem por gui408 em Sex Jan 06, 2017 11:05 am

    Galera, eu nao to consceguindo por para 2+ ateh 5 classes pega uma quest por exemplo.
    Eu coloco no /editquest do alatar, em requerimentos a classe numero 1= iniciante, se eu for da classe iniciante eu pego a quest de boa, se eu for outra classe nao pego, ateh ai tudo bem.
    Agora se eu coloca no requerimento de classe Iniciante, Guerreiro, eu sendo da classe iniciante nao conscigo pega a quest e nem sendo da classe guerreiro, ou seja se eu por no requimento mais de uma classe nao funciona, so funciona uma classe; e no /questeditor suporta ateh 5 classes requeridas, olha o codico que eu puis, sera que vcs podem me falar o erro, alias nao da erro mas tb nao funciona com 2+ classes, obg pela atençao ai.

                For i = 1 To 5
                   If Quest(QuestNum).RequiredClass(i) > 0 Then
                      If Player(index).Class <> Quest(QuestNum).RequiredClass(i) Then
                         PlayerMsg index, "Requer a Classe " & Trim$(Class(Quest(QuestNum).RequiredClass(i)).Name) & " para obter a quest.", BrightRed
                         Exit Function
                      End If
                   End If
                Next
    avatar
    lucas100vzs
    Novato
    Novato

    Mensagens : 19
    Créditos : 6

    Re: Requerimento Classe Quest

    Mensagem por lucas100vzs em Seg Jan 30, 2017 10:31 pm

    Vamos lá gui408, vou indicar que você modifique um pouco os códigos, okay?

    Então, primeiro, em "Server.Vbp", em "ModSvQuests", na "Sub": 

    Código:
    Public Function CanStartQuest(ByVal Index As Long, ByVal QuestNum As Long) As Boolean

    Acima de:

    Código:
    CanStartQuest = False
        If QuestNum < 1 Or QuestNum > MAX_QUESTS Then Exit Function
        If QuestInProgress(Index, QuestNum) Then Exit Function

    Adicione isto:

    Código:
    Dim CanClassStart As Boolean

    E agora, nesta sua parte e um pouco já escrita:

    Código:
    For i = 1 To 5
                  If Quest(QuestNum).RequiredClass(i) > 0 Then
                      If Player(Index).Class <> Quest(QuestNum).RequiredClass(i) Then
                        PlayerMsg Index, "Requer a Classe " & Trim$(Class(Quest(QuestNum).RequiredClass(i)).Name) & " para obter a quest.", BrightRed
                        Exit Function
                      End If
                  End If
                Next
               
               
                'Go on :)
                CanStartQuest = True

    Modifique tudo por:

    Código:
    'Go on :)
                CanStartQuest = True
               
                'Set it to false first to check
                CanClassStart = False
                For i = 1 To 5
                   
                    'Check if have a requeriment
                    If Quest(QuestNum).RequiredClass(i) > 0 Then
                   
                        'Check if have the class
                        If Player(Index).Class = Quest(QuestNum).RequiredClass(i) Then
                            CanClassStart = True                   
                        End If
                   
                        'Check if had the class on current list num
                        If CanClassStart = True Then
                            CanStartQuest = True
                Exit For 'Exit just to check on all of 5
                        Else
                            CanStartQuest = False
                        End If
                       
                    End If
               
                Next

    E está pronto! Eu testei, e não tive problemas!
    O único incoveniente é que não haverá a mensagem avisando o jogador a classe certa requerida.

      Data/hora atual: Ter Set 18, 2018 11:04 am