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ę.

refine_proto ograniczenie refine_set dla Seon-Pyeong i problem z magicznym metalem

Featured Replies

Opublikowano

Koperek Majstry 😇

Pozmieniałem id w refine_proto bo większość zbędna tylko mam pytanie...

id 1 zezwala ulepszać :

  • U Kowala
  • Bodziem
  • Zwojem boga smoków

ALE nie moge ulepszać :

  • Magicznym metalem
  • U Seon-Pyeong

Ma ktoś jakiś pomysł gdzie to się wyłącza/usuwa? 

Płace uśmiechem bombelka....

++ dlaczego Magiczny Metal i Zwój Błogosławieństwa są kilka razy w item_proto

Rozwiązane przez ExoCarossa

Opublikowano

Aby ulepszać w ten sposób musisz ustawić refine_set powyżej 500, te ograniczenia znajdziesz w funkcjach.

 

📂 Lokalizacja pliku: 'game -> char_item.cpp'

CKod został skopiowany
bool CHARACTER::RefineItem(LPITEM pkItem, LPITEM pkTarget)

 

CKod został skopiowany
bool CHARACTER::CanReceiveItem(LPCHARACTER from, LPITEM item) const

 

CKod został skopiowany
void CHARACTER::ReceiveItem(LPCHARACTER from, LPITEM item)
Opublikowano
  • Autor
W dniu 9.12.2023 o 16:47, Sevence napisał(a):

Aby ulepszać w ten sposób musisz ustawić refine_set powyżej 500, te ograniczenia znajdziesz w funkcjach.

 

📂 Lokalizacja pliku: 'game -> char_item.cpp'

CKod został skopiowany
bool CHARACTER::CanReceiveItem(LPCHARACTER from, LPITEM item) const

 

CKod został skopiowany
bool CHARACTER::RefineItem(LPITEM pkItem, LPITEM pkTarget)

 

CKod został skopiowany
void CHARACTER::ReceiveItem(LPCHARACTER from, LPITEM item)

że tutaj z 500 na 0?

Cytat

        case BLACKSMITH_MOB:
            if (item->GetRefinedVnum() && item->GetRefineSet() < 500)
            {
                return true;
            }
            else
            {
                return false;
            }

        case BLACKSMITH2_MOB:
            if (item->GetRefineSet() >= 500)

 

Opublikowano

Nie. Jeśli nie chcesz mieć tych ograniczeń to usuń te warunki. 

 

