ИндексCalendarGalleryВъпроси/ОтговориТърсенеРегистрирайте сеВход

За да имате баннер или важна тема се свържете с :DIEL

Share | 
 

 [Release] Simple Drop System (Source)

Предишната тема Следващата тема Go down 
АвторСъобщение
WaffylleE
Level 10
Level 10
avatar

Брой мнения : 368
Birthday : 31.01.2000
Join date : 01.04.2012
Age : 17
Местожителство : Хасково
My Humor : Cold

ПисанеЗаглавие: [Release] Simple Drop System (Source)   Вто Юли 30, 2013 11:33 am

Simple Drop System
Код:
C_DropSystem Drop;


void C_DropSystem::t_LoadSystem()
{
   this->t_num = 0;
   FILE * hFile;
   fopen_s(&hFile, ".\\CustomItemDropRate.txt", "r");
   char Linha[1024];
   int type,index,lvl,opt,luck,skill,dur,rate,minlvl,maxlvl,exc,ancient;


   if(hFile == 0)
   {
      MessageBox(0, "ItemDropRate.txt - Not Found.", "Error.", MB_OK | MB_ICONSTOP);
      ::ExitProcess(0);
      return;
   }


    while(!feof(hFile))
    {
        fgets(Linha, 1024, hFile);
      if(!strcmp(Linha, "end"))
         break;


      if(Linha[strlen(Linha) - 1] == '\n' || Linha[strlen(Linha) - 1] == '\r')
      {
         if(Linha[0] != '/' || Linha[1] != '/')
         {
            if(t_num > MAX_DROP_NUMBER)
            {
               MessageBoxA(NULL,"Error reading ItemDropRate.txt, number /n\
                           items exceeded the maximum.!","Error",NULL);
               ::ExitProcess(0);
            }
            sscanf_s(Linha, "%d %d %d %d %d %d %d %d %d %d %d", &type, &index, &lvl, &opt, &luck, &skill, &dur, &rate, &minlvl, &maxlvl, &exc);
            t_struct[this->t_num].ItemType      = type;
            t_struct[this->t_num].ItemIndex      = index;
            t_struct[this->t_num].ItemLevel      = lvl;   
            t_struct[this->t_num].ItemOpt      = opt;   
            t_struct[this->t_num].ItemLuck      = luck;   
            t_struct[this->t_num].ItemSkill      = skill;
            t_struct[this->t_num].ItemDur      = dur;   
            t_struct[this->t_num].ItemRate      = rate;   
            t_struct[this->t_num].ItemMinlvl   = minlvl;   
            t_struct[this->t_num].ItemMaxlvl   = maxlvl;
            t_struct[this->t_num].ItemExc      = exc;
            t_num++;
         }
      }
   }
   fclose(hFile);
}
int C_DropSystem::MygEventMonsterItemDrop(BYTE * b_MonsterDataAddr,BYTE * a_gObjAddr)
{
   for(int i = 0; i < t_num; i++)
   {
      WORD wMonsterLv =0;
      WORD wMonsterId =0;
      WORD Player;
      BYTE cMapID,cX,cY;
      PBYTE bDataAddr =0;
      bDataAddr = (PBYTE)b_MonsterDataAddr;


      memcpy(&Player,bDataAddr+0x6A,sizeof(WORD));      // gObj->Name
      memcpy(&wMonsterLv,bDataAddr+0x86,sizeof(WORD));   //gObj->Level
      memcpy(&wMonsterId,bDataAddr+0x83,sizeof(WORD));   //gObj->Class
      memcpy(&cMapID,bDataAddr+0xD9,sizeof(BYTE));      //gObj->MapId
      memcpy(&cX,bDataAddr+0xD4,sizeof(BYTE));         //gObj-X
      memcpy(&cY,bDataAddr+0xD6,sizeof(BYTE));         //gObj->Y


      DWORD Item = t_struct[i].ItemType * 32 + t_struct[i].ItemIndex;
                  
      DWORD dwPena = ItemGetNumberMake(13, 14);
      DWORD dwBless = ItemGetNumberMake(14, 13);
      DWORD dwSoul = ItemGetNumberMake(14, 14);
      DWORD dwLife = ItemGetNumberMake(14, 16);


      DWORD dwTopHitUser = gObjMonsterTopHitDamageUser(b_MonsterDataAddr);
      DWORD dwRand = rand();


      if(wMonsterLv >= t_struct[i].ItemMinlvl)
      {
         if(wMonsterLv <= t_struct[i].ItemMaxlvl)
         {
            if(rand() % t_struct[i].ItemRate >= (10000 - t_struct[i].ItemRate))
            {
            ItemSerialCreateSend(b_MonsterDataAddr[0],cMapID,cX,cY,Item,t_struct[i].ItemLevel,t_struct[i].ItemDur,t_struct[i].ItemSkill,t_struct[i].ItemLuck,t_struct[i].ItemOpt,dwTopHitUser,t_struct[i].ItemExc);
            return 1;
            }
         }
      }
   }
   int rValue = gEventMonsterItemDrop(b_MonsterDataAddr, a_gObjAddr);
   return rValue;
}
void MonsterDropCall(BYTE * b_MonsterDataAddr,BYTE * a_gObjAddr)
{
   Drop.MygEventMonsterItemDrop(b_MonsterDataAddr,a_gObjAddr);
}

Credits: Wikko0 and WebZen
Върнете се в началото Go down
DIEL
Administrator
Administrator
avatar

Брой мнения : 224
Birthday : 13.12.1989
Join date : 24.08.2009
Age : 27
Местожителство : Силистра
My Hobbie : Designer
My Humor : Yee Haw

ПисанеЗаглавие: Re: [Release] Simple Drop System (Source)   Нед Авг 04, 2013 12:30 pm

добър е войда 7/10!

_________________
Ако не ги газех аз, щях да съм на пух и прах.
Върнете се в началото Go down
http://muonline.omgforum.net
 
[Release] Simple Drop System (Source)
Предишната тема Следващата тема Върнете се в началото 
Страница 1 от 1
 Similar topics
-
» Gag System Mysql /nVault

Permissions in this forum:Не Можете да отговаряте на темите
 :: .: Mu Online :. :: Releases-
Идете на: