Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 6 de 6
  1. #1



    Avatar de João Neto
    Data de Ingresso
    Nov 2010
    Localização
    Barzinho de Lorencia
    Idade
    30
    Posts
    1.085
    Agradecido
    50
    Agradeceu
    30
    Peso da Avaliação
    25

    Padrão Ajuda com DropSystem

    Olá galera IMP,
    Estou com um problema no meu DropSystem que não estou conseguindo solucionar, ele está dropando apenas o primeiro item que eu coloco na configuravel mesmo com os outros items com mesmo % de Rate...

    Código:
    #include "stdafx.h"
    
    DROP DropInfo[255];
    
    int nDropRateCount;
    int DropCount;
    
    void LoadDropSystem()
    {
        FILE *fp;
        BOOL bRead = FALSE;
        DWORD dwArgv = 0;
        char sLineTxt[255] = {0};
        DropCount = 0;
            
        fp = fopen("..\\GTeam\\DropSystem.txt","r");
    
        if(DropCount > MAX_DROP_NUMBER)
                        {
                            MessageBoxA(NULL, "Maximo de items do DropSystem foi excedido", "[DropSystem]", 0);
                            ::ExitProcess(1);
                        }
    
        if(!fp)
        {
            MessageBoxA(NULL, "DropSystem.txt não esta presente!", "Error!", MB_OK);
            ::ExitProcess(0);
        }
    
        rewind(fp);
        
        while(fgets(sLineTxt, 255, fp) != NULL)
        {
            if(sLineTxt[0] == '/')continue;
            if(sLineTxt[0] == ';')continue;
            int n[11];
                    
            sscanf(sLineTxt, "%d %d %d %d %d %d %d %d %d %d %d", &n[0], &n[1], &n[2], &n[3], &n[4], &n[5], &n[6], &n[7], &n[8], &n[9], &n[10]);
            DropInfo[DropCount].IGroup    = n[0];
            DropInfo[DropCount].ID        = n[1];
            DropInfo[DropCount].MapDrop    = n[2];
            DropInfo[DropCount].MinLev    = n[3];
            DropInfo[DropCount].MaxLev    = n[4];
            DropInfo[DropCount].Skill    = n[5];
            DropInfo[DropCount].Luck    = n[6];
            DropInfo[DropCount].Life    = n[7];
            DropInfo[DropCount].Exc        = n[8];
            DropInfo[DropCount].Anc        = n[9];
            DropInfo[DropCount].Perc    = n[10];
            
            DropCount++;
            nDropRateCount++;
            
            }
    
        rewind(fp);
        fclose(fp);
    }
    
    bool ExcDropSystem(DWORD aIndex, DWORD MonsterID)
    {    
            for(DropCount=0;DropCount<nDropRateCount;DropCount++)
            {
                if(rand()%10001 <= DropInfo[DropCount].Perc)
                {
                srand(static_cast<int>(time(NULL)));
                    OBJECTSTRUCT *pObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);
                    if(DropInfo[DropCount].MapDrop == pObj->MapNumber || DropInfo[DropCount].MapDrop == -1)
                    {
                        int Item = (DropInfo[DropCount].IGroup * 512) + DropInfo[DropCount].ID;
                        int RDiv = (DropInfo[DropCount].MaxLev - DropInfo[DropCount].MinLev) + 1;
                        int ItemLevel = rand()%RDiv + DropInfo[DropCount].MinLev;
                        int ItemSkill,ItemLuck,ItemOpt,ItemExc,ItemAncient;
                        ItemSkill = rand()%(DropInfo[DropCount].Skill + 1);
                        ItemLuck = rand()%(DropInfo[DropCount].Luck + 1);
                        ItemOpt = rand()%(DropInfo[DropCount].Life + 1);
                        if(ItemOpt >= 1)ItemOpt = rand()%4;
                        
                        ItemExc = DropInfo[DropCount].Exc;
                        if(ItemExc > 0)ItemSkill = 1;
                        else{
                            ItemSkill = 0;
                            }
    
                        if(ItemExc >= 1)
                        {
                            ItemExc = Radom2ExcOptGen();
                        }
                        else{
                            ItemExc = 0;
                        }
    
                        ItemAncient = DropInfo[DropCount].Anc;
                        if(ItemAncient >= 1)
                        {
                            int ADiv = rand()%3;
                            if(ADiv == 0)ItemAncient = 0;
                            if(ADiv == 1)ItemAncient = 5;
                            if(ADiv == 2)ItemAncient = 10;
                        }
                        else{
                        ItemAncient = 0;
                        }
                                            
                        OBJECTSTRUCT *mObj = (OBJECTSTRUCT*)OBJECT_POINTER(MonsterID);
                        
                        ItemSerialCreateSend(aIndex,mObj->MapNumber,mObj->X,mObj->Y,Item,ItemLevel,0,ItemSkill,ItemLuck,ItemOpt,aIndex,ItemExc,ItemAncient);
                        return false;
                        }
                }
            }
        
    
        return true;
    Código:
    #include "stdafx.h"
    #define MAX_DROP_NUMBER 1000
    
    typedef struct Drop
    {
        int IGroup;
        int ID;
        int MapDrop;
        int MinLev;
        int MaxLev;
        int Skill;
        int Luck;
        int Life;
        int Exc;
        int Anc;
        int Perc;
    }DROP;
    
    //Structures
    extern DROP DropInfo[255];
    extern int DropCount;
    
    void LoadDropSystem();
    bool ExcDropSystem(DWORD aIndex, DWORD MonsterID);
    Se puderem me dar uma luz eu ficarei muito feliz...

    Atenciosamente,
    João Neto.
    Hidden Content
    Um verdadeiro guerreiro sabe que ao perder uma batalha
    está melhorando sua arte de manejar a espada.
    Saberá lutar com mais habilidade
    na próxima vez.

  2. #2

    Avatar de Sunligth
    Data de Ingresso
    Jun 2012
    Localização
    Sao Paulo
    Posts
    154
    Agradecido
    109
    Agradeceu
    73
    Peso da Avaliação
    13

    Padrão

    Você esqueceu o rand para escolher qualquer item da itembag... da uma olhadinha nas outras sources!

  3. #3

    Avatar de Pronoob
    Data de Ingresso
    Sep 2009
    Localização
    no pc
    Posts
    189
    Agradecido
    18
    Agradeceu
    8
    Peso da Avaliação
    17

    Padrão

    Código:
    for(DropCount=0;DropCount<nDropRateCount;DropCount++)
    ta errado essa parte ae, o restante nem olhei
    Nada a declarar.

  4. #4

    Avatar de Flint
    Data de Ingresso
    Sep 2009
    Localização
    frente do pc
    Posts
    138
    Agradecido
    27
    Agradeceu
    13
    Peso da Avaliação
    16

    Padrão

    exatamente como o sunlight e o pronoob disseram!
    invez de for voce tem que colocar um rand()
    Me engravida @Renato. Hidden Content

  5. #5

    Avatar de Sunligth
    Data de Ingresso
    Jun 2012
    Localização
    Sao Paulo
    Posts
    154
    Agradecido
    109
    Agradeceu
    73
    Peso da Avaliação
    13

    Padrão

    Você conseguiu fazer funcionar corretamente?

  6. #6



    Avatar de João Neto
    Data de Ingresso
    Nov 2010
    Localização
    Barzinho de Lorencia
    Idade
    30
    Posts
    1.085
    Agradecido
    50
    Agradeceu
    30
    Peso da Avaliação
    25

    Padrão

    --------------------Edit----------------------
    Problema resolvido podem fechar o tópico...

    Muito obrigado à todos pela atenção especialmente Network(Getúlio) pela ajuda e paciência.

    Atenciosamente,
    João Neto.
    Última edição por João Neto; 23-06-2012 às 03:38 AM. Razão: Edit..
    Hidden Content
    Um verdadeiro guerreiro sabe que ao perder uma batalha
    está melhorando sua arte de manejar a espada.
    Saberá lutar com mais habilidade
    na próxima vez.

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Suporte| Ajuda
    Por diegojj no fórum Dúvidas
    Respostas: 0
    Último Post: 06-02-2015, 09:54 PM
  2. |Suporte| ~ Ajuda
    Por ViperJr no fórum Dúvidas
    Respostas: 0
    Último Post: 20-01-2015, 05:41 PM
  3. |Suporte| Ajuda - DLL
    Por C. Henrique no fórum Dúvidas|Pedidos
    Respostas: 0
    Último Post: 26-09-2013, 10:39 PM
  4. |Dúvida| Ajuda C++
    Por bkpkbmu no fórum C++
    Respostas: 1
    Último Post: 28-07-2012, 03:45 AM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •