Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Witajcie moi drodzy.   :)
Oto dzisiaj udostępniam Wam zniesienie limitu Stack.

Jeśli zauważycie coś zbytecznego/źle zrobionego to piszcie, ale chyba dałem wszystko xD

SCREENSHOT:
ssunlimit_spnsrwx.png


PORADNIK:

  • CLIENT:


1. Plik \***\UserInterface\AbstractPlayer.h


Z

virtual void	SetItemCount(TItemPos itemPos, BYTE byCount) = 0;
na
virtual void	SetItemCount(TItemPos itemPos, short byCount) = 0;



2. Plik \***\UserInterface\GameType.h


-1 W strukturze packet_item

BYTE        count;
na
short        count;
-2 W strukturze packet_shop_item
BYTE        count;
na
short        count;



3. Plik \***\UserInterface\Packet.h


-1 W strukturze command_item_drop2

BYTE        count;
na
short        count;
-2 W strukturze command_item_move
BYTE num;
na
short num;
-3 W strukturze command_shop
BYTE subheader;
na
short subheader;
-4 W strukturze command_give_item
BYTE byItemCount;
na
short byItemCount;
-5 W strukturze SShopItemTable
BYTE count;
na
short count;
-6 W strukturze SPacketCGMyShop
BYTE bCount;
na
short bCount;
-7 W strukturze TPacketGCItemDelDeprecate
BYTE count;
na
short count;
-8 W strukturze packet_set_item (TPacketGCItemSet) [2x]
BYTE count;
na
short count;
-9 W strukturze packet_set_item2
BYTE count;
na
short count;
-10 W strukturze packet_update_item
BYTE count;
na
short count;
-11 W strukturze SRefineTable
BYTE material_count;
na
short material_count;
-12 W strukturze SEquipmentItemSet
BYTE count;
na
short count;



4. Plik \***\UserInterface\PythonExchange.cpp


-1 Z

void CPythonExchange::SetItemToTarget(DWORD pos, DWORD vnum, BYTE count)
na
void CPythonExchange::SetItemToTarget(DWORD pos, DWORD vnum, short count)
-2 Z
void CPythonExchange::SetItemToSelf(DWORD pos, DWORD vnum, BYTE count)
na
void CPythonExchange::SetItemToSelf(DWORD pos, DWORD vnum, short count)
-3 Z
BYTE CPythonExchange::GetItemCountFromTarget(BYTE pos)
na
short CPythonExchange::GetItemCountFromTarget(BYTE pos)
-4 Z
BYTE CPythonExchange::GetItemCountFromSelf(BYTE pos)
na
short CPythonExchange::GetItemCountFromSelf(BYTE pos)



5. Plik \***\UserInterface\PythonExchange.h


-1 Z

BYTE					item_count[EXCHANGE_ITEM_MAX_NUM];
na
short					item_count[EXCHANGE_ITEM_MAX_NUM];
-1 Z
void			SetItemToTarget(DWORD pos, DWORD vnum, BYTE count);
void			SetItemToSelf(DWORD pos, DWORD vnum, BYTE count);
na
void			SetItemToTarget(DWORD pos, DWORD vnum, short count);
void			SetItemToSelf(DWORD pos, DWORD vnum, short count);
-1 Z
BYTE			GetItemCountFromTarget(BYTE pos);
BYTE			GetItemCountFromSelf(BYTE pos);
na
short			GetItemCountFromTarget(BYTE pos);
short			GetItemCountFromSelf(BYTE pos);



6. Plik \***\UserInterface\PythonNetworkStream.h


-1 Z

bool SendItemMovePacket(TItemPos pos, TItemPos change_pos, BYTE num);
na
bool SendItemMovePacket(TItemPos pos, TItemPos change_pos, short num);
-2 Z
bool SendShopSellPacketNew(BYTE bySlot, BYTE byCount);
na
bool SendShopSellPacketNew(BYTE bySlot, short byCount);
-3 Z
bool SendSafeBoxItemMovePacket(BYTE bySourcePos, BYTE byTargetPos, BYTE byCount);
na
bool SendSafeBoxItemMovePacket(BYTE bySourcePos, BYTE byTargetPos, short byCount);



