Npc Suporte 10 quests Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

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

Npc Suporte 10 quests

3 participantes

Página 1 de 2 1, 2  Seguinte

Ir para baixo

Npc Suporte 10 quests Empty Npc Suporte 10 quests

Mensagem por gui408 Sáb maio 23, 2015 3:00 pm

Alguem poderia me ajudar,queria colocar para o npc ter 10 numeros de quests,pois cada npc so pode ter uma quest,uso sistema de quest do alatar 1.2.
exemplo: Npc Derik tem a quest numero 1,mas nao tem como eu por a quest numero 1 e numero 2,3,4 no derik,vou ter q criar outro npc para poder colocar a quest numero 2 e outro npc para por a quest numero 3 e por ai vai,por isso q quero por para o npc derik ter as quest numero 1,2,3,4,5,6... acho q deu para entender xD.
So lembrando nao venha fala q é so por mais task,eu quero sao numero de quest para o npc,que ele suporte umas 10.
Obrigado quem puder me ajudar,ja estou tentando mas nao conscigo vlw.

gui408
Ocasional
Ocasional

Mensagens : 227
Créditos : 10

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por Profane ~ Ter Jun 02, 2015 11:10 pm

Well Gui408 ;v ;

     Estou afastado do Vb a alguns meses, entrelaçado em C# e outros e.e Mas por com a voz de um pouco de experiência que tenho (Pouco mais que 8 anos...) venho lhe dizer que é uma "sobrecarga". 

Npc's inicialmente foram feitos para não ter quest's... São basicamentes suportes de eventos e monstros; Isso já pesa bastante para eles, e nas trade server client. 

Em palavras mais fáceis:  Fazer com que sua engine de vb seja compatível a mais de 1 Quest não valeria a pena. 

Qual foi a solução encontrada ? ~ Eventos. Por isso eventos é quase uma coisa infinita. Daqui lhe darei três Alternativas.

1) Usar eventos para Alternar Npc's. (Crie o mesmo npc várias vezes e por modo de StoryLine; faça um check no evento para modificar o Npc quando o Player houver completado a quest passada, assim ele passando a ser um outro mesmo Npc visualmente... contendo outro data de quest. )

2) Criar apenas mesmo uma StoryLine dando Exp e itens. (Quests Informais) forçando assim os player's a saberem o que está ocorrendo e aonde estão, o que devem fazer.

3) Adicionar ao Sistema de evento uma nova procedure, no caso para que Via Evento você consiga rec eber Quests. (Sabendo configurar as edições a longo prazo se torna a melhor forma de trabalho.) Podendo assim transformar seu jogo em literalmente um...Skyrim ou The Witcher ;v Em quesito Storyline + Quest's + Interações (Escolhas e Decisões).

Bom, espero ter esclarecido um pouco o que você pode buscar... Abandone essa de 1 Npc apenas ter 10 quests... (Não foram feitos para este peso ;x )

Att Profane ~

_________________
"Mistress of shattered hopes and forever broken dreams"
Profane ~
Profane ~
Colaborador
Colaborador

Mensagens : 818
Créditos : 130

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por gui408 Qua Jun 03, 2015 3:12 pm

Entendi uq vc quis dizer,mas nao é 1 npc apenas ter 10 quest,ja viu multiplos drops,onde 1 npc pode dropa mais de um item,exemplo ele pode dropa 10 itens,seria a mesma coisa que eu queria,que o npc poderia ter 10 quest,ai outro npc mais 10 quest e por assim vai,pois criar 50 npc para ter 50 quests fik muito feio,e o jogo se tornaria com poucas quest,entao n sei se vc me entendeu muito bem,n sei se vc ja viu outros games,onde 1 npc vc pode pega quest sequenciais de acordo que vc vai completando,seria o memso caso,acho q é isso obrigado pela atençao.

gui408
Ocasional
Ocasional

Mensagens : 227
Créditos : 10

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por Profane ~ Qui Jun 04, 2015 11:53 pm

: ); Voltando;

