-
Posts
258 -
Joined
-
Last visited
-
Days Won
4 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by [007]DawisHU
-
-
Maybe ?
Spoiler -
Can you show us your uiscript/guildinfopage_eu.py or guildinfopage.py?
-
Problem is in serverside
SpoilerRemake server_attr (World editor remix from martisama) and replace it.... and restart the core.
-
Spoiler
Patcher:
SpoilerProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "SCRMT2.exe";
startInfo.Arguments = "--2117002";
Process.Start(startInfo);Client:
Uncomment if (strstr (lpcmdline)) ............
Sok sikert // Good luck
- 1
-
16 hours ago, DoIIar said:
Hello guys
I have a problem when adding new things in Player mysql
Query Player :https://metin2.download/picture/d4qJh8yy4A2j0SpGCL5g2H6kgHRXuLLx/.png
ClientManagerPlayer.cpp
Syseer dbSpoiler1.
change to ->
snprintf(queryStr, sizeof(queryStr),
"SELECT "
"id,name,job,voice,dir,x,y,z,map_index,exit_x,exit_y,exit_map_index,hp,mp,stamina,random_hp,random_sp,playtime,gold,"
#ifdef ENABLE_CHEQUE_SYSTEM
"cheque,"
#endif
#ifdef ENABLE_GEM_SYSTEM
"gem,"
#endif
"level,level_step,st,ht,dx,iq,exp,"
"stat_point,skill_point,sub_skill_point,stat_reset_count,part_base,part_hair, part_acce,"
"skill_level,quickslot,skill_group,alignment,"
#ifdef ENABLE_CONQUEROR_LEVEL
"conquerorlevel,conqueror_level_step,sungma_str,sungma_hp,sungma_move,sungma_inmune,conqueror_exp,conqueror_point,"
#endif
"mobile,horse_level,horse_riding,horse_hp,horse_hp_droptime,horse_stamina,"
"UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(last_play),horse_skill_point,"
"fish_use_count, fish_slots"
#ifdef ENABLE_GEM_SYSTEM
",UNIX_TIMESTAMP(gem_next_refresh),gem_items "
#endif
" ,envanter "
" FROM player%s WHERE id=%d",
GetTablePostfix(), packet->player_id);
2.
Check your sql syntax....
'sungma_inmune' ;
Change from ";" to ","
-
On 9/22/2019 at 8:07 AM, evils666 said:
Hello.
Does anyone have an updated system for direct 9?
Yes. i too upgraded to DX9 -
1 minute ago, EnKor said:
I dont wanna add button xD
I wanna close the channelboard with ESC key
Self.interface.channelswitch():
Def channelswitch() :
If constinfo.channel_switch ==1:
Self.close()
Else:
Self.open()
- 1
-
On 9/9/2018 at 8:17 PM, Vanilla said:
Hello everybody,
since I've heard that a lot of servers (and even the most recent vanilla source release) have no fix for this hack I decided to release this. It's not too big, but I really would like to make it visible for everybody. I highly dislike hacks in every form and I'll gladly develop such fixes.
So, the fix is quite easy. It's a bug from metin2. They decided to add a check if the target is too far away to be attacked and yeah, that works. Targets only receive damage once they're within range. But the problem is that modern moblock tools do that a different way. They send attack packets to every mob in the near surrounding which triggers aggr towards the player. You may ask: Why does it trigger aggr and let the mobs move to the player? Well, as mentioned, the source has a fix for that - but it's implemented too late.
1. Open char_battle.cpp and search for this function: CHARACTER::Attack
First you may notice that there's literally no check for distance. The distance check is implemented in battle.cpp in the function battle_melee_attack. That's fine and we don't need to modify anything about this.
2. If you scroll down you'll see the following lines:
pkVictim->SetSyncOwner(this); if (pkVictim->CanBeginFight()) pkVictim->BeginFight(this);
Noticed something? Yeah, the check is - as mentioned before - in the function battle_melee_attack. The problem is, that these lines are executed before the check happens. So hackers will be visible in logfiles (syslog should spam distance errors) but they're still free to hack like they want to.
3. Move the lines below the battle type segment
So, how do we fix this? We'd simply move it down below the battle type functions. So you'd move it just before the line "if (iRet == BATTLE_DAMAGE || iRet == BATTLE_DEAD)". But still that won't be enough since these lines would still be executed. We don't want them to be executed. So we wrap a condition around it.
4. modify these lines so they look like this:
if(iRet != BATTLE_NONE) { pkVictim->SetSyncOwner(this); if (pkVictim->CanBeginFight()) pkVictim->BeginFight(this); }
If we take a look on the battle type functions we'll notice that they return the BATTLE_NONE if something goes wrong - for example the distance is invalid.
5. you're done!
The fix pretty much solves this issue. If you still know hacks that work feel free to write in this topic, I'll gladly share solutions once I've developed them.
Enjoy!
Hello.
Dear Vanila.
Thank for this.
Bugged!!!!!
WHITOUT this fix, syserr :
SYSERR: Apr 11 16:23:49.472300 :: Attack: Unhandled battle type 3
Fix:
char_battle.cpp
in this switch:
switch (GetMobBattleType())
After this:
case BATTLE_TYPE_MELEE:
case BATTLE_TYPE_POWER:
case BATTLE_TYPE_TANKER:
case BATTLE_TYPE_SUPER_POWER:
case BATTLE_TYPE_SUPER_TANKER:
add:
case BATTLE_TYPE_SPECIAL:
-
On 1/23/2019 at 4:16 PM, .plechito' said:
Thank you!
Stone have Image missing...
Missing file is "zone/plechi_env/valentine2019/heart_ballon.dds"
Can u upload this file for me/us? Thank you
- 1
-
Hello,
SpoilerWhen dialog showed up, and press i or open/close inv drop/destroy dialg is freezeeee everything:
SpoilerSearch:
onPressKeyDict[app.DIK_I] = lambda : self.interface.ToggleInventoryWindow()
Change to :
onPressKeyDict[app.DIK_I] = lambda : self.Dialog_fix_inv()
Search:
def MoveUp(self):
After add this:
def Dialog_fix_inv(self):
self.OnCloseQuestionDialog()
self.interface.ToggleInventoryWindow()
Search this:
def __SendDropItemPacket(self, itemVNum, itemCount, itemInvenType = player.INVENTORY):
Before add this:
def OnCloseQuestionDialog(self):
if not self.itemDropQuestionDialog:
return
else:
self.itemDropQuestionDialog.Close()
self.itemDropQuestionDialog = None
constInfo.SET_ITEM_QUESTION_DIALOG_STATUS(0)
In deff __DropItem
Search this:
## Dialog_Equipments
if dropItemType in [1, 2] and dropItemSubType in range(7) or dropItemType == 28 and dropItemSubType in [0, 1]:
itemDropQuestionDialog = uiCommon.EquipmentDropQuestion()
itemDropQuestionDialog.SetAcceptEvent(lambda arg=TRUE: self.RequestDropItem(arg))
itemDropQuestionDialog.SetCancelEvent(lambda arg=FALSE: self.RequestDropItem(arg))
itemDropQuestionDialog.dropType = attachedType
itemDropQuestionDialog.dropNumber = attachedItemSlotPos
itemDropQuestionDialog.dropCount = attachedItemCount
itemDropQuestionDialog.Open(attachedItemSlotPos)
self.itemDropQuestionDialog = itemDropQuestionDialog## Dialog_Items
After add this:
else:
itemDropQuestionDialog = uiCommon.QuestionDialogItem()
#itemDropQuestionDialog = uiCommon.QuestionDialog()
itemDropQuestionDialog.SetText(questionText)
itemDropQuestionDialog.SetAcceptEvent(lambda arg=TRUE: self.RequestDropItem(arg))
itemDropQuestionDialog.SetDestroyEvent(lambda arg=TRUE: self.RequestDestroyItem(arg))
itemDropQuestionDialog.SetCancelEvent(lambda arg=FALSE: self.RequestDropItem(arg))
itemDropQuestionDialog.Open()
itemDropQuestionDialog.dropType = attachedType
itemDropQuestionDialog.dropNumber = attachedItemSlotPos
itemDropQuestionDialog.dropCount = attachedItemCount
self.itemDropQuestionDialog = itemDropQuestionDialogconstInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
SpoilerOver:
## Dialog_Equipments
if dropItemType in [1, 2] and dropItemSubType in range(7) or dropItemType == 28 and dropItemSubType in [0, 1]:
itemDropQuestionDialog = uiCommon.EquipmentDropQuestion()
itemDropQuestionDialog.SetAcceptEvent(lambda arg=TRUE: self.RequestDropItem(arg))
itemDropQuestionDialog.SetCancelEvent(lambda arg=FALSE: self.RequestDropItem(arg))
itemDropQuestionDialog.dropType = attachedType
itemDropQuestionDialog.dropNumber = attachedItemSlotPos
itemDropQuestionDialog.dropCount = attachedItemCount
itemDropQuestionDialog.Open(attachedItemSlotPos)
self.itemDropQuestionDialog = itemDropQuestionDialog## Dialog_Items
else:
itemDropQuestionDialog = uiCommon.QuestionDialogItem()
#itemDropQuestionDialog = uiCommon.QuestionDialog()
itemDropQuestionDialog.SetText(questionText)
itemDropQuestionDialog.SetAcceptEvent(lambda arg=TRUE: self.RequestDropItem(arg))
itemDropQuestionDialog.SetDestroyEvent(lambda arg=TRUE: self.RequestDestroyItem(arg))
itemDropQuestionDialog.SetCancelEvent(lambda arg=FALSE: self.RequestDropItem(arg))
itemDropQuestionDialog.Open()
itemDropQuestionDialog.dropType = attachedType
itemDropQuestionDialog.dropNumber = attachedItemSlotPos
itemDropQuestionDialog.dropCount = attachedItemCount
self.itemDropQuestionDialog = itemDropQuestionDialogconstInfo.SET_ITEM_QUESTION_DIALOG_STATUS(1)
Best Regards,
-
Hi @Dennis,
Thank you +1 sent
Fixed with Max stack + inv expansion sys- 1
-
10 minutes ago, ReFresh said:
This system has no bugs It's only your problem.
Tell Me more please.....
-
29 minutes ago, bykatil199 said:
bug ?
Yes. This is bug.
-
Hello,
Thank for this release....
One problem:
This system for :
45 slot with 2 page = 90 slot / with 4 page = 180 slot.
And, NOT FOR:
90 slot with 2 page = 180 slot
BTW i edited....
In Quote my edition
Image:Quote
Video:
Spoiler
Thank you!
* EDIT *
self.wndPopupDialog.SetText(localeInfo.ENVANTER_ANAH_LAZIM % lazim)
Change to
self.wndPopupDialog.SetText(localeInfo.ENVANTER_ANAH_LAZIM % int(lazim))
This generated syserr are fixed.
-
On 9/10/2014 at 6:27 PM, TheSLZ said:
Thx but done everything but client crash when i enter id & pass.
0910 22:22:07182 :: networkModule.py(line:200) SetSelectCharacterPhase system.py(line:130) __pack_import system.py(line:110) _process_result introSelect.py(line:28) ? system.py(line:130) __pack_import system.py(line:110) _process_result interfaceModule.py(line:37) ? system.py(line:130) __pack_import networkModule.SetSelectCharacterPhase - exceptions.SyntaxError:invalid syntax (line 240) 0910 22:22:07182 :: ============================================================================================================ 0910 22:22:07182 :: Abort!!!!
Tab hiba....
@TheSLZexceptions.SyntaxError:invalid syntax (line 240)
- 1
-
On 2015. 09. 20. at 9:58 AM, AlCapone said:
Can you send the itemproto too?
Item_Names.txt
Spoiler85000 Fine Cloth
85001 Lord Sash (basic)
85002 Lord Sash (fine)
85003 Lord Sash (noble)
85004 Lord Sash (custom)
85005 Master Sash (basic)
85006 Master Sash (fine)
85007 Master Sash (noble)
85008 Master Sash (custom)
85009 Certificate of Reversal+
85011 Royal Sash (basic)
85012 Royal Sash (fine)
85013 Royal Sash (noble)
85014 Royal Sash (custom)
85015 Sovereign Sash (basic)
85016 Sovereign Sash (fine)
85017 Sovereign Sash (noble)
85018 Sovereign Sash (custom)
Item_Proto.txt
Spoiler85000 "파인 천" "ITEM_MATERIAL" "MATERIAL_LEATHER" 1 "ANTI_DROP | ANTI_SELL | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE | ANTI_SAFEBOX" "ITEM_STACKABLE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 0 0 0 0 0 0 0 0 0
85001 "주님 장식 띠 (기본)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 1 0 0 0 0 0 100 0 0
85002 "주님 장식 띠 (미세)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 2 0 0 0 0 0 100 0 0
85003 "주님 장식 띠 (귀족)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 3 0 0 0 0 0 100 0 0
85004 "주님 장식 띠 (사용자 정의)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 4 0 0 0 0 0 100 0 0
85005 "마스터 장식 띠 (기본)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 1 0 0 0 0 0 100 0 0
85006 "마스터 장식 띠 (미세)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 2 0 0 0 0 0 100 0 0
85007 "마스터 장식 띠 (귀족)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 3 0 0 0 0 0 100 0 0
85008 "마스터 장식 띠 (사용자 정의)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 4 0 0 0 0 0 100 0 0
85009 "반전 의 인증서+" "ITEM_USE" "USE_DETACHMENT" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 7 0 0 0 0 0 0 0 0
85011 "로얄 장식 띠 (기본)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 1 0 0 0 0 0 100 0 0
85012 "로얄 장식 띠 (미세)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 2 0 0 0 0 0 100 0 0
85013 "로얄 장식 띠 (귀족)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 3 0 0 0 0 0 100 0 0
85014 "로얄 장식 띠 (사용자 정의)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 4 0 0 0 0 0 100 0 0
85015 "소버린 장식 띠 (기본)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 1 0 0 0 0 0 100 0 0
85016 "소버린 장식 띠 (미세)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 2 0 0 0 0 0 100 0 0
85017 "소버린 장식 띠 (귀족)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP | ANTI_MYSHOP | ANTI_GIVE" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 3 0 0 0 0 0 100 0 0
85018 "소버린 장식 띠 (사용자 정의)" "ITEM_COSTUME" "COSTUME_SASH" 1 "ANTI_DROP | ANTI_SELL | ANTI_STACK | ANTI_PKDROP" "NONE" "NONE" "NONE" 0 0 0 0 0 "LIMIT_NONE" 0 "LIMIT_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 "APPLY_NONE" 0 4 0 0 0 0 0 100 0 0
Mob_Names.txt
Spoiler20406 Theowahdan
Mob_Proto.txt
Spoiler20406 "Theowahdan" "KING" "NPC" "MELEE" 1 "NOMOVE" 0 "STUN,SLOW,CURSE,TERROR" 0 "" 2 0 0 0 0 0 0 120 3 1 0 0 15 4 100 100 0 2000 175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-
On 2018. 02. 27. at 3:15 PM, Fleon said:
No, you just request to use the emotions.
The short form of that spoiler that is not clear and not even in english is:
Go into uitarget, look for __OnEmoticonAllow and add:net.SendWhisperPacket( (self.nameString), "{} requested the use of emotions with you".format(player.GetName()) )
Fixed.ii forget to translate this. from hungary to ENG.
On 2018. 02. 23. at 2:59 PM, xprtn1337 said:isnt there missing something?
"szeretne érzelmeket veled." => request to kiss,slap etc...
Not missing just my default language is Hungarian....
And i forget to translate into eng...
Now is ENG.
Thank @Fleon- 1
-
8 hours ago, Caen said:
#bump
Hello,
In my topics
Best Regards,
[007]DawisOn 2017. 11. 16. at 8:41 PM, Caen said:Does anyone have this function to me?
-
Hello,
Today i saw some people search this.....
With [007]Dawis char clicked emotion to [TEST] char...Python Version
Spoiler
Root => UiTarget.py
Search this
Spoilerdef __OnEmotionAllow(self):
Add this
Spoilerimport player
sender = player.GetName()
net.SendChatPacket("/emotion_allow %d" % (self.vid))net.SendWhisperPacket( (self.nameString), "{} requested the use of emotions with you".format(player.GetName()) )
C++ Version by @ ASIKOO
ACMD(do_emotion_allow) { if ( ch->GetArena() ) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ÃÀå¿¡¼ »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.")); return; } char arg1[256]; one_argument(argument, arg1, sizeof(arg1)); if (!*arg1) return; uint32_t val = 0; str_to_number(val, arg1); #ifdef M2_FEATURE_NOTICE_EMOTION LPCHARACTER tch = CHARACTER_MANAGER::instance().Find(val); if (tch) { bool bFrom = !(s_emotion_set.find(std::make_pair(ch->GetVID(), val)) == s_emotion_set.end()); bool bTo = !(s_emotion_set.find(std::make_pair(val, ch->GetVID())) == s_emotion_set.end()); if (bFrom && bTo) { ch->ChatPacket(CHAT_TYPE_INFO, "You are currently sharing emotions with your partner! <3"); return; } if (!bFrom && bTo) { s_emotion_set.insert(std::make_pair(ch->GetVID(), val)); ch->ChatPacket(CHAT_TYPE_INFO, "You allowed emotions with %s.", tch->GetName()); tch->ChatPacket(CHAT_TYPE_INFO, "%s allowed to share emotions.", ch->GetName()); return; } if (bFrom) { ch->ChatPacket(CHAT_TYPE_INFO, "You have already asked to share emotions with %s...", tch->GetName()); ch->ChatPacket(CHAT_TYPE_INFO, "Don't anger your partner and be patient!"); return; } else { s_emotion_set.insert(std::make_pair(ch->GetVID(), val)); ch->ChatPacket(CHAT_TYPE_INFO, "You asked to share emotions with %s.", tch->GetName()); tch->ChatPacket(CHAT_TYPE_INFO, "%s requested to share emotions with you.", ch->GetName()); return; } } #else s_emotion_set.insert(std::make_pair(ch->GetVID(), val)); #endif }
Best Regards,
[007]Dawis- 16
- 1
- 1
- 5
-
Hello,
In warp function (in quest) use thisQuoted.new_jump_party(A, B,C)
A = map index
B = Y
C = X
Like this (example)
d.new_jump_party(351, 7762, 6739)
Flame dungeon 351 map index and tele to 7762 6739 koordinateBest Regards,
Dawis -
On 2017. 08. 01. at 4:33 PM, Distraught said:
In Metin2 - like other MMORPGs - you can make items need status points to be equipped. I'll show you how.
Open locale_game.txt (in locale_xy)
Search for: TOOLTIP_ITEM_LIMIT_CON
Below you'll see the rest, you can set the way you want them to appear like
TOOLTIP_ITEM_LIMIT_CON Needed CON: %d
TOOLTIP_ITEM_LIMIT_DEX Nedded DEX: %d
TOOLTIP_ITEM_LIMIT_INT Needed INT: %d
TOOLTIP_ITEM_LIMIT_LEVEL %d. szinttől
TOOLTIP_ITEM_LIMIT_STR Needed STR: %dNext, open uitooltip.py in root and search for: if item.LIMIT_LEVEL == limitType:
Modify this part to make it look something like this (take care of tabulators):
if item.LIMIT_LEVEL == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.LEVEL), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_LEVEL % (limitValue), color) elif item.LIMIT_STR == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.ST), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_STR % (limitValue), color) elif item.LIMIT_DEX == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.DX), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_DEX % (limitValue), color) elif item.LIMIT_INT == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.IQ), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_INT % (limitValue), color) elif item.LIMIT_CON == limitType: color = self.GetLimitTextLineColor(player.GetStatus(player.HT), limitValue) self.AppendTextLine(localeInfo.TOOLTIP_ITEM_LIMIT_CON % (limitValue), color)
If you're using txt item proto, then write DEX, INT, CON or STR to limittype0 and the value to limitvalue0 like when you set the level limit.
If you're item_proto is in mysql, then the limitvalue values are:
2 - STR
3 - DEX
4 - INT
5 - CONThank u so much!
i edited little and the finish is...
Need level limit + stat limit -
Hello,
On 2017. 08. 26. at 3:13 AM, apocalyptic said:Hello guys .
I have a problem with the change texture snow ingame . When i'm trying to enter on game option , it doesn't open .
Sysser :
0826 03:00:24978 :: File "ui.py", line 1367, in CallEvent
0826 03:00:24978 :: File "ui.py", line 88, in __call__
0826 03:00:24979 :: File "ui.py", line 70, in __call__
0826 03:00:24979 :: File "uiSystem.py", line 146, in __ClickGameOptionButton
0826 03:00:24979 :: File "uiGameOption.py", line 36, in __init__
0826 03:00:24979 :: File "uiGameOption.py", line 543, in RefreshShowSnowTextures
0826 03:00:24979 :: AttributeError
0826 03:00:24979 :: :
0826 03:00:24980 :: 'module' object has no attribute 'IsSnowTextures'"IsSnowTextures" is already added on binary :
bool CPythonSystem::IsSnowTexturesMode()
{
return m_Config.bSnowTexturesMode;
}in PM send me this system and i fix for u
(not joking) -
Hello,
On 2015. 01. 10. at 9:57 PM, mindfreak said:my client dont find this
import subprocessimport threadingU have missing module(s)
subprocess and threading
Somebody upload me this 2 file?
thank -
Server dont show 6th skill
in Community Support - Questions & Answers
Posted
Hi!
This
Tested.
(If it is help, pls mark as ... )