Ir para conteúdo

Sc2ALLin

Ruby Member
  • Total de Posts

    2.311
  • Registro em

  • Última visita

  • Dias Ganhos

    6
  • WCoins

    524

Tudo que Sc2ALLin postou

  1. //Adress: 0x401A87 void DoWar(int Index, int Target) { if (Index > 0 && Target >= 0 && Index < MaxGuild && Target < MaxGuild) { if (Index != Target) { char IndexGuildName[12]{}; char TargetGuildName[12]{}; GetGuildName(Index, IndexGuildName); GetGuildName(Target, TargetGuildName); int IndexGuildWar = g_pGuildWar[Index]; if (IndexGuildWar >= MaxGuild) IndexGuildWar = 0; int TargetGuildWar = g_pGuildWar[Target]; if (TargetGuildWar >= MaxGuild) TargetGuildWar = 0; if (Target) { if (IndexGuildWar || TargetGuildWar == Index) { if (IndexGuildWar || TargetGuildWar != Index) { snprintf(Buffer, 0x80u, "err,dowar my:%d ta:%d ct:%d et:%d", Index, Target, IndexGuildWar, TargetGuildWar); Log(Buffer, "-system", 0); } else { snprintf(Buffer, 0x80u, g_pMessageStringTable[_SS_War_Started], IndexGuildName, TargetGuildName); SendNotice(Buffer); g_pGuildWar[Index] = Target; for (int i = 0; i < MAX_USER; ++i) { if (pUser[i].Mode == USER_PLAY && (pMob[i].MOB.Guild == Index || pMob[i].MOB.Guild == Target)) { SendWarInfo(i, g_pGuildZone[4].ChargeClan); } } } } else { snprintf(Buffer, 0x80u, g_pMessageStringTable[_SS_War_Declared], IndexGuildName, TargetGuildName); SendGuildNotice(Index, Buffer); SendGuildNotice(Target, Buffer); g_pGuildWar[Index] = Target; } } else if (IndexGuildWar > 0 && IndexGuildWar < MaxGuild) { GetGuildName(IndexGuildWar, TargetGuildName); if (g_pGuildWar[IndexGuildWar] == Index) { snprintf(Buffer, 0x80u, g_pMessageStringTable[_SS_War_Canceled], IndexGuildName, TargetGuildName); g_pGuildWar[IndexGuildWar] = 0; g_pGuildWar[Index] = 0; for (int j = 0; j < MAX_USER; ++j) { if (pUser[j].Mode == USER_PLAY && (pMob[j].MOB.Guild == Index || pMob[j].MOB.Guild == IndexGuildWar)) { SendWarInfo(j, g_pGuildZone[4].ChargeClan); } } } else { snprintf(Buffer, 0x80u, g_pMessageStringTable[_SS_War_declare_canceled], IndexGuildName, TargetGuildName); g_pGuildWar[Index] = 0; } SendGuildNotice(Index, Buffer); SendGuildNotice(IndexGuildWar, Buffer); } } } else { snprintf(Buffer, 0x80u, "err,dowar my:%d ta:%d", Index, Target); Log(Buffer, "-system", 0); } }
  2. //Adress: 0x401B95 void DoAlly(int Index, int Target) { if (Index > 0 && Target >= 0 && Index < MaxGuild && Target < MaxGuild) { if (Index != Target) { char TargetGuildName[12]{}; char IndexGuildName[12]{}; GetGuildName(Index, IndexGuildName); GetGuildName(Target, TargetGuildName); int IndexGuildAlly = g_pGuildAlly[Index]; if (IndexGuildAlly >= MaxGuild) IndexGuildAlly = 0; if (Target) { if (!IndexGuildAlly) { snprintf(Buffer, 0x80u, g_pMessageStringTable[_SS_Ally_Declared], IndexGuildName, TargetGuildName); SendGuildNotice(Index, Buffer); SendGuildNotice(Target, Buffer); g_pGuildAlly[Index] = Target; } } else { int Ally = g_pGuildAlly[Index]; if (Ally && Ally < MaxGuild) { GetGuildName(Ally, TargetGuildName); snprintf(Buffer, 0x80u, g_pMessageStringTable[_SS_Ally_Canceled], IndexGuildName, TargetGuildName); SendGuildNotice(Index, Buffer); SendGuildNotice(Ally, Buffer); g_pGuildAlly[Index] = 0; g_pGuildAlly[Ally] = 0; } } for (int i = 0; i < MAX_USER; ++i) { if (pUser[i].Mode == USER_PLAY && pMob[i].MOB.Guild == Index) SendWarInfo(i, g_pGuildZone[4].ChargeClan); } } } else { snprintf(Buffer, 0x80u, "err,doally my:%d ta:%d", Index, Target); Log(Buffer, "-system", 0); } }
  3. //Adress: 0x4019D3 void SetCityTower() { GuildLeader = 0; int ClanControl[5] = { 0 }; for (int i = 0; i < 5; ++i) { GuildZoneLeader[i] = 0; int TowerIndex = pItem[i + 1742].ITEM.sIndex; int ChargeCount = g_pGuildZone[i].ChargeCount; int ChargeGuild = g_pGuildZone[i].ChargeGuild; int ChargeClan = g_pGuildZone[i].ChargeClan; GuildZoneLeader[i] = ChargeGuild; ClanControl[i] = ChargeClan; if (ChargeCount >= 4) ChargeCount = 4; else if (ChargeCount < 0) ChargeCount = 0; int ItemIndex = i + 67; pItem[ItemIndex].ITEM.sIndex = ChargeCount + 3145; pItem[ItemIndex].ITEM.stEffect[0].cEffect = 56; pItem[ItemIndex].ITEM.stEffect[0].cValue = ChargeGuild / 256; pItem[ItemIndex].ITEM.stEffect[1].cEffect = 57; pItem[ItemIndex].ITEM.stEffect[1].cValue = ChargeGuild; pItem[ItemIndex].ITEM.stEffect[2].cEffect = 0; pItem[ItemIndex].ITEM.stEffect[2].cValue = 0; if (TowerIndex != pItem[ItemIndex].ITEM.sIndex) { int ItemPosX = pItem[ItemIndex].PosX; int ItemPosY = pItem[ItemIndex].PosY; MSG_CreateItem stCreateItem{}; memset(&stCreateItem, 0, sizeof(MSG_CreateItem)); stCreateItem.Header.Type = MSG_CreateItem_Opcode; stCreateItem.Header.Size = sizeof(MSG_CreateItem); stCreateItem.ItemID = ItemIndex + 15000; memcpy(&stCreateItem.Item, &pItem[ItemIndex].ITEM, sizeof(STRUCT_ITEM)); stCreateItem.GridX = ItemPosX; stCreateItem.GridY = ItemPosY; stCreateItem.Rotate = pItem[ItemIndex].Rotate; stCreateItem.State = pItem[ItemIndex].State; stCreateItem.Height = pItem[ItemIndex].Height; GridMulticast(ItemPosX, ItemPosY, (MSG_STANDARD*)&stCreateItem, 0); } } if (ClanControl[0] == ClanControl[1] && ClanControl[1] == ClanControl[2] && ClanControl[2] == ClanControl[3] && ClanControl[3] == ClanControl[4]) { GuildLeader = ClanControl[0]; } }
  4. Rapaz, isso ai eu não sei não..
  5. Na questão da font, você pode criar um .txt dentro da pasta do cliente com o nome "font" é dentro dela o nome da fonte que você quer. ou se você usa a tmProjetc você pode mudar direto no projeto... Só proucurar por"Tahoma" é mudar o nome para o da font da sua preferencia.
  6. Só jogar na sua hookpatch do seu cliente patch. strcpy((char*)0x5F9320, "Meu Servidor");
  7. BOm, isso ta com cara de ser cliver... Tem que verificar se o cliver do cliente é compativel com o do servidor. Por exemplo, se o cliver do cliente estiver 1052, e o do servidor estiver 1051. Vai dá diferença.
  8. Eita, tu viu onde? tem video? to tentando descobrir como funciona essas funções... essa do Lotto eu já descobri, é um sistema de Bet onde você faz a aposta no Time A ou Time B ou tu aposta no empate.. Ai tem a a odds que multiplica o valor caso você acerte o placar.
  9. Bom, não tem misterio, a versão 7.556 é uma versão oficial do jogo vazada. Então ela tem todos os sistemas introduzidos, o problema mesmo é descobrir como eles funcionam. Ai, eu uso logica, uso cliente, uso tudo para tentar descobrir. Tem outros sistemas também... esses aqui por exemplo.
  10. É fera, WYD é cheio dos sistemas...
  11. Hum...vou vê se acho algum video relacionado no Yout.
  12. Sc2ALLin

    WYD ToTo Sports

    E ai seus putos.. Bom, a muito tempo venho descopilando o 7.56 para tentar desvendar seus vastos sistemas... É recentimente achei esse aqui, parece ser alguma coisa relacionada com a copa do mundo. Alguém saberia como funciona esse sistema? ou já viu em funcionamento?
  13. void ReadConfig() { FILE* Stream = nullptr; fopen_s(&Stream, "gameconfig.txt", "rt"); if (!Stream) { MessageBoxA(hWndMain, "no gameconfig.txt, server will generate default setting.", "Error", 0x1000u); GameConfig = 1; DrawConfig(1); return; } char Parm[16][32]{}; int Value[36]{}; char String[255]{}; // ================= Drop Item Event Settings ================= fgets(String, 255, Stream); if (strcmp(String, "Drop Item Event Settings:\n")) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - Line1", "Error", 0x1000u); fclose(Stream); return; } for (int i = 0; i < 16; ++i) { Value[i] = -1; memset(Parm[i], 0, 0x20u); } fgets(String, 255, Stream); sscanf_s(String, "%s %d %s %d %s %d %s %d %s %d %s %d %d %d %d", Parm[0], sizeof(Parm[0]), &Value[0], Parm[1], sizeof(Parm[1]), &Value[1], Parm[2], sizeof(Parm[2]), &Value[2], Parm[3], sizeof(Parm[3]), &Value[3], Parm[4], sizeof(Parm[4]), &Value[4], Parm[5], sizeof(Parm[5]), &Value[5], &Value[6], &Value[7], &Value[8]); if (strcmp(Parm[0], "evindex") || strcmp(Parm[1], "evdelete") || strcmp(Parm[2], "evon") || strcmp(Parm[3], "evitem") || strcmp(Parm[4], "evrate") || strcmp(Parm[5], "evstart")) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - Line2", "Error", 0x1000u); fclose(Stream); return; } if (Value[0] == -1 || Value[1] == -1 || Value[2] == -1 || Value[3] == -1 || Value[4] == -1 || Value[5] == -1 || Value[6] == -1 || Value[7] == -1) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - Line2", "Error", 0x1000u); fclose(Stream); return; } evIndex = Value[0]; evDelete = Value[1]; evOn = Value[2]; evItem = Value[3]; evRate = Value[4]; evStartIndex = Value[5]; evCurrentIndex = Value[6]; evEndIndex = Value[7]; evNotice = Value[8]; // ================= Etc Event Settings ================= fgets(String, 255, Stream); if (strcmp(String, "Etc Event Settings:\n")) { MessageBoxA(hWndMain, "not game server generated gameconfig.txt - Line3", "Error", 0x1000u); fclose(Stream); return; } for (int i = 0; i < 16; ++i) { Value[i] = -1; memset(Parm[i], 0, 0x20u); } fgets(String, 255, Stream); sscanf_s(String, "%s %d %s %d %s %d %s %d %s %d %s %d %s %d", Parm[0], sizeof(Parm[0]), &Value[0], Parm[1], sizeof(Parm[1]), &Value[1], Parm[2], sizeof(Parm[2]), &Value[2], Parm[3], sizeof(Parm[3]), &Value[3], Parm[4], sizeof(Parm[4]), &Value[4], Parm[5], sizeof(Parm[5]), &Value[5], Parm[6], sizeof(Parm[6]), &Value[6]); if (strcmp(Parm[0], "double") || strcmp(Parm[1], "deadpoint") || strcmp(Parm[2], "dungeonevent") || strcmp(Parm[3], "statsapphire")) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - Line4", "Error", 0x1000u); fclose(Stream); return; } if (Value[0] == -1 || Value[1] == -1 || Value[2] == -1 || Value[3] == -1) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - Line4", "Error", 0x1000u); fclose(Stream); return; } DOUBLEMODE = Value[0]; DEADPOINT = Value[1]; DUNGEONEVENT = Value[2]; StatSapphire = Value[3]; BrItem = Value[4]; VSMode = Value[5]; TRANSLEVEL = Value[6]; if (TRANSLEVEL < 200 || TRANSLEVEL > 400) TRANSLEVEL = 300; // ================= Etc Settings ================= fgets(String, 255, Stream); if (strcmp(String, "Etc Settings:\n")) { MessageBoxA(hWndMain, "not game server generated gameconfig.txt - Line5", "Error", 0x1000u); fclose(Stream); return; } for (int i = 0; i < 16; ++i) { Value[i] = -1; memset(&Parm[i], 0, 0x20u); } fgets(String, 255, Stream); sscanf_s(String, "%s %d %s %d %s %d %s %d %s %d %s %d", Parm[0], sizeof(Parm[0]), &Value[0], Parm[1], sizeof(Parm[1]), &Value[1], Parm[2], sizeof(Parm[2]), &Value[2], Parm[3], sizeof(Parm[3]), &Value[3], Parm[4], sizeof(Parm[4]), &Value[4], Parm[5], sizeof(Parm[5]), &Value[5]); if (strcmp(Parm[0], "freeexp")) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - Line6", "Error", 0x1000u); fclose(Stream); return; } if (Value[0] == -1) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - Line6", "Error", 0x1000u); fclose(Stream); return; } FREEEXP = Value[0]; POTIONCOUNT = Value[1]; PARTYBONUS = Value[2]; GUILDBOARD = Value[3]; if (PARTYBONUS < 50 || PARTYBONUS > 200) PARTYBONUS = 100; // ================= Item Drop Bonus Settings ================= fgets(String, 255, Stream); if (strcmp(String, "Item Drop Bonus Settings:\n")) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - Line7", "Error", 0x1000u); fclose(Stream); return; } for (int m = 0; m < 4; m++) { fgets(String, 255, Stream); sscanf_s(String, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d", &Value[0], &Value[1], &Value[2], &Value[3], &Value[4], &Value[5], &Value[6], &Value[7], &Value[8], &Value[9], &Value[10], &Value[11], &Value[12], &Value[13], &Value[14], &Value[15]); for (int j = 0; j < 16; ++j) { if (Value[j] < 0 || Value[j] > 3000) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - DropBonus", "Error", 0x1000u); fclose(Stream); return; } g_pDropBonus[m * 16 + j] = Value[j]; Value[j] = -1; } } // ================= Treasure Settings ================= fgets(String, 255, Stream); if (strcmp(String, "Treasure Settings:\n")) { MessageBoxA(hWndMain, "not game-server generated gameconfig.txt - Line12", "Error", 0x1000u); fclose(Stream); return; } memset(g_pTreasure, 0, sizeof(g_pTreasure)); for (int j = 0; j < 17; ++j) { STRUCT_TREASURE* Treasure = &g_pTreasure[j]; for (int i = 0; i < 26; i++) Value[i] = -1; fgets(String, 255, Stream); sscanf_s(String, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d" " %d %d %d %d %d %d %d", &Value[0], &Value[1], &Value[2], &Value[3], &Value[4], &Value[5], &Value[6], &Value[7], &Value[8], &Value[9], &Value[10], &Value[11], &Value[12], &Value[13], &Value[14], &Value[15], &Value[16], &Value[17], &Value[18], &Value[19], &Value[20], &Value[21], &Value[22], &Value[23], &Value[24], &Value[25], &Value[26], &Value[27], &Value[28], &Value[29], &Value[30], &Value[31], &Value[32], &Value[33], &Value[34], &Value[35]); if (!strncmp(String, "Rare", 4u)) break; Treasure->Source = Value[0]; for (int i = 0; i < 5; ++i) { STRUCT_ITEM* TreasureItem = &Treasure->Target[i]; TreasureItem->sIndex = Value[7 * i + 1]; TreasureItem->stEffect[0].cEffect = Value[7 * i + 2]; TreasureItem->stEffect[0].cValue = Value[7 * i + 3]; TreasureItem->stEffect[1].cEffect = Value[7 * i + 4]; TreasureItem->stEffect[1].cValue = Value[7 * i + 5]; TreasureItem->stEffect[2].cEffect = Value[7 * i + 6]; TreasureItem->stEffect[2].cValue = Value[7 * i + 7]; } fgets(String, 255, Stream); sscanf_s(String, "%d %d %d %d %d", &Value[0], &Value[1], &Value[2], &Value[3], &Value[4]); for (int i = 0; i < 5; ++i) Treasure->Rate[i] = Value[i]; } // ================= Rare Item Drop Settings ================= char Str[5][64]{}; if (strcmp(String, "Rare Item Drop Settings:\n")) { MessageBoxA(hWndMain, "not game server generated gameconfig.txt - Line29", "Error", 0x1000u); fclose(Stream); return; } memset(g_pRare, 0, sizeof(g_pRare)); for (int i = 0; i < 8; ++i) { STRUCT_RARE* Rare = &g_pRare[i]; STRUCT_ITEM* RareItem = &g_pRare[i].item; fgets(String, 255, Stream); sscanf_s(String, "%d %d %hd %hhu %hhu %hhu %hhu %hhu %hhu %s %d", &Rare->MonsterFace, &Rare->DropRate, &RareItem->sIndex, &RareItem->stEffect[0].cEffect, &RareItem->stEffect[0].cValue, &RareItem->stEffect[1].cEffect, &RareItem->stEffect[1].cValue, &RareItem->stEffect[2].cEffect, &RareItem->stEffect[2].cValue, Str[4], sizeof(Str[4]), &Rare->Count); } for (int i = 0; i < 5; i++) memset(Str[i], 0, sizeof(Str[i])); RARESWITCH = 0; bool Draw = false; // ================= Game Option Settings ================= fgets(String, 255, Stream); sscanf_s(String, "%s %d %s %d %s %d %s %d", Str[0], sizeof(Str[0]), &RARESWITCH, Str[1], sizeof(Str[1]), &STOPGOLDCOIN, Str[2], sizeof(Str[2]), &LOCALSERVER, Str[3], sizeof(Str[3]), &STOPQUEST); fgets(String, 255, Stream); int g_NonePKServer = *(int*)0xAACD54; if (strcmp(String, "Game Option Settings:\n")) { g_NonePKServer = 0; ITEMDESTROY = 100; ITEMMASTER = 0; DOUBLEZONE = 0; Draw = true; } String[0] = 0; if (fgets(String, 255, Stream)) sscanf_s(String, "%s %d %s %d %s %d", Str[1], sizeof(Str[1]), &g_NonePKServer, Str[2], sizeof(Str[2]), &GAMBLESERVER, Str[3], sizeof(Str[3]), &KHEPRAOPEN); String[0] = 0; if (fgets(String, 255, Stream)) sscanf_s(String, "%s %d %s %d %s %d", Str[1], sizeof(Str[1]), &ITEMDESTROY, Str[2], sizeof(Str[2]), &ITEMMASTER, Str[3], sizeof(Str[3]), &DOUBLEZONE); String[0] = 0; fgets(String, 255, Stream); sscanf_s(String, "%s %d %s %d %s %d", Str[1], sizeof(Str[1]), &USE_GUILDWAR_MANTLE, Str[2], sizeof(Str[2]), &USE_FREE_GAMBLE, Str[3], sizeof(Str[3]), &CASINOTICKET); String[0] = 0; if (fgets(String, 255, Stream)) sscanf_s(String, "%s %d %s %d %s %d %s %d", Str[1], sizeof(Str[1]), &LOTTOTICKET, Str[2], sizeof(Str[2]), &MAXLEVEL, Str[3], sizeof(Str[3]), &MAXLEVEL2, Str[4], sizeof(Str[4]), &CREATECHAR); String[0] = 0; fgets(String, 255, Stream); sscanf_s(String, "%s %d %s %d %s %d ", Str[1], sizeof(Str[1]), &USE8THSKILL, Str[2], sizeof(Str[2]), &MAXLEVELTICKET, Str[3], sizeof(Str[3]), &EventHour); String[0] = 0; fgets(String, 255, Stream); sscanf_s(String, "%s %d %s %d", Str[1], sizeof(Str[1]), &DUELLETTERLIMIT, Str[2], sizeof(Str[2]), &DUELLETTERLIMIT2); memset(TownTax, 0, sizeof(TownTax)); String[0] = 0; fgets(String, 255, Stream); sscanf_s(String, "%s %I64d %s %I64d %s %I64d %s %I64d %s %I64d", Str[0], sizeof(Str[0]), &TownTax[0], Str[1], sizeof(Str[1]), &TownTax[1], Str[2], sizeof(Str[2]), &TownTax[2], Str[3], sizeof(Str[3]), &TownTax[3], Str[4], sizeof(Str[4]), &TownTax[4]); String[0] = 0; fgets(String, 255, Stream); sscanf_s(String, "%s %d %s %d %s %d", Str[1], sizeof(Str[1]), &RANDOMQUIZ, Str[2], sizeof(Str[2]), &RandomQuizExp, Str[2], sizeof(Str[3]), &RandomQuizCoin); String[0] = 0; fgets(String, 255, Stream); sscanf_s(String, "%s %d %d %s %d", Str[1], sizeof(Str[1]), &ITEMPRICE1, &ITEMPRICE2, Str[2], sizeof(Str[2]), &SEALOFSOUL); String[0] = 0; fgets(String, 255, Stream); sscanf_s(String, "%s %d %s %I64d", Str[1], sizeof(Str[1]), &NIGHTMARE, Str[2], sizeof(Str[2]), &BLESSMONEY); String[0] = 0; if (fgets(String, 255, Stream)) sscanf_s(String, "%s %d", Str[1], sizeof(Str[1]), &ADDCRACKERROR); String[0] = 0; //if (fgets(String, 255, Stream)) // sscanf_s(String, "%s %d", Str[1], sizeof(Str[1]), &EncodeByte); //String[0] = 0; //if (fgets(String, 255, Stream)) //{ // sscanf_s(String, "%s %c %s %c", Str[1], sizeof(Str[1]), &cp, Str[2], sizeof(Str[2]), &aLogdemon); // BLOCKEDIP = inet_addr(cp); //} String[0] = 0; if (fgets(String, 255, Stream)) sscanf_s(String, "%s %d", Str[1], sizeof(Str[1]), &KINGDOMFIELD); if (fgets(String, 255, Stream)) sscanf_s(String, "%s %d", Str[1], sizeof(Str[1]), &ITEMDELETEMODE); if (fgets(String, 255, Stream)) sscanf_s(String, "%s %d", Str[1], sizeof(Str[1]), &GAMBLEMONEY); if (fgets(String, 255, Stream)) sscanf_s(String, "%s %d", Str[1], sizeof(Str[1]), &CREATEHARDCHARACTER); if (fgets(String, 255, Stream)) sscanf_s(String, "%s %d %s %d", Str[0], sizeof(Str[0]), &KhepraGuildKiller, Str[1], sizeof(Str[1]), &RuneZoneState); fclose(Stream); if (Draw) { GameConfig = 1; DrawConfig(1); } } void DrawConfig(int Draw) { int x = 0; int y = 0; int color = 255; int BlackColor = 0; if (GameConfig) { int g_NonePKServer = *(int*)0xAACD54; HDC hdc = GetDC(hWndMain); if (hdc) { int len = 0; char String[256]{}; if (!hFont || SelectObject(hdc, hFont) != 0) { FILE* Stream = nullptr; if (Draw) fopen_s(&Stream, "gameconfig.txt", "wt"); y -= pMainWndProc.nPos; SetTextColor(hdc, color); snprintf(String, 0x100u, "Drop Item Event Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, BlackColor); snprintf(String, 0x100u, " evindex %d evdelete %d evon %d evitem %d evrate %d evstart %d %d %d %d", evIndex, evDelete, evOn, evItem, evRate, evStartIndex, evCurrentIndex, evEndIndex, evNotice); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, color); snprintf(String, 0x100u, "Etc Event Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, BlackColor); snprintf(String, 0x100u, " double %d deadpoint %d dungeonevent %d statsapphire %d battleroyal %d VS: %d translevel: %d", DOUBLEMODE, DUNGEONEVENT, DEADPOINT, StatSapphire, BrItem, VSMode, TRANSLEVEL); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, color); snprintf(String, 0x100u, "Etc Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, BlackColor); snprintf(String, 0x100u, " freeexp %d potioncount %d partybonus %d guildboard %d", FREEEXP, POTIONCOUNT, PARTYBONUS, GUILDBOARD); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, color); snprintf(String, 0x100u, "Item Drop Bonus Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, BlackColor); for (int i = 0; i < 4; ++i) { int pos = 16 * i; snprintf(String, sizeof(String), " %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d", g_pDropBonus[0 + pos], g_pDropBonus[1 + pos], g_pDropBonus[2 + pos], g_pDropBonus[3 + pos], g_pDropBonus[4 + pos], g_pDropBonus[5 + pos], g_pDropBonus[6 + pos], g_pDropBonus[7 + pos], g_pDropBonus[8 + pos], g_pDropBonus[9 + pos], g_pDropBonus[10 + pos], g_pDropBonus[11 + pos], g_pDropBonus[12 + pos], g_pDropBonus[13 + pos], g_pDropBonus[14 + pos], g_pDropBonus[15 + pos]); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", String); } SetTextColor(hdc, color); snprintf(String, 0x100u, "Treasure Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, BlackColor); for (int j = 0; j < 16; ++j) { char Dest[256]{}; STRUCT_TREASURE* Treasure = &g_pTreasure[j]; snprintf(Dest, 0x100u, "%-4d ", g_pTreasure[j].Source); for (int k = 0; k < 5; ++k) { STRUCT_ITEM* TreasureItem = &Treasure->Target[k]; snprintf(String, 0x100u, " %-4d %2d %2d %2d %2d %2d %2d ", TreasureItem->sIndex, Treasure->Target[k].stEffect[0].cEffect, Treasure->Target[k].stEffect[0].cValue, Treasure->Target[k].stEffect[1].cEffect, Treasure->Target[k].stEffect[1].cValue, Treasure->Target[k].stEffect[2].cEffect, Treasure->Target[k].stEffect[2].cValue); strcat_s(Dest, String); } len = strlen(Dest); TextOutA(hdc, x, y, Dest, len); y += 16; if (Draw) fprintf(Stream, "%s\n", Dest); snprintf(String, 0x100u, " %-5d %-5d %-5d %-5d %-5d", Treasure->Rate[0], Treasure->Rate[1], Treasure->Rate[2], Treasure->Rate[3], Treasure->Rate[4]); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); } SetTextColor(hdc, color); snprintf(String, 0x100u, "Rare Item Drop Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, BlackColor); for (int i = 0; i < 8; ++i) { snprintf(String, 0x100u, "%-4d %-8d %-4d %-4d %-4d %-4d %-4d %-4d %-4d x %2d", g_pRare[i].MonsterFace, g_pRare[i].DropRate, g_pRare[i].item.sIndex, g_pRare[i].item.stEffect[0].cEffect, g_pRare[i].item.stEffect[0].cValue, g_pRare[i].item.stEffect[1].cEffect, g_pRare[i].item.stEffect[1].cValue, g_pRare[i].item.stEffect[2].cEffect, g_pRare[i].item.stEffect[2].cValue, g_pRare[i].Count); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); } snprintf(String, 0x100u, "rare mode : %d StopGoldCoin: %d LocalServer : %d Stop Quest : %d", RARESWITCH, STOPGOLDCOIN, LOCALSERVER, STOPQUEST); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, color); snprintf(String, 0x100u, "Game Option Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); SetTextColor(hdc, BlackColor); snprintf(String, 0x100u, "NonePKServer: %d GambleServer: %d KhepraOpen: %d", g_NonePKServer, GAMBLESERVER, KHEPRAOPEN); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "ItemDestroy: %d ItemMaster: %d EXP_NOT_DOUBLE_ZONE: %d", ITEMDESTROY, ITEMMASTER, DOUBLEZONE); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "USE_GUILDWAR_MANTLE: %d USE_FREE_GAMBLE: %d casinoticket: %d", USE_GUILDWAR_MANTLE, USE_FREE_GAMBLE, CASINOTICKET); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "lottoTicket: %d maxlevel: %d maxlevel2: %d createchar: %d", LOTTOTICKET, MAXLEVEL, MAXLEVEL2, CREATECHAR); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "8thskill: %d maxlevelticket: %d eventhour: %d", USE8THSKILL, MAXLEVELTICKET, EventHour); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "duelletterlimit: %d %d", DUELLETTERLIMIT, DUELLETTERLIMIT2); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "TownTax: %I64d %I64d %I64d %I64d %I64d", TownTax[0], TownTax[1], TownTax[2], TownTax[3], TownTax[4]); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "randomquiz: %d exp:%d coin:%d", RANDOMQUIZ, RandomQuizExp, RandomQuizCoin); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "itemprice: %d %d sealofsoul:%d", ITEMPRICE1, ITEMPRICE2, SEALOFSOUL); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "nightmare: %d blessmoney: %I64d", NIGHTMARE, BLESSMONEY); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "addcrackerror: %d", ADDCRACKERROR); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; //if (Draw) // fprintf(Stream, "%s\n", &String); //snprintf(String, 0x100u, "encode %s", EncodeByte); //len = strlen(String); //TextOutA(hdc, x, y, String, len); //y += 16; //if (Draw) // fprintf(Stream, "%s\n", &String); //snprintf(String, 0x100u, "logdemon %s %s", cp, aLogdemon); //len = strlen(String); //TextOutA(hdc, x, y, String, len); //y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "kingdomfield %d", KINGDOMFIELD); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "ItemDeleteMode %d", ITEMDELETEMODE); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "GameBleMoney %d", GAMBLEMONEY); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "CreateHardCharactor %d", CREATEHARDCHARACTER); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); snprintf(String, 0x100u, "KhepraGuild %d RuneGate %d", KhepraGuildKiller, RuneZoneState); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(Stream, "%s\n", &String); ReleaseDC(hWndMain, hdc); if (Stream) fclose(Stream); } } } }
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.