7. Plik \***\UserInterface\PythonNetworkStreamModule.cpp


Z

rkNetStream.SendItemMovePacket(Cell, ChangeCell, (BYTE) num);
na
rkNetStream.SendItemMovePacket(Cell, ChangeCell, (short) num);



8. Plik \***\UserInterface\PythonNetworkStreamPhaseGame.cpp


-1 Z

CPythonExchange::Instance().SetItemToSelf(iSlotIndex, exchange_packet.arg1, (BYTE) exchange_packet.arg3);
na
CPythonExchange::Instance().SetItemToSelf(iSlotIndex, exchange_packet.arg1, (short) exchange_packet.arg3);
-2 Z
CPythonExchange::Instance().SetItemToTarget(iSlotIndex, exchange_packet.arg1, (BYTE) exchange_packet.arg3);
na
CPythonExchange::Instance().SetItemToTarget(iSlotIndex, exchange_packet.arg1, (short) exchange_packet.arg3);
-3 Z
CPythonExchange::Instance().DelItemOfSelf((BYTE) exchange_packet.arg1);
na
CPythonExchange::Instance().DelItemOfSelf((short) exchange_packet.arg1);
-4 Z
CPythonExchange::Instance().DelItemOfTarget((BYTE) exchange_packet.arg1);
na
CPythonExchange::Instance().DelItemOfTarget((short) exchange_packet.arg1);



9. Plik \***\UserInterface\PythonNetworkStreamPhaseGameItem.cpp


-1 Z

bool CPythonNetworkStream::SendSafeBoxItemMovePacket(BYTE bySourcePos, BYTE byTargetPos, BYTE byCount)
na
bool CPythonNetworkStream::SendSafeBoxItemMovePacket(BYTE bySourcePos, BYTE byTargetPos, short byCount)
-2 Z
bool CPythonNetworkStream::SendShopSellPacketNew(BYTE bySlot, BYTE byCount)
na
bool CPythonNetworkStream::SendShopSellPacketNew(BYTE bySlot, short byCount)
-3 Z
if (!Send(sizeof(BYTE), &byCount))
na
if (!Send(sizeof(short), &byCount))
-4 Z
bool CPythonNetworkStream::SendItemMovePacket(TItemPos pos, TItemPos change_pos, BYTE num)
na
bool CPythonNetworkStream::SendItemMovePacket(TItemPos pos, TItemPos change_pos, short num)



10. Plik \***\UserInterface\PythonPlayer.cpp


Z

void CPythonPlayer::SetItemCount(TItemPos Cell, BYTE byCount)
na
void CPythonPlayer::SetItemCount(TItemPos Cell, short byCount)



11. Plik \***\UserInterface\PythonPlayer.h


Z

void	SetItemCount(TItemPos Cell, BYTE byCount);
na
void	SetItemCount(TItemPos Cell, short byCount);



12. Plik \***\UserInterface\PythonPlayerModule.cpp


Z

BYTE bCount;
na
short bCount;
W DWÓCH MIEJSCACH!



13. Plik \***\ScriptLib\PythonUtils.cpp


Dodajecie gdziekolwiek

bool PyTuple_GetInteger(PyObject* poArgs, int pos, short* ret)
{
	int val;
	bool result = PyTuple_GetInteger(poArgs,pos,&val);
	*ret = short(val);
	return result;
}



14. Plik \***\ScriptLib\PythonUtils.h


Dodajecie gdziekolwiek

bool PyTuple_GetInteger(PyObject* poArgs, int pos, short* ret);



  • GAME


1. Plik \***\common\item_length.h



ITEM_MAX_COUNT = 200,
na
ITEM_MAX_COUNT = 500,


 
2. Plik \***\common\tables.h


-1 W strukturze SShopItemTable

BYTE count;
na
short count;
-2 W strukturze SShopTable
BYTE byItemCount;
na
short byItemCount;
-3 W strukturze SRefineTable
BYTE material_count;
na
short material_count;


 
3. Plik \***\game\char.cpp


-1 Z