Você não citou que queria múltiplos drops, sendo que multiplos drops é apenas uma variável sem necessidade de alguma edição grande. Você mesmo é capaz de adicionar isso em pouco mais de 2minutos.

Já no quesito quest's, que é algo que engloba não apenas o Npc, mas também o ambiente e também ao Player. Se torna algo mais complexo.

Que levaria alguns dias para desenvolver em ;x (Adicionar uma variavel de speech, para selecionar qual das quests ele irá verificar (quests a qual o npc terá salvo em seu data); após isso fazer os save e verificações com o jogador. Não é nada do outro mundo, possível sim, mas trabalhoso.



_________________
"Mistress of shattered hopes and forever broken dreams"
Profane ~
Profane ~
Colaborador
Colaborador

Mensagens : 818
Créditos : 130

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por gui408 Sex Jun 05, 2015 12:17 am

entendo,mas o multiplo drops eu ja fiz,isto e algo muito facil,so pensei q teria como faze-lo em modo de multiplas quests,mas ta bom entao.Obrigado pela atençao.

gui408
Ocasional
Ocasional

Mensagens : 227
Créditos : 10

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por Dooolly Sex Jun 05, 2015 12:26 am

Profane ~ escreveu:: ); Voltando;

Você não citou que queria múltiplos drops, sendo que multiplos drops é apenas uma variável sem necessidade de alguma edição grande. Você mesmo é capaz de adicionar isso em pouco mais de 2minutos.

Já no quesito quest's, que é algo que engloba não apenas o Npc, mas também o ambiente e também ao Player. Se torna algo mais complexo.

