BadGrecee
Member-
Posts
24 -
Joined
-
Last visited
-
Feedback
0%
About BadGrecee
Informations
-
Gender
Male
-
Country
Greece
-
Nationality
Greek
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
BadGrecee's Achievements
-
official Ship Defense (Hydra Dungeon)
BadGrecee replied to Owsap's topic in Features & Metin2 Systems
Submit the files you will add in ClientSource from here. I'll add it for you. -
official Ship Defense (Hydra Dungeon)
BadGrecee replied to Owsap's topic in Features & Metin2 Systems
stdafx.h open and search #ifndef __GAME_SRC_STDAFX_H__ #define __GAME_SRC_STDAFX_H__ ADD: #include <cstring> #include <iostream> -
official Chatting Window Renewal (Mini Version)
BadGrecee replied to Owsap's topic in Features & Metin2 Systems
-
I just made a zodiac temple and the Boss killed me and I reanimated the character and the game redirected me to the login screen. I looked at ch99 and found a game.core. I keep getting this game.core content. For example, I cut a text stone on a mount and kill the character with /kill and revive the character again, the game redirects me to the login screen. Looking in the ch1 folder, there is game.core. How can I get rid of this game.core. Thank you all in advance guys.
-
Wear (use) item only on specific map
BadGrecee replied to Jimmermania's topic in Community Support - Questions & Answers
If the inventory is full, it will not remove the item anyway. I know like this. Does your game take out the item if the inventory is full? I'm sorry for my bad english. -
Wear (use) item only on specific map
BadGrecee replied to Jimmermania's topic in Community Support - Questions & Answers
Ah soryy LPITEM if (ch->GetMapIndex() != 41) { LPITEM onlyMapItem = ch->GetVnum() == ITEM CODE; ////ITEM_CODE you item code if (onlyMapItem) ch->UnequipItem(onlyMapItem); } Add them to the line I call input_login.cpp. Delete my old codes. NOTE : LPITEM onlyMapItem = ch->GetVnum() == ITEM CODE; //ITEM_CODE you item code -
constants.cpp open and search and replace const DWORD exp_table_common[PLAYER_MAX_LEVEL_CONST + 1] = { 0, // 0 300, 800, 1500, 2500, 4300, 7200, 11000, 17000, 24000, 33000, // 10 43000, 58000, 76000, 100000, 130000, 169000, 219000, 283000, 365000, 472000, // 20 610000, 705000, 813000, 937000, 1077000, 1237000, 1418000, 1624000, 1857000, 2122000, // 30 2421000, 2761000, 3145000, 3580000, 4073000, 4632000, 5194000, 5717000, 6264000, 6837000, // 40 7600000, 8274000, 8990000, 9753000, 10560000, 11410000, 12320000, 13270000, 14280000, 15340000, // 50 16870000, 18960000, 19980000, 21420000, 22930000, 24530000, 26200000, 27960000, 29800000, 32780000, // 60 36060000, 39670000, 43640000, 48000000, 52800000, 58080000, 63890000, 70280000, 77310000, 85040000, // 70 93540000, 102900000, 113200000, 124500000, 137000000, 150700000, 165700000, 236990000, 260650000, 286780000, // 80 315380000, 346970000, 381680000, 419770000, 461760000, 508040000, 558740000, 614640000, 676130000, 743730000, // 90 1041222000, 1145344200, 1259878620, 1385866482, 1524453130, 1676898443, 1844588288, 2029047116, 2050000000, 2150000000u, // 100 2210000000u, 2250000000u, 2280000000u, 2310000000u, 2330000000u, // 105 2350000000u, 2370000000u, 2390000000u, 2400000000u, 2410000000u, // 110 2420000000u, 2430000000u, 2440000000u, 2450000000u, 2460000000u, // 115 2470000000u, 2480000000u, 2490000000u, 2490000000u, 2500000000u, // 120 // extra 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 130 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 140 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 150 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 160 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 170 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 180 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 190 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 200 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 210 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 220 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 230 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 240 2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u,2500000000u, // 250 }; also int gPlayerMaxLevel = 120; delete. Because it exists in your files. and char.cpp open and search and delete: if (gPlayerMaxLevel <= GetLevel()) return; and paste: if (gPlayerMaxLevel == GetLevel() && (next_exp / 4) <= exp) return;
-
Wear (use) item only on specific map
BadGrecee replied to Jimmermania's topic in Community Support - Questions & Answers
input_login.cpp open and search (Inside the Entergame function) Search: // Adding a character to the map ch->Show(ch->GetMapIndex(), pos.x, pos.y, pos.z); SECTREE_MANAGER::instance().SendNPCPosition(ch); ch->ReviveInvisible(REVIVEINVISIBLE_TIME); d->SetPhase(PHASE_GAME); Add after: if (ch->GetMapIndex() != 41) ch->UnequipItem(71018); -
The problem is not in game.py. Also in InterFaceModule.py. game.py sends a function to InterfaceModule There is HighlightSlot inside this function. Syserr tells you Answer: What does HighlightSlot do? You used this here. But I don't understand why he says you used it. Please explain to InterFaceModule.py what HighlightSlot does.
-
Wear (use) item only on specific map
BadGrecee replied to Jimmermania's topic in Community Support - Questions & Answers
char_item.cpp open and search: if (CArenaManager::instance().IsLimitedItem(GetMapIndex(), item->GetVnum()) == true) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·Ã Áß¿¡´Â ÀÌ¿ëÇÒ ¼ö ¾ø´Â ¹°Ç°ÀÔ´Ï´Ù.")); return false; } before add: if (item->GetVnum() == 71018 && GetMapIndex() != 41) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Only Arena Map")); return false; } 71018 item code 41 map codes edit it yourself. -
Server compilation error
BadGrecee replied to raNNNNNk's topic in Community Support - Questions & Answers
input_main.cpp:3480:67: error: 'uiBytes' was not declared in this scope uiBytes The function you added is using uiBytes. But what is uiBytes doing there? Check the file you got the system. Where is uiBytes used for what? error: qualified-id in declaration before '(' token "(" this is a symbolic error. I think you forgot to close a condition. -
char.cpp open and search: if (exp + amount >= next_exp) { iExpBalance = (exp + amount) - next_exp; amount = next_exp - exp; SetExp(0); exp = next_exp; } else { SetExp(exp + amount); exp = GetExp(); } add before if (gPlayerMaxLevel == GetLevel()) { if ((amount + exp) > (next_exp / 4)) amount = ((next_exp / 4) - exp); } Fills only one cube (50%) in this addon. If there is no gPlayerMaxLevel in your files, enter the maximum level number. Example: gPlayerMaxLevel change to 120 or int gPlayerMaxLevel = 120; if (gPlayerMaxLevel == GetLevel()) { if ((amount + exp) > (next_exp / 4)) amount = ((next_exp / 4) - exp); }
-
What is the difference between what I added and what you changed? I sincerely apologize. I'm not saying that as a bad person. Same as the one I added. or i have a problem with my eyes Not: The same error continues. item.h:333:9: error: 'bool CItem::OnAfterCreatedItem()' cannot be overloaded wit h 'bool CItem::OnAfterCreatedItem()' bool OnAfterCreatedItem(); ^~~~~~~~~~~~~~~~~~ item.h:330:9: note: previous declaration 'bool CItem::OnAfterCreatedItem()' bool OnAfterCreatedItem(); ^~~~~~~~~~~~~~~~~~ gmake: *** [Makefile:198: .obj/char_item.o] Error 1
-
protected: friend class CInputDB; bool OnAfterCreatedItem(); //FIX REAL TIME FIRST USE m2dev>1 friend class CHARACTER; bool OnAfterCreatedItem(); //FIX REAL TIME FIRST USE m2dev>1 It throws an error while compiling. It has been stated here before. 330 Line : friend class CInputDB; bool OnAfterCreatedItem(); 334 Line: friend class CHARACTER; bool OnAfterCreatedItem(); 2 different classes, but it gives an error because it is used 2 times.
-
official Ship Defense (Hydra Dungeon)
BadGrecee replied to Owsap's topic in Features & Metin2 Systems
Hi bro I will help you. Open the ui.py file and class Gauge(Window): search for this class then replace with the class I gave. Note: If there are systems you have added before, edit them according to you. See: if app.ENABLE_SHIP_DEFENSE: class Gauge(Window): SLOT_WIDTH = 16 SLOT_HEIGHT = 7 GAUGE_TEMPORARY_PLACE = 12 GAUGE_WIDTH = 16 def __init__(self): Window.__init__(self) self.width = 0 if app.ENABLE_SHIP_DEFENSE: self.ShowToolTipEvent = None self.ShowToolTipArg = None self.HideToolTipEvent = None self.HideToolTipArg = None self.ToolTipText = None def __del__(self): Window.__del__(self) if app.ENABLE_SHIP_DEFENSE: self.ShowToolTipEvent = None self.ShowToolTipArg = None self.HideToolTipEvent = None self.HideToolTipArg = None def MakeGauge(self, width, color): self.width = max(48, width) imgSlotLeft = ImageBox() imgSlotLeft.SetParent(self) imgSlotLeft.LoadImage("d:/ymir work/ui/pattern/gauge_slot_left.tga") imgSlotLeft.Show() imgSlotRight = ImageBox() imgSlotRight.SetParent(self) imgSlotRight.LoadImage("d:/ymir work/ui/pattern/gauge_slot_right.tga") imgSlotRight.Show() imgSlotRight.SetPosition(width - self.SLOT_WIDTH, 0) imgSlotCenter = ExpandedImageBox() imgSlotCenter.SetParent(self) imgSlotCenter.LoadImage("d:/ymir work/ui/pattern/gauge_slot_center.tga") imgSlotCenter.Show() imgSlotCenter.SetRenderingRect(0.0, 0.0, float((width - self.SLOT_WIDTH*2) - self.SLOT_WIDTH) / self.SLOT_WIDTH, 0.0) imgSlotCenter.SetPosition(self.SLOT_WIDTH, 0) imgGauge = ExpandedImageBox() imgGauge.SetParent(self) imgGauge.LoadImage("d:/ymir work/ui/pattern/gauge_" + color + ".tga") imgGauge.Show() imgGauge.SetRenderingRect(0.0, 0.0, 0.0, 0.0) imgGauge.SetPosition(self.GAUGE_TEMPORARY_PLACE, 0) imgSlotLeft.AddFlag("attach") imgSlotCenter.AddFlag("attach") imgSlotRight.AddFlag("attach") self.imgLeft = imgSlotLeft self.imgCenter = imgSlotCenter self.imgRight = imgSlotRight self.imgGauge = imgGauge self.SetSize(width, self.SLOT_HEIGHT) def SetPercentage(self, curValue, maxValue): if maxValue > 0.0: percentage = min(1.0, float(curValue)/float(maxValue)) else: percentage = 0.0 gaugeSize = -1.0 + float(self.width - self.GAUGE_TEMPORARY_PLACE*2) * percentage / self.GAUGE_WIDTH self.imgGauge.SetRenderingRect(0.0, 0.0, gaugeSize, 0.0) if app.ENABLE_SHIP_DEFENSE: def SetShowToolTipEvent(self, func, *args): self.ShowToolTipEvent = func self.ShowToolTipArg = args def SetHideToolTipEvent(self, func, *args): self.HideToolTipEvent = func self.HideToolTipArg = args def ShowToolTip(self): if self.ToolTipText: self.ToolTipText.Show() def HideToolTip(self): if self.ToolTipText: self.ToolTipText.Hide() def SetToolTipText(self, text, x=0, y = -19): self.SetFormToolTipText("TEXT", text, x, y) def SetFormToolTipText(self, type, text, x, y): if not self.ToolTipText: toolTip=createToolTipWindowDict[type]() toolTip.SetParent(self) toolTip.SetSize(0, 0) toolTip.SetHorizontalAlignCenter() toolTip.SetOutline() toolTip.Hide() toolTip.SetPosition(x + self.GetWidth()/2, y) self.ToolTipText=toolTip self.ToolTipText.SetText(text)