void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE bItemCount)
na
void CHARACTER::OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, short bItemCount)
-2 Z
for (BYTE i = 0; i < bItemCount; ++i)
na
for (short i = 0; i < bItemCount; ++i)



4. Plik \***\game\char.h


-1 Z

bool			DropItem(TItemPos Cell,  BYTE bCount=0);
na
bool			DropItem(TItemPos Cell,  short bCount=0);
-2 Z
bool			MoveItem(TItemPos pos, TItemPos change_pos, BYTE num);
na
bool			MoveItem(TItemPos pos, TItemPos change_pos, short num);
-3 Z
LPITEM			AutoGiveItem(DWORD dwItemVnum, BYTE bCount=1, int iRarePct = -1, bool bMsg = true);
void			AutoGiveItem(LPITEM item, bool longOwnerShip = false);
na
LPITEM			AutoGiveItem(DWORD dwItemVnum, short bCount=1, int iRarePct = -1, bool bMsg = true);
void			AutoGiveItem(LPITEM item, bool longOwnerShip = false);
-4 Z
void			OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, BYTE bItemCount);
na
void			OpenMyShop(const char * c_pszSign, TShopItemTable * pTable, short bItemCount);



5. Plik \***\game\char_item.cpp


-1 Z

bool CHARACTER::DropItem(TItemPos Cell, BYTE bCount)
na
bool CHARACTER::DropItem(TItemPos Cell, short bCount)
-2 Z
bool CHARACTER::MoveItem(TItemPos Cell, TItemPos DestCell, BYTE count)
na
bool CHARACTER::MoveItem(TItemPos Cell, TItemPos DestCell, short count)
-3 Z
count = MIN(200 - item2->GetCount(), count);
na
count = MIN(ITEM_MAX_COUNT - item2->GetCount(), count);
-4 Z
BYTE bCount = item->GetCount();
na
short bCount = item->GetCount();
-5 Z
BYTE bCount2 = MIN(200 - item2->GetCount(), bCount);
na
short bCount2 = MIN(ITEM_MAX_COUNT - item2->GetCount(), bCount);
-6 Z
LPITEM CHARACTER::AutoGiveItem(DWORD dwItemVnum, BYTE bCount, int iRarePct, bool bMsg)
na
LPITEM CHARACTER::AutoGiveItem(DWORD dwItemVnum, short bCount, int iRarePct, bool bMsg)
-7 Z
BYTE bCount2 = MIN(200 - item->GetCount(), bCount);
na
short bCount2 = MIN(ITEM_MAX_COUNT - item->GetCount(), bCount);



6. Plik \***\game\input_main.cpp


-1 Z

case SHOP_SUBHEADER_CG_SELL2:
	{
		if (uiBytes < sizeof(BYTE) + sizeof(BYTE))
			return -1;

		BYTE pos = *(c_pData++);
		BYTE count = *(c_pData);

		sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName());
		CShopManager::instance().Sell(ch, pos, count);
		return sizeof(BYTE) + sizeof(BYTE);
	}
na
case SHOP_SUBHEADER_CG_SELL2:
	{
		if (uiBytes < sizeof(BYTE) + sizeof(short))
			return -1;

		BYTE pos = *(c_pData++);
		short count = *(c_pData);

		sys_log(0, "INPUT: %s SHOP: SELL2 pos: %d count: %d", ch->GetName(), pos, count);
		CShopManager::instance().Sell(ch, pos, count);
		return sizeof(BYTE) + sizeof(short);
	}



7. Plik \***\game\item.cpp


Z

return MIN(m_dwCount, 200);
na
return MIN(m_dwCount, ITEM_MAX_COUNT);



8. Plik \***\game\OXEvent.cpp


Z

bool COXEventManager::GiveItemToAttender(DWORD dwItemVnum, BYTE count)
na
bool COXEventManager::GiveItemToAttender(DWORD dwItemVnum, short count)



9. Plik \***\game\OXEvent.h


Z

bool GiveItemToAttender(DWORD dwItemVnum, BYTE count);
na
bool GiveItemToAttender(DWORD dwItemVnum, short count);



10. Plik \***\game\packet.h


-1 W strukturze command_item_drop2

BYTE	count;
na
short	count;
-2 W strukturze command_item_move
BYTE	count;
na
short	count;
-3 W strukturze command_shop (TPacketCGShop)
BYTE	subheader;
na
short	subheader;
-4 W strukturze TPacketGCItemDelDeprecated
BYTE	count;
na
short	count;
-5 W strukturze packet_item_set
BYTE	count;
na
short	count;
-6 W strukturze packet_item_update
BYTE	count;
na
short	count;
-7 W strukturze packet_shop_item
BYTE	count;
na
short	count;
-8 W strukturze command_give_item
BYTE	byItemCount;
na
short	byItemCount;
-9 W strukturze SPacketCGMyShop
BYTE	bCount;
na
short	bCount;
-10 W strukturze SPacketGCRefineInformaion
BYTE	material_count;
na
short	material_count;
-11 W strukturze pakcet_view_equip
BYTE	count;
na
short	count;



11. Plik \***\game\safebox.cpp


-1 Z

bool CSafebox::MoveItem(BYTE bCell, BYTE bDestCell, BYTE count)
na
bool CSafebox::MoveItem(BYTE bCell, BYTE bDestCell, short count)
-2 Z
count = MIN(200 - item2->GetCount(), count);
na
count = MIN(ITEM_MAX_COUNT - item2->GetCount(), count);



12. Plik \***\game\safebox.h


Z

bool		MoveItem(BYTE bCell, BYTE bDestCell, BYTE count);
na
bool		MoveItem(BYTE bCell, BYTE bDestCell, short count);



13. Plik \***\game\shop.cpp


-1 Z

BYTE bItemCount;
na
short bItemCount;
-2 Z
void CShop::SetShopItems(TShopItemTable * pTable, BYTE bItemCount)
na
void CShop::SetShopItems(TShopItemTable * pTable, short bItemCount)



14. Plik \***\game\shop.h


-1 Z

BYTE	count
na
short	count
-2 Z
void	SetShopItems(TShopItemTable * pItemTable, BYTE bItemCount);
na
void	SetShopItems(TShopItemTable * pItemTable, short bItemCount);



15. Plik \***\game\shop_manager.cpp


-1 Z

LPSHOP CShopManager::CreatePCShop(LPCHARACTER ch, TShopItemTable * pTable, BYTE bItemCount)
na
LPSHOP CShopManager::CreatePCShop(LPCHARACTER ch, TShopItemTable * pTable, short bItemCount)
-2 Z
void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount)
na
void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, short bCount)



16. Plik \***\game\shop_manager.h


-1 Z

void	Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount=0);
na
void	Sell(LPCHARACTER ch, BYTE bCell, short bCount=0);
-2 Z
LPSHOP	CreatePCShop(LPCHARACTER ch, TShopItemTable * pTable, BYTE bItemCount);
na
LPSHOP	CreatePCShop(LPCHARACTER ch, TShopItemTable * pTable, short bItemCount);





  • Odpowiedzi 80
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

W scriptlibie standardowo juz jest GetInteger raczej.Nie rozumiem po co to dałeś , teraz nie będzie żadnym wysiłkiem zrobić stacki dla przysłowiowych "płaczków"

Ale dla shorta nie było

 

O matko jedyna..

Ty to zmieniales na pale, czy dla zartow?

Na pałe.

Siedz cicho :<

Opublikowano

Yangi masz na wegierskim forum juz od dwna zrobione przez PENGERA. Nie wiem czy moge dac linka czy nie , wiec daje :

http://metin2hungary.net/index.php?topic=189507.0

Kilka ciekawych rzeczy mozna z tego forum pobrac.

Te yangi sa zrypane.Wczesniej dzieki nim mialem error_log o wielkosci 50kb.

Metińczyk z Krew_Ma%C5%82py.jpg i Ko%C5%9B%C4%87_Palca.png

Opublikowano
bool PyTuple_GetInteger(PyObject* poArgs, int pos, int* ret)
{
    int val;
    bool result = PyTuple_GetInteger(poArgs, pos, &val);
    *ret = int(val);
    return result;
}

zmieni to ktos pod int? :D Bo jak sam to wywala mi errory >.<

 

http://screenshot.sh/ouUPTmX5BywR4

Metińczyk z Krew_Ma%C5%82py.jpg i Ko%C5%9B%C4%87_Palca.png

Opublikowano

Wysypie errory jak skurwysyn, nie polecam tego robic.

Serio? :D

 

Mi game i db bez errorów. Binke tylko 2 bledy bo chce nie lece na short tylko int(nie umiem tego zmienic heuheuhe)

 

 

Chuy juz bylo dla int :D

Metińczyk z Krew_Ma%C5%82py.jpg i Ko%C5%9B%C4%87_Palca.png

Opublikowano

Teraz czekamy na yangi <3

 

Jaki short ma zakres? :D

Masz poradnik jak zmienić typ danych, a nie umiesz tego sam zrobić w przypadku yangów?

 

Opublikowano

Masz poradnik jak zmienić typ danych, a nie umiesz tego sam zrobić w przypadku yangów?

Nie chce mi sie szukac poprostu.

 

Dla yangow uzywac jakiego tupy danych?

 

Czemu mi maszyna muli jak nigdy? ;/ Nieuzywalem jej przez 2 tyg i nagle muli fchuy.

 

@top

 

Działa <3

Metińczyk z Krew_Ma%C5%82py.jpg i Ko%C5%9B%C4%87_Palca.png

Opublikowano

Nie chce mi sie szukac poprostu.

 

Dla yangow uzywac jakiego tupy danych?

 

Czemu mi maszyna muli jak nigdy? ;/ Nieuzywalem jej przez 2 tyg i nagle muli fchuy.

 

@top

 

Działa <3

Powiedz mi po co siedzisz w tworzeniu serwerów? Żeby okradać naiwnych ludzi stawiając serwer na gotowcach i znikając po miesiącu? Nawet nie mogę nawzwać Ciebie administratorem z takim podejściem. Nawet nie chce Ci się ruszyć mózgownicą aby ogarnąć jaki typ danych jest większy od long.

 

Opublikowano

Powiedz mi po co siedzisz w tworzeniu serwerów? Żeby okradać naiwnych ludzi stawiając serwer na gotowcach i znikając po miesiącu? Nawet nie mogę nawzwać Ciebie administratorem z takim podejściem. Nawet nie chce Ci się ruszyć mózgownicą aby ogarnąć jaki typ danych jest większy od long.

Tak mogłem ciebie nazywać przed Vesterisem.

 

Mam serwer tylko dla sb i kolegów i jedyny gotowiec to terenzo :)

Metińczyk z Krew_Ma%C5%82py.jpg i Ko%C5%9B%C4%87_Palca.png

Opublikowano

Tak mogłem ciebie nazywać przed Vesterisem.

 

Mam serwer tylko dla sb i kolegów i jedyny gotowiec to terenzo :)

Dalej uważam, że z takim podejściem powinieneś rzucić tworzenie serwerów bo jest to bez sensu.

 

ps. Nie rozumiem podjazdu na Vesteris. Nie jestem tam administratorem, zajmuję się tylko plikami. Jak dla mnie administrator to osoba zajmująca się problemami graczy, zarządzaniem serwerem pod względem rozgrywki, więc się tu nie zaliczam.

 

Opublikowano

MPC dalej zacofane... zanim poznacie takie nowości jak github czy cachowanie danych, jeszcze trochę minie xD

 

 

także tego... dobra robota :)

Opublikowano

I co w związku, mistrzu? :3

 

Nic, postanowiłem po prostu napisać jakiś fakt z życia no i na taki padło.

 

Avec des punchlines comme ça vous osez dire qu'il n'est pas bon

#EMERYTURA

Opublikowano

o matko czepiacie się :D a może on po prostu miał dość odpisywania na spam

ELO MELO JAK ZROBIĆ TO A TO ? ODPISZ !!!

Napisał to tak jak chciał :) ważne że, dał i pewnie teraz siedzi sobie przed komputerem ze świadomością że, zrobił coś dzięki czemu nie będą mu spamować  :yay: przynajmniej przez jakiś czas  :D

EWOLUCJA : ]


 


84440201455649434251.jpg


 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...