Ir para conteúdo
Faça parte da equipe! (2024) ×

Sc2ALLin

Ruby Member
  • Total de Posts

    2.137
  • Registro em

  • Última visita

  • Dias Ganhos

    1
  • WCoins

    354

Sc2ALLin ganhou no último dia 31 de Janeiro 2021

Sc2ALLin teve o conteúdo mais curtida!

Sobre Mim

  • Discord
    sc2allin

Últimos Visitantes

3.471 visualizações

Sc2ALLin's Achievements

Experiente

Experiente (8/15)

  • Querido Rara
  • Usuário Notório Rara
  • Notado Rara
  • Senhor do tempo Rara
  • Lenda viva! Rara

Emblemas Recentes

2,2k

Reputação

  1. Oi boa tarde td bem . como q faço para mandar as mensagem ??

  2. Pô, complicado... se tiver umas boas provas mano... já posta aqui, pra coloca ele na blacklist.
  3. Já dizia o Coringa, Se você é bom numa coisa, nunca faça de graça.
  4. //0x4010BE; int GetTownTax(int Zone, int conn) { long long Tax = TownTax[Zone]; int Coin = (int)(Tax / 1000000000); int SilverBar = (int)(Tax / 1000000000); int TotalCoin = pMob[conn].MOB.Coin + Coin; if (TotalCoin >= 2000000000) { SendClientMessage(conn, g_pMessageStringTable[_NN_Cant_get_more_than_2G]); return false; } STRUCT_ITEM Item; memset(&Item, 0, sizeof(STRUCT_ITEM)); Item.sIndex = 4011; if (SilverBar) { int EmptySlot = 0; for (int i = 0; i < MAX_CARRY - 4; ++i) { if (BASE_CanCarry(pMob[conn].MOB.Carry, i)) { if (!pMob[conn].MOB.Carry[i].sIndex) ++EmptySlot; } } if (SilverBar > EmptySlot) { SendClientMessage(conn, g_pMessageStringTable[_NN_You_Have_No_Space_To_Trade]); return false; } for (int j = 0; j < MAX_CARRY - 4; ++j) { if (!pMob[conn].MOB.Carry[j].sIndex) { if (BASE_CanCarry(pMob[conn].MOB.Carry, j)) { memcpy(&pMob[conn].MOB.Carry[j], &Item, sizeof(STRUCT_ITEM)); SendItem(conn, ITEM_PLACE_CARRY, j, &Item); snprintf(szLog, 0x80u, "etc, Town tax silver 10 send (%d)", Zone); Log(szLog, pUser[conn].AccountName, pUser[conn].IP); if (!--SilverBar) break; } } } } TownTax[Zone] = 0; snprintf(szLog, 0x80u, "etc, Town tax coin %d(%d)", Coin, Zone); Log(szLog, pUser[conn].AccountName, pUser[conn].IP); pMob[conn].MOB.Coin = TotalCoin; SendCoin(conn); DrawConfig(1); return true; }
  5. oxe cuidado com oque? até onde eu sei, ele é o melhor.
  6. //0057EB60 int GetMountBonus(int Index, int Damage) { if (Index >= 1000) return Damage; int MountHP = 0; int MountIndex = pMob[Index].MOB.Equip[14].sIndex; if (MountIndex >= 2360 && MountIndex < 2390 && pMob[Index].MOB.Equip[14].stEffect[0].sValue > 0) { int MountDam = g_pMountBonus[ MountIndex - 2360][0]; if (pMob[Index].MOB.Equip[14].stEffect[1].cEffect == 120) MountDam += 10; if (MountDam > 99) MountDam = 99; MountHP = Damage * MountDam / 100; if (MountHP > 0) { if (MountHP >= 5000) MountHP = 5000; ProcessAdultMount(Index, MountHP); } } else if (MountIndex >= 3980 && MountIndex < 4000) { MountHP = Damage * g_pMountBonus2[MountIndex - 2380][0] / 100; } int FinalDam = Damage - MountHP; if (Damage - MountHP <= 0) return true; return FinalDam; }
  7. Bom, eu tenho um penca de conteúdo guardado da antiga CB. Ai acabei encontrando esse pdf aqui de 2017. Então para quem deseja aprender, ta ai. Link: https://mega.nz/file/L10jzJaQ#TjMW7u9xR1DSEs8UXAGRk297hUMWbn1D7UNHIlMJ5f4
  8. Bom, se alguem deseja tentar fazer as envoks fora do grupo usando as descopilações do Gui vou dá uma mãozinha, aquii está onde é necessario mexer. MSG Atack GetEmptyMobGrid CMob::StandingByProcessor CMob::BattleProcessor StandingByProcessor GetAttackArea ProcessAffect MobAttackOne SendSummonParty GenerateSummon GenerateMob MountProcess Lembrando também, que as envoks não ficam mais no partylsit. Elas tem uma variavel só elas, então não confundam.
  9. Pô, pior que não. Acreadito que boa partes dos programador bons hoje em dia ou estão com seus servidores aberto ou até sairam da area do WYD. Só menceionei mesmo para tu tomar cuidado, porque utimamente ta bem complicado. Muita gente que não sabe programar, se meter a programador, outros que não sabem nem usar um if dando cursos de programação então fica atento ai, porque os malandros estão por ai...
  10. Apenas dando um aviso, cuidado heim... dá uma pesquisada antes de entra numa ai. Apenas dando um aviso, cuidado heim... dá uma pesquisada antes de entra numa ai.
  11. Que isso campeão, ressu um tópico de 2020 kkkkkk Não é por nada não, mais tu acha coisa bem melhor por ai hoje em dia.
  12. kkkkkkkkkkkkkkk Os caras tão querendo sua sourcce ai oh...Fica de olho heim
  13. Bom o codigo está quase funicionando, não sei onde foi que eu errei, que toda hora que vai abrir a TMRsv ela manda a seguinte menssagem "not game-server generated gameconfig.txt - Line6". Logo em seguida ela abre, mais renicia as infors salvas toda vez que tu abre. Então quem quiser arrumar sinta-se avontade, a pior parte foi feita. // 0x401154 void Draw(int Draw) { int EncodeValue = *(int*)0xBAF180; int g_NonePKServer = *(int*)0xAACD54; if (GameConfig) { int x = 0; int y = 0; int len = 0; int color = 255; int BlackColor = 0; char String[264]; HDC hdc = GetDC(*hWndMain); if (hdc) { if (!hFont || SelectObject(hdc, hFont)) { FILE* fp = NULL; if (Draw) fp = fopen("gameconfig.txt", "wt"); y -= pMainWndProc->nPos; SetTextColor(hdc, color); sprintf_s(String, "Drop Item Event Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, " 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(fp, "%s\n", &String); SetTextColor(hdc, color); sprintf_s(String, "Etc Event Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, " double %d deadpoint %d dungeonevent %d statsapphire %d battleroyal %d VS: %d translevel: %d", DOUBLEMODE, DEADPOINT, DUNGEONEVENT, StatSapphire, BRItem, VS, TRANSLEVEL); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, color); sprintf_s(String, "Billing Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, " BILLMODE %d FREEEXP %d CHARSELBILL %d POTIONCOUNT %d PARTYBONUS %d GUILDBOARD %d", BILLING, FREEEXP, CHARSELBILL, POTIONCOUNT, PARTYBONUS, GUILDBOARD); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, color); sprintf_s(String, "Item Drop Bonus Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); for (int i = 0; i < 4; ++i) { int pos = 16 * i; sprintf_s(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(fp, "%s\n", &String); } SetTextColor(hdc, color); sprintf_s(String, "Treasure Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); for (int j = 0; j < 16; ++j) { char Buffer[264]{}; STRUCT_TREASURE* Treasure = &g_pTreasure[j]; sprintf_s(Buffer, "%-4d ", g_pTreasure[j].Source); for (int k = 0; k < 5; ++k) { STRUCT_ITEM* TreasureItem = &Treasure->Target[k]; sprintf_s(String, " %-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(Buffer, String); } len = strlen(Buffer); TextOutA(hdc, x, y, Buffer, len); y += 16; if (Draw) fprintf(fp, "%s\n", Buffer); sprintf_s(String, " %-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(fp, "%s\n", &String); } SetTextColor(hdc, color); sprintf_s(String, "Rare Item Drop Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, "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(fp, "%s\n", &String); SetTextColor(hdc, color); sprintf_s(String, "Game Option Settings:"); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); SetTextColor(hdc, BlackColor); sprintf_s(String, "NonePKServer: %d GambleServer: %d KhepraOpen: %d", g_NonePKServer, GAMBLESERVER, KHEPRAOPEN); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "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(fp, "%s\n", &String); sprintf_s(String, "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(fp, "%s\n", &String); sprintf_s(String, "LOTTOTICKET: %d MAXLEVEL: %d CREATECHAR: %d", LOTTOTICKET, MAXLEVEL, CREATECHAR); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "USE8THSKILL: %d MAXLEVELTICKET: %d eventhour: %d", USE8THSKILL, MAXLEVELTICKET, EventHour); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "DUELLETTERLIMIT: %d %d", DUELLETTERLIMIT, DUELLETTERLIMIT2); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", String); sprintf_s(String, "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(fp, "%s\n", &String); sprintf_s(String, "RANDOMQUIZ: %d Exp:%d Coin:%d", RANDOMQUIZ, RandomQuizExp, RandomQuizCoin); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "ITEMPRICE: %d %d SEALOFSOUL:%d", ITEMPRICE1, ITEMPRICE2, SEALOFSOUL); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "NIGHTMARE: %d BLESSMONEY: %I64d", NIGHTMARE, BLESSMONEY); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "ADDCRACKERROR: %d", ADDCRACKERROR); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "Encode %d", EncodeValue); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "logdemon %s %s", cp, LOGDEMON); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "KINGDOMFIELD %d", KINGDOMFIELD); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "ITEMDELETEMODE %d", ITEMDELETEMODE); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "GAMBLEMONEY %d", GAMBLEMONEY); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); sprintf_s(String, "CREATEHARDCHARACTER %d", CREATEHARDCHARACTER); len = strlen(String); TextOutA(hdc, x, y, String, len); y += 16; if (Draw) fprintf(fp, "%s\n", &String); ReleaseDC(*hWndMain, hdc); if (fp) fclose(fp); } } } } //0x4019B5 void ReloadDraw() { int g_NonePKServer = *(int*)0xAACD54; int EncodeValue = *(int*)0xBAF180; FILE* fp = fopen("gameconfig.txt", "rt"); if (fp) { char String[512]; char Buffer[16][32]; int Value[36]; fgets(String, 255, fp); if (strcmp(String, "Drop Item Event Settings:\n")) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line1", "Error", 0x1000u); fclose(fp); } else { for (int i = 0; i < 16; ++i) { Value[i] = -1; memset(Buffer[i], 0, sizeof(Buffer[i])); } fgets(String, 255, fp); sscanf(String, "%s %d %s %d %s %d %s %d %s %d %s %d %d %d %d", Buffer[0], &Value[0], Buffer[1], &Value[1], Buffer[2], &Value[2], Buffer[3], &Value[3], Buffer[4], &Value[4], Buffer[5], &Value[5], &Value[6], &Value[7], &Value[8]); if (strcmp(Buffer[0], "evindex") || strcmp(Buffer[1], "evdelete") || strcmp(Buffer[2], "evon") || strcmp(Buffer[3], "evitem") || strcmp(Buffer[4], "evrate") || strcmp(Buffer[5], "evstart") || 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(fp); } else { 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]; fgets(String, 255, fp); if (strcmp(String, "Etc Event Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line3", "Error", 0x1000u); fclose(fp); } else { for (int j = 0; j < 16; ++j) { Value[j] = -1; memset(Buffer[j], 0, sizeof(Buffer[j])); } fgets(String, 255, fp); sscanf(String, "%s %d %s %d %s %d %s %d %s %d %s %d %s %d", Buffer[0], &Value[0], Buffer[1], &Value[1], Buffer[2], &Value[2], Buffer[3], &Value[3], Buffer[4], &Value[4], Buffer[5], &Value[5], Buffer[6], &Value[6]); if (strcmp(Buffer[0], "double") || strcmp(Buffer[1], "deadpoint") || strcmp(Buffer[2], "dungeonevent") || strcmp(Buffer[3], "statsapphire") || Value[0] == -1 || Value[1] == -1 || Value[2] == -1 || Value[3] == -1) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line4", "Error", 0x1000u); fclose(fp); } else { DOUBLEMODE = Value[0]; DEADPOINT = Value[1]; DUNGEONEVENT = Value[2]; StatSapphire = Value[3]; BRItem = Value[4]; VS = Value[5]; TRANSLEVEL = Value[6]; if (Value[6] < 200 || TRANSLEVEL > 400) TRANSLEVEL = 300; fgets(String, 255, fp); if (strcmp(String, "Billing Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line5", "Error", 0x1000u); fclose(fp); } else { for (int k = 0; k < 16; ++k) { Value[k] = -1; memset(Buffer[k], 0, sizeof(Buffer[k])); } fgets(String, 255, fp); sscanf(String, "%s %d %s %d %s %d %s %d %s %d %s %d", Buffer[0], &Value[0], Buffer[1], &Value[1], Buffer[2], &Value[2], Buffer[3], &Value[3], Buffer[4], &Value[4], Buffer[5], &Value[5]); if (strcmp(Buffer[0], "billmode") || strcmp(Buffer[1], "freeexp") || Value[0] == -1 || Value[1] == -1) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line6", "Error", 0x1000u); fclose(fp); } else { BILLING = Value[0]; FREEEXP = Value[1]; CHARSELBILL = Value[2]; POTIONCOUNT = Value[3]; PARTYBONUS = Value[4]; GUILDBOARD = Value[5]; if (Value[4] < 50 || PARTYBONUS > 200) PARTYBONUS = 100; fgets(String, 255, fp); if (strcmp(String, "Item Drop Bonus Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line7", "Error", 0x1000u); } else { fgets(String, 255, fp); sscanf(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 l = 0; l < 16; ++l) { if (Value[l] < 0 || Value[l] > 3000) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line8", "Error", 0x1000u); fclose(fp); return; } g_pDropBonus[l] = Value[l]; Value[l] = -1; } fgets(String, 255, fp); sscanf(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 l = 0; l < 16; ++l) { if (Value[l] < 0 || Value[l] > 3000) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line9", "Error", 0x1000u); fclose(fp); return; } g_pDropBonus[l + 16] = Value[l]; Value[l] = -1; } fgets(String, 255, fp); sscanf(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 l = 0; l < 16; ++l) { if (Value[l] < 0 || Value[l] > 3000) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line10", "Error", 0x1000u); fclose(fp); return; } g_pDropBonus[l + 32] = Value[l]; Value[l] = -1; } fgets(String, 255, fp); sscanf(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 l = 0; l < 16; ++l) { if (Value[l] < 0 || Value[l] > 3000) { MessageBoxA(*hWndMain, "not game-server generated gameconfig.txt - Line11", "Error", 0x1000u); fclose(fp); return; } g_pDropBonus[l + 48] = Value[l]; Value[l] = -1; } fgets(String, 255, fp); if (strcmp(String, "Treasure Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line12", "Error", 0x1000u); fclose(fp); } else { memset(g_pTreasure, 0, sizeof(g_pTreasure)); for (int j = 0; j < 16; ++j) { STRUCT_TREASURE* Treasure = &g_pTreasure[j]; for (int i = 0; i < 36; i++) Value[i] = -1; fgets(String, 255, fp); sscanf(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", 4)) 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, fp); sscanf(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]; } fgets(String, 255, fp); if (strcmp(String, "Rare Item Drop Settings:\n")) { MessageBoxA(*hWndMain, "not game server generated gameconfig.txt - Line29", "Error", 0x1000u); fclose(fp); } else { RARESWITCH = 0; char Str[4][64]{}; for (int i = 0; i < 4; ++i) memset(Str[i], 0, sizeof(Str[i])); int Draw = false; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %d %s %d %s %d", Str[0], 64, &RARESWITCH, Str[1], 64, &STOPGOLDCOIN, Str[2], 64, &LOCALSERVER, Str[3], 64, &STOPQUEST); fgets(String, 255, fp); 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, fp)) sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &g_NonePKServer, Str[1], 64, &GAMBLESERVER, Str[3], 64, &KHEPRAOPEN); String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &ITEMDESTROY, Str[1], 64, &ITEMMASTER, Str[3], 64, &DOUBLEZONE); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &USE_GUILDWAR_MANTLE, Str[1], 64, &USE_FREE_GAMBLE, Str[3], 64, &CASINOTICKET); String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &LOTTOTICKET, Str[1], 64, &MAXLEVEL, Str[3], 64, &CREATECHAR); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %d %s %d ", Str[0], 64, &USE8THSKILL, Str[1], 64, &MAXLEVELTICKET, Str[3], 64, &EventHour); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %d", Str[0], 64, &DUELLETTERLIMIT, &DUELLETTERLIMIT2); memset(TownTax, 0, 0x28u); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %I64d %I64d %I64d %I64d %I64d", Str[0], 64, &TownTax[0], &TownTax[1], &TownTax[2], &TownTax[3], &TownTax[4]); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %d %s %d", Str[0], 64, &RANDOMQUIZ, Str[1], 64, &RandomQuizExp, Str[3], 64, &RandomQuizCoin); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %d %s %d", Str[0], 64, &ITEMPRICE1, &ITEMPRICE2, Str[1], 64, &SEALOFSOUL); String[0] = 0; fgets(String, 255, fp); sscanf_s(String, "%s %d %s %I64d", Str[0], 64, &NIGHTMARE, Str[1], 64, &BLESSMONEY); String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &ADDCRACKERROR); String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &EncodeValue); String[0] = 0; if (fgets(String, 255, fp)) { sscanf_s(String, "%d %s %s", Str[0], cp, LOGDEMON); BLOCKEDIP = inet_addr(cp); } String[0] = 0; if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &KINGDOMFIELD); if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &ITEMDELETEMODE); if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &GAMBLEMONEY); if (fgets(String, 255, fp)) sscanf_s(String, "%s %d", Str[0], 64, &CREATEHARDCHARACTER); fgets(String, 255, fp); fclose(fp); if (Draw) { GameConfig = 1; DrawConfig(1); } } } } } } } } } } } else { MessageBoxA(*hWndMain, "no gameconfig.txt, server will generate default setting.", "Error", 0x1000u); GameConfig = 1; DrawConfig(1); } }
×
×
  • 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.