BadGrecee
-
Posts
24 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by BadGrecee
-
-
19 hours ago, bekolay1 said:
+1 problem pls
stdafx.h open and search
#ifndef __GAME_SRC_STDAFX_H__
#define __GAME_SRC_STDAFX_H__ADD:
#include <cstring>
#include <iostream>
-
-
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.
-
8 hours ago, Jimmermania said:
Thanks for your answer dude, but if the inventory is full , it should not unequip it because the player will be bugged.
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.
-
10 hours ago, Jimmermania said:
And how to check if inventory is full not to unequip ?
Also, i have this error :
error: invalid conversion from 'int' to 'LPITEM' {aka 'CItem*'} [-fpermissive]
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
- 1
-
12 hours ago, adv1453 said:
I did it like this but I still can't get exp.
https://metin2.download/picture/57LN8Cab3z2s9gv96jEmpiSj6Ke17mCz/.gif
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;
- 1
-
9 hours ago, Jimmermania said:
Thanks for your answer. But when the player goes to 41 map and wear the item, if he goes after to the other maps he keeps wearing the item. How i can unquip it ? (here there must be a check to check if the inventory is full too. If its full it should not unequip the item)
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.
-
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 codesedit it yourself.
-
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 120or
int gPlayerMaxLevel = 120; if (gPlayerMaxLevel == GetLevel()) { if ((amount + exp) > (next_exp / 4)) amount = ((next_exp / 4) - exp); }
- 1
-
26 minutes ago, TAUMP said:
protected: friend class CInputDB; bool OnAfterCreatedItem(); friend class CHARACTER; bool OnAfterCreatedItem();
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.
- 1
-
22 hours ago, PeterCZ said:
Hello I am still solving this problem
0926 18:17:29551 :: File "networkModule.py", line 263, in SetGamePhase 0926 18:17:29552 :: File "game.py", line 156, in __init__ 0926 18:17:29552 :: File "uiTarget.py", line 1169, in __init__ 0926 18:17:29552 :: AttributeError 0926 18:17:29552 :: : 0926 18:17:29552 :: 'Gauge' object has no attribute 'ShowToolTip' 0926 18:17:29552 ::
How to solve this? Thank you
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)
- 1
-
19 hours ago, Owsap said:
Fixed and improved some stuff.
Fixed party entry. Rearrange ticket check. Add quest to warp from port to village. Added cooldown. Increased monster spawn.
Do you want this?I have also added the rankings like the official.
This system has already been shared here from @ Mali although you will have to adapt it.
If you would like to use my version, I would suggest a poll, https://forms.gle/zRovvNrdY6we9UrX7wait_time_to_str(pc.getqf("cooldown"))))
wait_time_to_str this function does not exist.
-
4 hours ago, WeedHex said:
You should show the complete gdb.
273 line char_affect.cpp
it = m_list_pkAffect.erase(it);Thanks for your interest bro.
- 1
-
Hello everyone
I died in the spider dungeon and said start in the city and there was a core crash.
Here are a few pictures.
Core Picture:Affect.cpp 25 line -> affect_pool.free(p)
void CAffect::Release(CAffect* p) { #ifndef DEBUG_ALLOC affect_pool.free(p); ------------- 25 line #else M2_DELETE(p); #endif }
char_affect.cpp 274 line
CAffect::Release(pkAff);
char.cpp 1049 line
ClearAffect();
-
not official. Because there is no market and ranking system.
- 1
-
6 hours ago, Ikarus_ said:
A crash happening on checkpoint usually means execution fall in an infinite loop or a signal received by the kernel caused by an exception. The call inside boost make me think you got corrupted stack or heap, making execution looping in that element ordering routine or trying overwrite unaccessible memory addresses. I can't deduce more just by reading that trace.
In the case you are using an old boost release, it would be a good idea to update it.
EDIT ---
You should type <RET> while reading the .core in order to get more trace.<RET> btfull ?
-
15 hours ago, sibermaster said:
Is your problem solved?
The kernel doesn't always crash. It could also be from the server. Because I tested the dungeon several times and there was no core crash. I tested again and this time it was a kernel crash.
-
I tried the dungeon 2 3 times and there were no kernel crashes. I just tried the dungeon again and when the pole was smashed there was a kernel crash.
Also, it cannot find the gate ticket object in the inventory, which is required when starting the defense.define TICKET_GROUP 71162 (item_names.txt contains this item)
Problem : local ticketGroup = { get_special_item_group(TICKET_GROUP) }
not working.ch99 Syserr
_get_special_item_group: cannot find special item group 71162Edit :
I searched questlua_globa.cpp and the item should be in special_item_group.
Group ship_defense_ticket_group
{
vnum 10033
1 71162 1 1
} -
When I enter the game, the health indicator appears. When you enter the dungeon, there are 2 health indicators. How can I fix this.
_get_special_item_group
I don't have this.
-
ahahahaha bad system.
Dungeon Dont Work.
for work
if (lMapIndex > 10000)
lMapIndex /= 10000;- 1
- 1
Ship Defense (Hydra Dungeon)
in Features & Metin2 Systems
Posted
Submit the files you will add in ClientSource from here. I'll add it for you.