Que levaria alguns dias para desenvolver em ;x (Adicionar uma variavel de speech, para selecionar qual das quests ele irá verificar (quests a qual o npc terá salvo em seu data); após isso fazer os save e verificações com o jogador. Não é nada do outro mundo, possível sim, mas trabalhoso.



Discordo plenamente, da para fazer o NPC ter multiplas quest igual ao Drop apenas modificando uma variavel:

Cliente
Mude no Editor de NPC a parte de selecinar quest para algo assim:
Npc Suporte 10 quests I9U3YsPMt8bpf

2 - Frame
 Primeira(Name=fraQuest, Caption=Missões)
 Segunda(Name=fraQuestNum, Caption=Missão: 1)
1 - ScrollBar
 ScrollBar(Name=scrlQuests, Max=10, Min=1)
O Resto você ja tem...

Dê um double clique em scrlQuests(ScrollBar Adicionada) e Adicione:
Código:
' If debug mode, handle error then exit out
    If Options.Debug = 1 Then On Error GoTo errorhandler
    
    fraQuestNum.Caption = "Missão: " & scrlQuests.value
    
    scrlQuest.value = NPC(EditorIndex).QuestNum(scrlQuests.value)
    chkQuest.value = NPC(EditorIndex).Quest(scrlQuests.value)
    
    ' Error handler
    Exit Sub
errorhandler:
    HandleError "scrlQuests_Change", "frmEditor_NPC", Err.Number, Err.Description, Err.Source, Err.HelpContext
    Err.Clear
    Exit Sub

Em modTypes procure por:
Código:
' Missões
    Quest As Byte
    QuestNum As Long

e Mude para:
Código:
' Missões
    Quest(1 To MAX_NPC_QUEST) As Byte
    QuestNum(1 To MAX_NPC_QUEST) As Long

Em modConstants procure por:
Código:
Public Const MAX_PARTY_MEMBERS As Long = 4

Abaixo adicione:
Código:
Public Const MAX_NPC_QUEST As Byte = 10

Procure por:
Código:
NPC(EditorIndex).QuestNum = scrlQuest.value

Mude para:
Código:
NPC(EditorIndex).QuestNum(scrlQuests.value) = scrlQuest.value

Procure por:
Código:
NPC(EditorIndex).Quest = chkQuest.value

Mude para:
Código:
NPC(EditorIndex).Quest(scrlQuests.value) = chkQuest.value

Procure por:
Código:
.chkQuest.value = NPC(EditorIndex).Quest
        .scrlQuest.value = NPC(EditorIndex).QuestNum

Mude para:
Código:
.chkQuest.value = NPC(EditorIndex).Quest(1)
        .scrlQuest.value = NPC(EditorIndex).QuestNum(1)
        .scrlMissoes.max = MAX_NPC_QUEST
        .scrlMissoes.value = 1

Cliente pronto!

Servidor
Em modTypes procure por:
Código:
' Missões
    Quest As Byte
    QuestNum As Long

e Mude para:
Código:
' Missões
    Quest(1 To MAX_NPC_QUEST) As Byte
    QuestNum(1 To MAX_NPC_QUEST) As Long

Em modConstants procure por:
Código:
Public Const MAX_PARTY_MEMBERS As Long = 4

Abaixo adicione:
Código:
Public Const MAX_NPC_QUEST As Byte = 10

Em modCombat procure por:
Código:
If NPC(npcNum).Behaviour = NPC_BEHAVIOUR_FRIENDLY Or NPC(npcNum).Behaviour = NPC_BEHAVIOUR_SHOPKEEPER Then
Call CheckTasks(attacker, QUEST_TYPE_GOTALK, npcNum)
Call CheckTasks(attacker, QUEST_TYPE_GOGIVE, npcNum)
Call CheckTasks(attacker, QUEST_TYPE_GOGET, npcNum)


If NPC(npcNum).Quest = YES Then
If Player(attacker).PlayerQuest(NPC(npcNum).Quest).Status = QUEST_COMPLETED Then
If Quest(NPC(npcNum).Quest).Repeat = YES Then
Player(attacker).PlayerQuest(NPC(npcNum).Quest).Status = QUEST_COMPLETED_BUT
Exit Function
End If
End If

If CanStartQuest(attacker, NPC(npcNum).QuestNum) Then

'if can start show the request message (speech1)
QuestMessage attacker, NPC(npcNum).QuestNum, Trim$(Quest(NPC(npcNum).QuestNum).Speech(1)), NPC(npcNum).QuestNum
Exit Function
End If
If QuestInProgress(attacker, NPC(npcNum).QuestNum) Then

'if the quest is in progress show the meanwhile message (speech2)
QuestMessage attacker, NPC(npcNum).QuestNum, Trim$(Quest(NPC(npcNum).QuestNum).Speech(2)), 0

Exit Function
End If
End If
End If

Mude para:
Código:
                        If NPC(npcNum).Behaviour = NPC_BEHAVIOUR_FRIENDLY Or NPC(npcNum).Behaviour = NPC_BEHAVIOUR_SHOPKEEPER Then
                          For i = 1 To MAX_NPC_QUEST
                            If NPC(npcNum).Quest(i) = YES Then
                              If Player(attacker).PlayerQuest(NPC(npcNum).Quest(i)).Status = QUEST_COMPLETED Then
                                If Quest(NPC(npcNum).Quest(i)).Repeat = YES Then
                                  Player(attacker).PlayerQuest(NPC(npcNum).Quest(i)).Status = QUEST_COMPLETED_BUT
                                  Exit For
                                End If
                              End If
                           
                              If CanStartQuest(attacker, NPC(npcNum).QuestNum(i)) Then
                                ' if can start show the request message (speech1)
                                QuestMessage attacker, NPC(npcNum).QuestNum(i), Trim$(Quest(NPC(npcNum).QuestNum(i)).Speech(1)), NPC(npcNum).QuestNum(i)
                                Exit For
                              End If
                           
                              If QuestInProgress(attacker, NPC(npcNum).QuestNum(i)) Then
                                'if the quest is in progress show the meanwhile message (speech2)
                                QuestMessage attacker, NPC(npcNum).QuestNum(i), Trim$(Quest(NPC(npcNum).QuestNum(i)).Speech(2)), 0
                                Exit For
                              End If
                            End If
                          Next
                         
                          Call CheckTasks(attacker, QUEST_TYPE_GOTALK, npcNum)
                          Call CheckTasks(attacker, QUEST_TYPE_GOGIVE, npcNum)
                          Call CheckTasks(attacker, QUEST_TYPE_GOGET, npcNum)
                        End If

Delete todas as missões e pronto!

Peguei do meu projeto, não testei o tutorial, qualquer erro fala ai posso ter esquecido de algo!
Dooolly
Dooolly
Colaborador
Colaborador

Medalhas : Npc Suporte 10 quests Trophy12
Mensagens : 1227
Créditos : 153

Ficha do personagem
Nível: 1
Experiência:
Npc Suporte 10 quests Left_bar_bleue0/0Npc Suporte 10 quests Empty_bar_bleue  (0/0)
Vida:
Npc Suporte 10 quests Left_bar_bleue30/30Npc Suporte 10 quests Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por gui408 Sáb Jun 06, 2015 3:06 pm

Fiz tudo correto,deletei todas quest,npc,contas,tudo,mas quando eu vo loga da o seguinte erro.
Compile erro
type mismath

e quando aperto Ok
vai para
If NPC(npcNum).QuestNum = i Then

= fik sumblinhado com azul

isto fika na parte Drawn Npc Name

Edit
Eu tirei a exclamacao mas se vc puder me ajuda a conscerta esta parte,o sistema funcionar perfeitamente,mas claro com a exclamacao encima do nome fikaria melhor xD,muito obg por me ajudar e pela atencao,sistema 100% funcional.

gui408
Ocasional
Ocasional

Mensagens : 227
Créditos : 10

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por Dooolly Sáb Jun 06, 2015 8:33 pm

gui408 escreveu:Fiz tudo correto,deletei todas quest,npc,contas,tudo,mas quando eu vo loga da o seguinte erro.
Compile erro
type mismath

e quando aperto Ok
vai para
If NPC(npcNum).QuestNum = i Then

= fik sumblinhado com azul

isto fika na parte Drawn Npc Name

Edit
Eu tirei a exclamacao mas se vc puder me ajuda a conscerta esta parte,o sistema funcionar perfeitamente,mas claro com a exclamacao encima do nome fikaria melhor xD,muito obg por me ajudar e pela atencao,sistema 100% funcional.

Como eu falei poderia ter esquecido algo, e tá ai oque eu esqueci:

Procure por:
Código:
'check if the npc is the starter to any quest: [!] symbol
            'can accept the quest as a new one?
            If Player(MyIndex).PlayerQuest(i).Status = QUEST_NOT_STARTED Or Player(MyIndex).PlayerQuest(i).Status = QUEST_COMPLETED_BUT Then
              If Quest(i).RequiredLevel <= Player(MyIndex).Level Then
                'the npc gives this quest?
                If NPC(npcNum).QuestNum = i Then
                    Name = "[!]"
                    TextX = ConvertMapX(MapNpc(Index).x * PIC_X) + MapNpc(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(Name)))
                    If NPC(npcNum).Sprite < 1 Or NPC(npcNum).Sprite > NumCharacters Then
                        TextY = ConvertMapY(MapNpc(Index).y * PIC_Y) + MapNpc(Index).YOffset - 16
                    Else
                        TextY = ConvertMapY(MapNpc(Index).y * PIC_Y) + MapNpc(Index).YOffset - (DDSD_Character(NPC(npcNum).Sprite).lHeight / 4)
                    End If
                    Call DrawText(TexthDC, TextX, TextY, Name, QBColor(Yellow))
                    Exit For
                End If
              End If
            End If

Mude para:
Código:
'check if the npc is the starter to any quest: [!] symbol
        'can accept the quest as a new one?
        If Player(MyIndex).PlayerQuest(i).status = QUEST_NOT_STARTED Or Player(MyIndex).PlayerQuest(i).status = QUEST_COMPLETED_BUT Then
          If Quest(i).RequiredLevel <= Player(MyIndex).Level Then
            'the npc gives this quest?
            For n = 1 To MAX_NPC_QUEST
              If NPC(npcNum).QuestNum(n) = i Then
                name = "[!]"
                TextX = ConvertMapX(MapNpc(Index).x * PIC_X) + MapNpc(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(Name)))
                    If NPC(npcNum).Sprite < 1 Or NPC(npcNum).Sprite > NumCharacters Then
                        TextY = ConvertMapY(MapNpc(Index).y * PIC_Y) + MapNpc(Index).YOffset - 16
                    Else
                        TextY = ConvertMapY(MapNpc(Index).y * PIC_Y) + MapNpc(Index).YOffset - (DDSD_Character(NPC(npcNum).Sprite).lHeight / 4)
                    End If
                Call DrawText(TexthDC, TextX, TextY, Name, QBColor(Yellow))
              End If
            Next
          End If
        End If

Pronto Successful
Dooolly
Dooolly
Colaborador
Colaborador

Medalhas : Npc Suporte 10 quests Trophy12
Mensagens : 1227
Créditos : 153

Ficha do personagem
Nível: 1
Experiência:
Npc Suporte 10 quests Left_bar_bleue0/0Npc Suporte 10 quests Empty_bar_bleue  (0/0)
Vida:
Npc Suporte 10 quests Left_bar_bleue30/30Npc Suporte 10 quests Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por Profane ~ Dom Jun 07, 2015 1:17 pm

Boa Dooly ;v

Mas se ler novamente, eu não falei que as Quests eram fáceis. Estava me referindo aos multiplos drops; amor meu.

Muito bom o tutorial,ainda mais com a confirmação de ser funcional xD~

Falei que estava afastado, e como era extenso ia ser tenso ajudar (logo busquei formas dele desenvolver isso sem precisar scriptar algo como você já fez.)

Toda via, nice! Copia isso e posta nos tutoriais do Eclipse; Vai ajudar mais gente.

_________________
"Mistress of shattered hopes and forever broken dreams"
Profane ~
Profane ~
Colaborador
Colaborador

Mensagens : 818
Créditos : 130

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por Dooolly Dom Jun 07, 2015 2:28 pm

Profane ~ escreveu:Boa Dooly ;v

Mas se ler novamente, eu não falei que as Quests eram fáceis. Estava me referindo aos multiplos drops; amor meu.

Muito bom o tutorial,ainda mais com a confirmação de ser funcional xD~

Falei que estava afastado, e como era extenso ia ser tenso ajudar (logo busquei formas dele desenvolver isso sem precisar scriptar algo como você já fez.)

Toda via, nice! Copia isso e posta nos tutoriais do Eclipse; Vai ajudar mais gente.

Vlw Profane, eu não discordei apenas da parte que eu citei eu discordei do assunto em geral, tipo da parte de quest, que você falou que pesaria muito e talz, bom acho que não já que ele vai trabalhar com apenas 1 quest por vez, e sair da sub, evitando todo o processo, mas claro que daria um aumento no peso já que qualquer variável dá diferença, pode ser qualquer sistema vai sim pesar de alguma forma. Obrigado por ser seu amor Npc Suporte 10 quests 2835316747 , vc é um bom membro e é um dos que mais ajuda aqui no fórum, e agradeço por isso. E sim tb pensei que seria extenso por isso não tinha falado nada antes, mas ai lembrei que tinha feito isso em uma d minhas engines, então eu apenas ripei.

sobre postar isso nos tutoriais, acho que não, já que é apenas um complemento e eu nao gosto de fazer isso em sistemas dos outros e por meu meu nome, entao vai fikar aque na area de duvidas mesmo, caso alguem precise e so procurar Npc Suporte 10 quests 2835316747 Obrigado.
Dooolly
Dooolly
Colaborador
Colaborador

Medalhas : Npc Suporte 10 quests Trophy12
Mensagens : 1227
Créditos : 153

Ficha do personagem
Nível: 1
Experiência:
Npc Suporte 10 quests Left_bar_bleue0/0Npc Suporte 10 quests Empty_bar_bleue  (0/0)
Vida:
Npc Suporte 10 quests Left_bar_bleue30/30Npc Suporte 10 quests Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Npc Suporte 10 quests Empty Re: Npc Suporte 10 quests

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 1 de 2 1, 2  Seguinte

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos