Bem vindo visitante.
Caso ainda não tenha uma conta,pedimos para que crie uma,assim você terá acesso a todos os links e imagens disponíveis no fórum.

Você não está conectado. Conecte-se ou registre-se

Múltiplos drops com chances diferentes

Ir em baixo  Mensagem [Página 1 de 1]

1Normal Múltiplos drops com chances diferentes em Qua Fev 15, 2012 11:36 pm

Terabin

avatar
Administrador
Administrador
[Tutorial convertido com sucesso !]
Este tutorial fará com que um monstro possa dropar mais de um item com chances diferentes.

Observação: Todos os npcs devem ser deletados da pasta NPCs no servidor

Arquivos nescessários:
[Você precisa estar registrado e conectado para ver este link.] (Arrumado)

Iniciando o tutorial

Abra a source do seu cliente.

em modTypes procure por:
Código:
NpcRec

Troque todo o NpcRec por isso:

Código:
Private Type NpcRec
    Name As String * NAME_LENGTH
    AttackSay As String * 100
    Sound As String * NAME_LENGTH
   
    Sprite As Long
    SpawnSecs As Long
    Behaviour As Byte
    Range As Byte
    DropChance(1 To MAX_NPC_DROPS) As Double
    DropItem(1 To MAX_NPC_DROPS) As Byte
    DropItemValue(1 To MAX_NPC_DROPS) As Integer
    Stat(1 To Stats.Stat_Count - 1) As Byte
    HP As Long
    EXP As Long
    Animation As Long
    Damage As Long
    Level As Long
End Type

Agora,no modConstants procure por:
Código:
Public Const MAX_PARTY_MEMBERS As Long = 4

E abaixo adicione isso:
Código:
Public Const MAX_NPC_DROPS As Byte = 10

Agora no modGameEditors,procure por:
Código:
   .txtChance.text = CStr(Npc(EditorIndex).DropChance)

E substitua isso:
Código:
   .txtChance.text = CStr(Npc(EditorIndex).DropChance)
   .scrlNum.Value = Npc(EditorIndex).DropItem
   .scrlValue.Value = Npc(EditorIndex).DropItemValue

Por isso:
Código:
        .txtChance.text = CStr(Npc(EditorIndex).DropChance(1))
        .scrlNum.Value = Npc(EditorIndex).DropItem(1)
        .scrlValue.Value = Npc(EditorIndex).DropItemValue(1)

Agora abra a source do seu servidor.

No modCombat,procure por essa linha:
Código:
        ' Drop the goods if they get it

E troque isso:
Código:
     n = Int(Rnd * Npc(npcNum).DropChance) + 1

   If n = 1 Then
      Call SpawnItem(Npc(npcNum).DropItem, Npc(npcNum).DropItemValue, mapNum, MapNpc(mapNum).Npc(mapNpcNum).x, MapNpc(mapNum).Npc(mapNpcNum).y)
   End If

Por isso:
Código:
   For n = 1 To MAX_NPC_DROPS
      If Npc(NpcNum).DropItem(n) = 0 Then Exit For

      If Rnd <= Npc(NpcNum).DropChance(n) Then
         Call SpawnItem(Npc(NpcNum).DropItem(n), Npc(NpcNum).DropItemValue(n), MapNum, MapNpc(MapNum).Npc(mapNpcNum).x, MapNpc(MapNum).Npc(mapNpcNum).y)
      End If
   Next


Como funciona?
Em chance,coloque nesse formato:
0,1 = 10%

O scrollbar indica o drop.


Qualquer erro,postem aqui.

Ver perfil do usuário http://pokepokepoke.forumeiros.com

Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum