-
Posts
1298 -
Joined
-
Last visited
-
Days Won
38 -
Feedback
100%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by Syreldar
-
-
Indentation and code are indeed both romanian level. Also missing quite a few "end" here and there, no wonder it doesn't compile it.
Use of global vars is not recommended, either.
-
43 minutes ago, snayzer24 said:
I know but he shouldn't wait that long, 5 seconds waiting
Yes, it's 5 seconds waiting since 2004.
-
According to the error, you're trying to spawn a monster with vnum 3200, instead of the group vnum 3200.
-
-
?
enter triggers upon entering that state. The only thing it currently does is setting the count to 0 upon entering the state.
-
35 minutes ago, masodikbela said:
For me it looks like its just how the animation works... so basically the combo_01 and combo_03 works, but the combo_02 doesnt work because of the collosion data:
-> this is for the 01 and 03 which I think does damage, if you imagine the horse under her you can see that its correct, usually collide on the side and on the front with the monsters
this is the same from another perspective
this is the combo_02 which I think sometimes doesnt do damage on the front because its too high and doesnt collide with the height of the metins
So I think its nothing to do with speed, simply its just "visual", cus when the attackspeed is slow you may not notice that the second animation doesn't do damage, and when it becomes faster its more obvious that something is not right.It's not visual. This is a known bug, it fails to do damage on high attackspeed, but if you keep it low it deals damage normally.
-
..What's the issue?
-
Tatsumaru did, If i remember correctly.
-
the problem is in the clientside part of the map.
-
5 minutes ago, 59sos said:
1. Well, find it or I can't help you.
2. Change this snippet:
if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% 확률 { int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100; if (i) { CreateFly(FLY_HP_SMALL, pAttacker); pAttacker->PointChange(POINT_HP, i); } } // 칠 때마다 SP회복 if (pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) && number(0, 4) > 0) // 80% 확률 { int i = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100; if (i) { CreateFly(FLY_SP_SMALL, pAttacker); pAttacker->PointChange(POINT_SP, i); } }
Into this:
if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% E¢ç¡¤u { int i = (iCurHP >= 0 ? MIN(dam, iCurHP) : dam) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100; if (i) { CreateFly(FLY_HP_SMALL, pAttacker); pAttacker->PointChange(POINT_HP, i); } } if (pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) && number(0, 4) > 0) // 80% E¢ç¡¤u { int i = (iCurHP >= 0 ? MIN(dam, iCurHP) : dam) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100; if (i) { CreateFly(FLY_SP_SMALL, pAttacker); pAttacker->PointChange(POINT_SP, i); } }
3. My fix is the only and complete fix for the issue.
-
1. Post the quest.
2. Post Character::Damage from char_battle.cpp, the snippet after this line:
if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% Č®·ü
- 1
-
9 minutes ago, Morpheus™ said:
The use of quest doesn't solve the issue, it can be bugged also. There is a whole dungeon in our server which relies on quest drop and sometimes it's drop is lowered or totally vanishes.
I am fairly sure that cannot happen if done properly.
-
If you want the item to be dropped 100%, write a quest for it.
If you don't, then it's just unlucky, drop doesn't depend on damage.
-
-
11 minutes ago, joshi said:
source file startposition.cpp
-
10 hours ago, beszurlp said:
bad argument #2 to `format' (number expected, got no value)
It means the qf is not set.
-
translate_text = { ["de"] = { ["confirmLang"] = "You've selected german.", ["questname"] = { ["title"] = "title here", ["text"] = string.format("the qf is %d", pc.getf("auftrag", "current_mission")) } }, } say(translate_text["de"]["questname"]["text"])
Works just fine.
-
I think I got an aneurysm from reading this, why would you push a 6 years old topic?
- 2
-
Make them Toggles and increase their duration to a high value.
- 1
-
10 minutes ago, Metin2Place said:
I don't think it does.int pc_mount_bonus(lua_State* L) { BYTE applyOn = static_cast<BYTE>(lua_tonumber(L, 1)); long value = static_cast<long>(lua_tonumber(L, 2)); long duration = static_cast<long>(lua_tonumber(L, 3)); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if( NULL != ch ) { ch->RemoveAffect(AFFECT_MOUNT_BONUS); ch->AddAffect(AFFECT_MOUNT_BONUS, aApplyInfo[applyOn].bPointType, value, AFF_NONE, duration, 0, false); } return 0; }
Then it's not possible to do it via quest without any source changes, unless you hardcode it with affect.add_collect and affect.remove_collect on dismount, but considering that there is no trigger for that, it would simply not work properly; you're not the only one that can make you dismount: there are many cases.
- Death (also not checkable via quest unless you have the die trigger like on martysama's sources).
- New login or Teleport on new map (the mount isn't immediately re-equipped, so it would require a timer)
- etc.
But even if you somehow hardcoded all the cases, the affect_add_collect works with keys and values.
This means that if you somehow got another bonus of the same type and value which has been given to you via affect.add_collect, the other bonus will be gone forever.
Have you ever thought about why does the Lv30 Biologist mission give you 10% Movement speed and the Lv70 one gives you 11%? Well, that's the reason.
-
15 minutes ago, Metin2Place said:
That's not the problem I have.
Well it depends wether or not the pc.mount_bonus function allows the player to have multiple AFFECT_MOUNT_BONUS, which if I remember correctly is not allowed.
But, assuming it does allow it and i'm just not remembering correctly, turn the bonus arg from a simple int into a table, then iterate through the same table depending on what mount you're using and call the pc.mount_bonus function for each bonus you put inside the table, enjoy.
-
when login with pc.get_map_index()== 1100000 begin if true == pc.is_riding() then horse.unride() horse.unsummon() end end
You don't know how dungeon instances work?That is only going to work for the very first instance you create.
-
5 hours ago, Itachi said:
Do not use that.
It is badly done.It doesn't matter, unless the code is flawed in some way (memory leaks/no checks on pointers/etc) your point is invalid.
He is trying to change the way a system of a 2004 game works. Rewriting the 10 lines of code that system is made of like a pro won't make up for the hundreds of thousands of lines written by monkeys 16 years ago.
If it does the job well, then it's fine.
-
1 hour ago, Chookez said:
Hello all.
Someone can give me some help in this code?
if (!bFound) { TPacketGCEmpire pe; pe.bHeader = HEADER_GC_EMPIRE; pe.bEmpire = number(1, 3); d->Packet(&pe, sizeof(pe)); }
I deleted the yellow empire from the client.
So here's another statement that a user who doesn't have a character just enters the Red and Blue empires.
pe.bEmpire = number(1, 3);
1 = Shinsoo
2 = Chunjo
3 = Jinno
But i only want the first and third, not the second.
Sorry for my very bad english.
Well..
You can pull out the Turkish Dev from within you and write:
pe.bEmpire = number(1, 2) == 1 ? 1 : 3;
- 1
Alchemy with a Daily Limit
in Quests
Posted · Edited by Syreldar
Good job, glad to see someone post in this section every now and then.
Let me help you with something:
One more thing I can tell you is that if the argument you're going to pass to the function is always the player's level, there is no point in making it an argument in the first place, you can just call pc.get_level() instead, save it in a var if you prefer.