CKod został skopiowany
bool CHARACTER::RefineItem(LPITEM pkItem, LPITEM pkTarget){	if (!CanHandleItem())		return false; 	if (pkItem->GetSubType() == USE_TUNING)	{		// XXX 성능, 소켓 개량서는 사라졌습니다...		// XXX 성능개량서는 축복의 서가 되었다!		// MUSIN_SCROLL		if (pkItem->GetValue(0) == MUSIN_SCROLL)			RefineInformation(pkTarget->GetCell(), REFINE_TYPE_MUSIN, pkItem->GetCell());		// END_OF_MUSIN_SCROLL		else if (pkItem->GetValue(0) == HYUNIRON_CHN)			RefineInformation(pkTarget->GetCell(), REFINE_TYPE_HYUNIRON, pkItem->GetCell());		else if (pkItem->GetValue(0) == BDRAGON_SCROLL)		{			if (pkTarget->GetRefineSet() != 702) return false;			RefineInformation(pkTarget->GetCell(), REFINE_TYPE_BDRAGON, pkItem->GetCell());		}		else		{			if (pkTarget->GetRefineSet() == 501) return false;			RefineInformation(pkTarget->GetCell(), REFINE_TYPE_SCROLL, pkItem->GetCell());		}	}
Opublikowano
  • Autor
W dniu 9.12.2023 o 17:08, Sevence napisał(a):

Nie. Jeśli nie chcesz mieć tych ograniczeń to usuń te warunki. 

 

CKod został skopiowany
bool CHARACTER::RefineItem(LPITEM pkItem, LPITEM pkTarget){	if (!CanHandleItem())		return false; 	if (pkItem->GetSubType() == USE_TUNING)	{		// XXX 성능, 소켓 개량서는 사라졌습니다...		// XXX 성능개량서는 축복의 서가 되었다!		// MUSIN_SCROLL		if (pkItem->GetValue(0) == MUSIN_SCROLL)			RefineInformation(pkTarget->GetCell(), REFINE_TYPE_MUSIN, pkItem->GetCell());		// END_OF_MUSIN_SCROLL		else if (pkItem->GetValue(0) == HYUNIRON_CHN)			RefineInformation(pkTarget->GetCell(), REFINE_TYPE_HYUNIRON, pkItem->GetCell());		else if (pkItem->GetValue(0) == BDRAGON_SCROLL)		{			if (pkTarget->GetRefineSet() != 702) return false;			RefineInformation(pkTarget->GetCell(), REFINE_TYPE_BDRAGON, pkItem->GetCell());		}		else		{			if (pkTarget->GetRefineSet() == 501) return false;			RefineInformation(pkTarget->GetCell(), REFINE_TYPE_SCROLL, pkItem->GetCell());		}	}

Chyba nie ogarnąłem jak to zrobić x_x

Spoiler

 

Opublikowano

O KURWA HARDCODE moje oczy 😄🤪

 

TextKod został skopiowany
#ifdef NOWE_METALE_DO_ULEPSZANIA        else if (pkItem->GetValue(0) == METAL20)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL20, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL25)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL25, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL30)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL30, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL35)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL35, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL40)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL40, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL45)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL45, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL50)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL50, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL55)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL55, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL60)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL60, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL65)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL65, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL70)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL70, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL75)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL75, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL80)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL80, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL85)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL85, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL90)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL90, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL95)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL95, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL100)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL100, pkItem->GetCell());#endif

 

Pisałem Ci usuń dwa warunki ograniczające refine_set, a Ty skomentowałeś całą obsługę tych typów. 😄

CKod został skopiowany
else if (pkItem->GetValue(0) == BDRAGON_SCROLL){	RefineInformation(pkTarget->GetCell(), REFINE_TYPE_BDRAGON, pkItem->GetCell());}else{	RefineInformation(pkTarget->GetCell(), REFINE_TYPE_SCROLL, pkItem->GetCell());}

 

Opublikowano
  • Autor
W dniu 9.12.2023 o 17:35, Sevence napisał(a):

O Kur** HARDCODE moje oczy 😄🤪

 

TextKod został skopiowany
#ifdef NOWE_METALE_DO_ULEPSZANIA        else if (pkItem->GetValue(0) == METAL20)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL20, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL25)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL25, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL30)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL30, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL35)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL35, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL40)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL40, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL45)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL45, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL50)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL50, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL55)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL55, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL60)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL60, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL65)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL65, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL70)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL70, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL75)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL75, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL80)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL80, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL85)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL85, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL90)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL90, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL95)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL95, pkItem->GetCell());        else if (pkItem->GetValue(0) == METAL100)            RefineInformation(pkTarget->GetCell(), REFINE_TYPE_METAL100, pkItem->GetCell());#endif

 

Pisałem Ci usuń dwa warunki ograniczające refine_set, a Ty skomentowałeś całą obsługę tych typów. 😄

CKod został skopiowany
else if (pkItem->GetValue(0) == BDRAGON_SCROLL){	RefineInformation(pkTarget->GetCell(), REFINE_TYPE_BDRAGON, pkItem->GetCell());}else{	RefineInformation(pkTarget->GetCell(), REFINE_TYPE_SCROLL, pkItem->GetCell());}

 

Nie pytaj to na chwile

Co do dwóch warunków tak zrobiłem i dalej nie działa od id 1 xD

Opublikowano

Co nie działa?  

Jeśli chodzi o magiczne metal to on nie ma żadnych ograniczeń, możesz każdy przedmiot ulepszać niezależne od refine_set. Sprawdź, czy w ogóle masz ustawiony typ dla tego rekordu w item_proto. Jak chcesz żeby miał typ magicznego metalu musisz w value0 ustawić wartość 1. 

 

Seon Pyeong ma ograniczenia refine_set od vnum 500 i to jest w tym warunku ograniczane.

CKod został skopiowany
case BLACKSMITH2_MOB:	if (item->GetRefineSet() >= 500)	{		return true;	}	else	{		return false;	}

 

W refine.h masz definicję: 

CKod został skopiowany
BLACKSMITH2_MOB	= 20091,

 

Opublikowano
  • Autor
W dniu 9.12.2023 o 17:39, Sevence napisał(a):

Co nie działa?  

Jeśli chodzi o magiczne metal to on nie ma żadnych ograniczeń, możesz każdy przedmiot ulepszać niezależne od refine_set. Sprawdź, czy w ogóle masz ustawiony typ dla tego rekordu w item_proto. Jak chcesz żeby miał typ magicznego metalu musisz w value0 ustawić wartość 1. 

 

Seon Pyeong ma ograniczenia refine_set od vnum 500 i to jest w tym warunku ograniczane.

CKod został skopiowany
case BLACKSMITH2_MOB:	if (item->GetRefineSet() >= 500)	{		return true;	}	else	{		return false;	}

 

W refine.h masz definicję: 

CKod został skopiowany
BLACKSMITH2_MOB	= 20091,

 

No właśnie metalem nie moge ulepszyć gdy id refine wynosi 1

Cytat

71026    0    71026    Magiczny Metal    6    0    0    1    106880    8192    0        0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    1    0    0    0    0    0    -1    -1    -1    -1    -1    -1    0    0    0

39016    0    39016    Magiczny Metal    6    0    0    1    98688    8192    0        0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    1    0    0    0    0    0    -1    -1    -1    -1    -1    -1    0    0    0

 

Opublikowano
  • Autor
  • Rozwiązanie
W dniu 9.12.2023 o 19:17, Sevence napisał(a):

Ja nie robiłem żadnych zmian i oryginalnie bez problemu mi działa magiczny metal nawet dla refine_set o wartości 1. 

 

image.gif.9bce24bb789b6ec5934fbe86a3560083.gif

Czyli MAGICZNY METAL są min 3 w bazie bo 39001 działa, 39016 i 71026 do wywalenia dla pokoleń 😄

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

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.