|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Development::Feature Requests Post suggestions/feature requests here. |

10-27-2010, 06:54 AM
|
 |
Demi-God
|
|
Join Date: May 2007
Location: b
Posts: 1,449
|
|
If I was a custom server starting fresh with the knowledge I know today, I would completely change the exp code. Why?
1) The exp code only gives support up to level 90 without rollover past deaths.
2) The exp code factors in NPC con too much.
3) It's based on exp count, not number of kills.
4) 2 and 3.
Why number of kills? It's pretty simple:
1) smaller numbers
2) less exponential growth to leave room for valid integers
3) it's not a float
4) easily tracked
You can do this one of two ways:
1) Extended profile
2) Gut the exp code and use perl
This leaves us with these results:
1) Level support up to 65535 (minus spells being scribeable below 250, but that can be fixed on the server)
2) Completely custom exp formula
I suggest 1. Good luck.
|

10-27-2010, 03:14 PM
|
Dragon
|
|
Join Date: May 2009
Location: Milky Way
Posts: 539
|
|
Quote:
Not to mention my one extra table, allows fine tuning of XP curve on the fly
|
!=
Quote:
not unless you starting off a fresh a server with no chars
|
If you are setting up a fresh server, then just edit the source. Considering that HoT client isn't supported at all, its not like a rush to make it so that level 90 is supported(and if/when the HoT client push comes, that will be one of the things that gets changed, although since we are only 1 level short of 90, would be easy to just alter the mod for level 90 so that it stays within the limits, as opposed to doing anything else).
|

10-27-2010, 07:13 PM
|
 |
Demi-God
|
|
Join Date: May 2007
Location: b
Posts: 1,449
|
|
Quote:
Originally Posted by Caryatis
If you are setting up a fresh server, then just edit the source. Considering that HoT client isn't supported at all, its not like a rush to make it so that level 90 is supported(and if/when the HoT client push comes, that will be one of the things that gets changed, although since we are only 1 level short of 90, would be easy to just alter the mod for level 90 so that it stays within the limits, as opposed to doing anything else).
|
Even if you are working on an existing server...
changing it so when you log in, checking the level, setting the exp to getexpforlevel(level) then storing a boolean so that you know you logged in since you updated the server (in the extended player profile (m_epp)) *then* calculating experience afterwards would be the ideal goal. It would reset some progress into the level that they had, though, but you could tweak the entire exp formula this way.
|
 |
|
 |

10-27-2010, 07:28 PM
|
 |
Demi-God
|
|
Join Date: May 2007
Location: b
Posts: 1,449
|
|
To further back my idea,
Code:
Index: common/extprofile.h
===================================================================
--- common/extprofile.h (revision 1709)
+++ common/extprofile.h (working copy)
@@ -46,6 +46,7 @@
uint32 aa_effects;
uint32 perAA; //% of exp going to AAs
+ bool expchange;
};
#pragma pack()
Index: zone/client_packet.cpp
===================================================================
--- zone/client_packet.cpp (revision 1709)
+++ zone/client_packet.cpp (working copy)
@@ -8586,6 +8586,13 @@
}
+ if(!m_epp.expchange)
+ {
+ SetEXP(GetEXPForLevel(GetLevel()), GetAAXP(), false);
+ m_epp.expchange = true;
+ }
+
+
////////////////////////////////////////////////////////////
// Task Packets
LoadClientTaskState();
Change EXP Formula, Add in code, ????, profit!
|

10-28-2010, 03:54 PM
|
Dragon
|
|
Join Date: Dec 2008
Location: Tennessee
Posts: 656
|
|
If you change the modifiers in the exp code you will need a way to let the client/server know something changed or you will encounter one of the problems I did where a newly created character kills a level 1 npc and gains 100+ levels or a level 85 character dies then loses 7 levels instead of 10-15% of the current level.
I had been wanting to do something similar to what Secrets proposed but I simply do not have the needed skill to implement it.
|
 |
|
 |

10-29-2010, 08:18 AM
|
 |
Demi-God
|
|
Join Date: May 2007
Location: b
Posts: 1,449
|
|
Quote:
Originally Posted by blackdragonsdg
If you change the modifiers in the exp code you will need a way to let the client/server know something changed or you will encounter one of the problems I did where a newly created character kills a level 1 npc and gains 100+ levels or a level 85 character dies then loses 7 levels instead of 10-15% of the current level.
I had been wanting to do something similar to what Secrets proposed but I simply do not have the needed skill to implement it.
|
The server is the only thing that needs to know the full exp data; the client is quite stupid and only displays a number between 1-100. I don't even think the rezexp stored on the corpse is used, though I could be wrong.
Quote:
yeah thats why I am trying hard to get KLS attention to make this fix official
|
PEQ doesn't have this issue, therefore it'll never be 'official' until PEQ runs into this issue. Simple fix would be changing the data value to a float for now. If that's too much to ask, well, can't help you really.
However, I can tell you this: SVN checkout + svn update after modifications using tortoisesvn in windows is pretty easy. If you are using another SVN, use tortoisesvn's export function and check out the eqemu revision you stopped on. After that, paste your files into the eqemu folder you checked out. SVN update, resolve the conflicts (as long as you didn't change any major systems, this shouldn't be an issue. Or systems that get changed rarely IE exp.) and compile. Problem solved.
|
 |
|
 |

10-29-2010, 06:39 PM
|
Dragon
|
|
Join Date: Dec 2008
Location: Tennessee
Posts: 656
|
|
I think I have figured out why I was getting massive exp loss on death. I always thought exp loss on death was just a varied percentage being taken away from the players current exp. I assumed that was the case which is a noob mistake. I should know better than to assume anything like that.
Yesterday I started looking for the code that controls death and exp loss and well I found it. There is a large modifier in that formula just as there was in exp gain. So I decreased the modifier by the same factor I used in the exp formula. Then I repeatedly killed a level 85 character as a test, the character only lost about 10% exp on each death instead of 7 levels per. Gonna test this some more but it is looking pretty good so far. I also changed the code for death by sacrifice that necros love using.
Are there any other death tricks in the code that I should look for?
|
Thread Tools |
|
Display Modes |
Hybrid Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 11:55 PM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |