Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Dodatkowa szansa na metina/bossa

Featured Replies

Opublikowano

Dodatkowa szansa na resp bossa z bossa

Dog Grooming GIF by MOODMAN

char_battle.cpp

SZUKAJ:
void CHARACTER::Dead

Tylko zalogowani Zaloguj się, aby wyświetlić chronioną treść Ten post zawiera treści dostępne tylko dla członków. Zaloguj się lub utwórz konto, aby odblokować całą zawartość tego posta. Zaloguj się Utwórz konto

Edytowane przez Arta

Opublikowano
  • Autor
W dniu 28.03.2025 o 04:04, luwiart napisał(a):

Popraw link :)

Faktycznie jak tylko będę na kompie przywróce link bo forum zgasło wieczorem i widocznie się nie zedytowalo. Dzięki

Opublikowano
  • Programista

d63edd9af879f866baea5e3c5b506959.jpg

No tak.

Po co użyć czegoś co jest już domyślnie zrobione w grze, skoro można jeszcze raz, gorzej.

Poszerzamy mob_proto o nową kolumnę:

wtf.png

Modyfikujemy strukturę TMobTable (common/tables.h) w poniższy sposób:

C++Kod został skopiowany
typedef struct SMobTable : public SEntityTable{  // </>  DWORD dwSummonVnum;  DWORD dwSummonChance;  // </>} TMobTable;

Modyfikujemy db/ClientManagerBoot.cpp w ten sposób:

C++Kod został skopiowany
enum MProtoT{  // </>  summon,  summon_chance,  // </>}; boolCClientManager::InitializeMobTableFromDB(){  // </>  "dam_multiply, summon, summon_chance, drain_sp,"  // </>  VERIFY_IFIELD(MProto::summon, mob_table->dwSummonVnum);  VERIFY_IFIELD(MProto::summon_chance, mob_table->dwSummonChance);}

Modyfikujemy game/char_battle.cpp w poniższy sposób:

C++Kod został skopiowany
DWORDCHARACTER::GetSummonVnum() const{  return m_pkMobData ? m_pkMobData->m_table.dwSummonVnum : 0;} DWORDCHARACTER::GetSummonChance() const{  return m_pkMobData ? m_pkMobData->m_table.dwSummonChance : 0;} voidCHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead){  // </>  // killer check  if (pkKiller && pkKiller->IsPC()) {    // victim check    if (!IsPC()) {      auto vnum = GetSummonVnum();       if (vnum && number(1, 100) <= GetSummonChance()) {        CHARACTER_MANAGER::instance().SpawnMob(          vnum, GetMapIndex(), GetX(), GetY(), GetZ(), true);         pkKiller->ChatPacket(CHAT_TYPE_INFO,                             LC_TEXT("Spawn additional boss - success"));      }    }  }}

Modyfikujemy game/char.h w ten sposób:

C++Kod został skopiowany
// </>DWORD GetSummonVnum() const;DWORD GetSummonChance() const;// </>

Na sam koniec pozostała edycja locale_string:

wtf2.png

Edytowane przez Thorek

Opublikowano
  • Autor
W dniu 30.03.2025 o 15:33, Thorek napisał(a):

d63edd9af879f866baea5e3c5b506959.jpg

No tak.

Po co użyć czegoś co jest już domyślnie zrobione w grze, skoro można jeszcze raz, gorzej.

Poszerzamy mob_proto o nową kolumnę:

wtf.png

Modyfikujemy strukturę TMobTable (common/tables.h) w poniższy sposób:

C++Kod został skopiowany
typedef struct SMobTable : public SEntityTable{  // </>  DWORD dwSummonVnum;  DWORD dwSummonChance;  // </>} TMobTable;

Modyfikujemy db/ClientManagerBoot.cpp w ten sposób:

C++Kod został skopiowany
enum MProtoT{  // </>  summon,  summon_chance,  // </>}; boolCClientManager::InitializeMobTableFromDB(){  // </>"dam_multiply, summon, summon_chance, drain_sp,"// </>VERIFY_IFIELD(MProto::summon, mob_table->dwSummonVnum);  VERIFY_IFIELD(MProto::summon_chance, mob_table->dwSummonChance);}

Modyfikujemy game/char_battle.cpp w poniższy sposób:

C++Kod został skopiowany
DWORDCHARACTER::GetSummonVnum() const{  return m_pkMobData ? m_pkMobData->m_table.dwSummonVnum : 0;} DWORDCHARACTER::GetSummonChance() const{  return m_pkMobData ? m_pkMobData->m_table.dwSummonChance : 0;} voidCHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead){  // </>// killer checkif (pkKiller && pkKiller->IsPC()) {    // victim check    if (!IsPC()) {      auto vnum = GetSummonVnum();       if (vnum && number(1, 100) <= GetSummonChance()) {        CHARACTER_MANAGER::instance().SpawnMob(          vnum, GetMapIndex(), GetX(), GetY(), GetZ(), true);         pkKiller->ChatPacket(CHAT_TYPE_INFO,                             LC_TEXT("Spawn additional boss - success"));      }    }  }}

Modyfikujemy game/char.h w ten sposób:

C++Kod został skopiowany
// </>DWORD GetSummonVnum() const;DWORD GetSummonChance() const;// </>

Na sam koniec pozostała edycja locale_string:

wtf2.png

Wolę zmienić jeden plik niż rozgrzebywać proto które i tak jest zjebane, każdy jest kowalem swojego losu.

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.