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

Sc2ALLin

Ruby Member
  • Total de Posts

    2.158
  • Registro em

  • Última visita

  • Dias Ganhos

    1
  • WCoins

    367

Tudo que Sc2ALLin postou

  1. 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: [Hidden Content]
  2. 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.
  3. 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...
  4. 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.
  5. 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.
  6. kkkkkkkkkkkkkkk Os caras tão querendo sua sourcce ai oh...Fica de olho heim
  7. 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); } }
  8. Conheço uns 2 caras aqui que falaram que vendem.... (To zuando heim..)
  9. Cuidado heim, antes de comprar qualquer coisa aqui dentro. Dê uma passa na blacklist do fórum para vê as pessoas não confiáveis, é também evite comprar projetos mirabolantes, com 300 milhões de funções extras. Esses são os piores.
  10. Cuidado...Cuidado. Tenha em mente que conteúdo bom não é barato.
  11. Infelizmente isso acontece com muito frequência hoje em dia, minha dica para você é pegar uma base limpa. Acho que eu mesmo postei uma faz um tempo, deve ta perdida aqui pela comunidade. Baixe ela e comece você mesmo seu servidor, sem códigos maliciosos, sem códigos poluídos.
  12. Se a sua idea é ter um estilo BR, basta usar uma 7.56.... É perfeita em quase todos os requisitos, mais peca em outros(Limites).
  13. Toma vengaonha rapaz...Querer vender a KOFD é o cúmulo.. Aqui camepão o RE-UP. Source Link: [Hidden Content] Scan: [Hidden Content] Release Link: [Hidden Content] Scan: [Hidden Content]
  14. // 0x401834; int UpdateMantle(int Mantle, int Clan) { int MandleLev = BASE_GetMandleLev(Mantle); if (Clan == 6) return MandleLev; switch (MandleLev) { case 3199: if (Clan== KINGDOM_BLUE) Mantle = 3197; if (Clan == KINGDOM_RED) return 3198; break; case 3196: if (Clan== KINGDOM_BLUE) Mantle = 3194; if (Clan == KINGDOM_RED) return 3195; break; case 3193: if (Clan== KINGDOM_BLUE) Mantle = 3191; if (Clan == KINGDOM_RED) return 3192; break; case 572: if (Clan== KINGDOM_BLUE) Mantle = 1766; if (Clan == KINGDOM_RED) return 1769; break; case 574: if (Clan== KINGDOM_BLUE) Mantle = 1768; if (Clan == KINGDOM_RED) return 1771; break; case 549: if (Clan== KINGDOM_BLUE) Mantle = 543; if (Clan == KINGDOM_RED) return 544; break; case 548: if (Clan== KINGDOM_BLUE) Mantle = 545; if (Clan == KINGDOM_RED) return 546; break; case 573: if (Clan== KINGDOM_BLUE) Mantle = 1767; if (Clan == KINGDOM_RED) return 1770; break; } return Mantle; } //0x4018C5 int BASE_GetMandleLev(int mantle) { int midx = 0; switch (mantle) { case 3197: case 3198: case 3199: return 3199; case 3194: case 3195: case 3196: return 3196; case 3191: case 3192: case 3193: return 3193; case 1766: case 1769: case 572: return 572; case 1767: case 1770: case 573: return 573; case 1768: case 1771: case 574: return 574; case 543: case 544: case 549: return 549; case 545: case 546: case 548: return 548; } return midx; }
  15. bool Exec_MSG_UpdateItem(int conn, char* pMsg) { MSG_UpdateItem* stUpdateItem = (MSG_UpdateItem*)pMsg; if (!pMob[conn].MOB.CurrentScore.Hp && pUser[conn].Mode == USER_PLAY) { SendHpMode(conn); AddCrackError(conn, 1, 16); return false; } int GateID = stUpdateItem->ItemID - 15000; if (GateID >= 0 && GateID < MAX_ITEMLIST) { int State = pItem[GateID].State; int NexState = stUpdateItem->State; if (State != 3 || NexState != 3) { int DoorKey = BASE_GetItemAbility(&pItem[GateID].ITEM, EF_KEYID); int Key = 0; if (DoorKey) { for (int i = 0; i < MAX_CARRY; ++i) { Key = BASE_GetItemAbility(&pMob[conn].MOB.Carry[i], EF_KEYID); if (Key == DoorKey) { memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM)); SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]); break; } } } if (Key != DoorKey) { if (pItem[GateID].ITEM.sIndex != 773) //Portão do Castelo { if (pItem[GateID].ITEM.sIndex != 359) //Moita SendClientMessage(conn, g_pMessageStringTable[_NN_No_Key]); return false; } } else { int Height = 0; int isUpdate = UpdateItem(GateID, NexState, &Height); if (isUpdate) { stUpdateItem->Height = Height; GridMulticast(pItem[GateID].PosX, pItem[GateID].PosY, (MSG_STANDARD*)stUpdateItem, 0); return false; } } } } else { AddCrackError(conn, 30, 52); snprintf(szLog, 128, "UpdateItem Crash - MAC:%X%X%X%X", pUser[conn].Mac[0], pUser[conn].Mac[1], pUser[conn].Mac[2], pUser[conn].Mac[3]); Log(szLog, pUser[conn].AccountName, pUser[conn].IP); return false; } return false; }
  16. fico imaginando um cabra desse indo abrir um bo na delegacia... -O que houve cidadão. Roubaram minha hospendagem senhor. kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk Pelo amor de Deus gente, vamos procurar se informa antes de sair contratando qualquer um que se diz alguma coisa.
  17. Sinceramente, já está na hora de acabar o marketplace da área do WYD é dá um ban em quem for pego vendo aqui dentro da (WC), pelo amor de Deus todo dia, e alguém reclamando que tomou uma volta de fulano, outro que tomou volta de ciclano. Sem contar os arquivos que são vendidos, muitas das vezes já está até postado aqui. Mais vem os experinhos é vende pros mais leigos no assunto.
  18. //0x4088A0 int BASE_GetMobAbility(STRUCT_MOB* mob, char Type) { int value = 0; if (Type == 27) { value = BASE_GetMaxAbility(mob, Type); if (value < 2 && mob->Class == 3 && (mob->LearnedSkill & 0x80000) != 0) return 2; return value; } else { int nUnique[16]; memset(nUnique, 0, sizeof(nUnique)); for (int i = 0; i < MAX_EQUIP; ++i) { if (mob->Equip[i].sIndex || i == 7) { if (i >= 1 && i <= 5) nUnique[i] = g_pItemList[mob->Equip[i].sIndex].nUnique; if ((Type != EF_DAMAGE || i != 6) && (Type != EF_MAGIC || i != 7)) { if (i == 7 && Type == EF_DAMAGE) { int ldam = BASE_GetItemAbility(&mob->Equip[6], EF_DAMAGE2) + BASE_GetItemAbility(&mob->Equip[6], Type); int rdam = BASE_GetItemAbility(&mob->Equip[7], EF_DAMAGE2) + BASE_GetItemAbility(&mob->Equip[7], Type); int lidx = mob->Equip[6].sIndex; int ridx = mob->Equip[7].sIndex; int ltype = 0; if (lidx > 0 && lidx < MAX_ITEMLIST) ltype = g_pItemList[lidx].nUnique; int rtype = 0; if (ridx > 0 && ridx < MAX_ITEMLIST) rtype = g_pItemList[ridx].nUnique; if (ltype && rtype) { if (ltype == 47 && rtype == 45) { value += ldam; } else { int multi = 0; if (ltype == rtype) multi = 50; else multi = 30; if (mob->Class == TRANSKNIGHT && (mob->LearnedSkill & 0x200) != 0) multi += 15; if (mob->Class == HUNTRESS && (mob->LearnedSkill & 0x400) != 0) multi += 10; if (ldam <= rdam) value += multi * ldam / 100 + rdam; else value += multi * rdam / 100 + ldam; } } else if (ldam <= rdam) { value += rdam; } else { value += ldam; } } else { value += BASE_GetItemAbility(&mob->Equip[i], Type); } } } } if ((Type == EF_AC || Type == EF_ACADD) && (!nUnique[1] || nUnique[1] == nUnique[2]) && nUnique[2] && nUnique[2] == nUnique[3] && nUnique[3] == nUnique[4] && nUnique[4] == nUnique[5]) { if (mob->Equip[0].sIndex % 10 > 5 && nUnique[2] == 10) return value; value = 105 * value / 100; } if (value < 0) return 0; return value; } }
×
×
  • 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.