Where do i have to create an empty section?
To view the content, you need to sign in or register
Due to missing images, I'll give a quick illustration:-
I also have downloaded olly, but i really have no idea about what pointers you are talking about.
That is a massive pitfall, and utterly beyond the scope of these forums.
Mabye adjust your tutorial so I understand it?
Pre-requisites of any understanding:-
- Must already be familiar with "digital principals" as they pertain to CPU machine-code, binary memory devices and their addressing mechanisms.
- Basic understanding of i386 instruction set.
- Understanding of standard programming practices regarding stack frames, memory maps, pointer referencing and dereferencing... at least in a language like C. (in this case, not C++, which hides such activity behind objects)
These things are basic, basic, basic level understanding of a computer. If you don't really understand this, you aren't really in control of your computer. That's fine, I don't understand internal combustion engines, and I'm happy that if my car breaks down I take it to the Auto-repair guy. What you want to do here (change the level cap) is like turning a Skoda into a Hotrod, so I hope you can repair a factory model that was written off.
Those basic understandings are beyond the scope of RaGEZONE. Some examples may be found in the Coders Paradise, but not enough to get you to the level of understanding needed to follow the most in-depth guide to changing PTs level-cap. You need to know this already! If you don't know it, you either need to go elsewhere to study it, or just accept what you are given here by others who already do.
That may sound harsh, but it's not meant to. Honestly if I hadn't studied this at school and college I wouldn't know where to start. (and these are not common classes that everyone takes, this is private study outside lessons or optional evening / weekend classes and such)
I could give you 2 or 3 books to spend a year working through exercises until you understand this, and can think of no more succinct way of imparting that information. I'm certainly not going to post 2 or 3 books on basic digital principals here on RaGEZONE, as that would be breaking our rules of relevancy. There are websites which dedicate themselves to such things, and they are great when you are working through the exercises in such a book... but it's not
our place to do that. It is our place to help people apply that knowledge to specific game servers and their clients. But we have to assume that they already have the basic knowledge / skill.
What to look for elsewhere...?
If you understand high level programming of some kind (C[++/#], Pascal, Basic, even php) then imagine your entire memory is an array of bytes. Some of those bytes are your code, and some are data. They could be pictures, numbers, text, shapes, absolutely anything. That's how general purpose a computers memory is.
Map your memory:-
Code:
+--------+----------------------------------+
| +40000 | Stack Space |
+--------+----------------------------------+
| +30000 | Variables |
+--------+----------------------------------+
| +20000 | Constants |
+--------+----------------------------------+
| +10000 | Code |
+--------+----------------------------------+
|0-10000 | ROM / BIOS |
+--------+----------------------------------+
Each variable in your high level program has a name, right? Machine code doesn't give names to variables, just addresses laid out in your map. So each variable name is mapped to an address. An array variable, like the experience table, is lots of variables with the same name, so it actually has lots of addresses for different array elements.
If your array is "Array()" and you access the tenth element by "Array(10)" then you can set X to 10 and access the 10th element by "Array(X)". Now you are referencing an offset to the array by a variable. It is a "pointer" to an Array element, but it's also a pointer offset, because "Array()" is actually a pointer.
If you create a structure which contains an array, you are referencing a pointer to a pointer. Then X becomes and offset from a pointer to a pointer. If you wrap that structure in another structure, a pointer to a pointer to a pointer. As you move into object orientation the levels of this "abstraction" become deeper, and overhead at the machine code level gets greater and greater. It's wasteful, but makes the high level programmers job much easier, the code clearer and reduces bugs and time spent debugging. Until you have to debug without the source. XD
Compilers will try to "optimize" some of this waste away, which actually makes the machine code look even messier, and harder to trace and debug.
Fortunately, most of Priston Tale is written in C style (all be it with a C++ compiler) and there are very few layers of abstraction. There is no abstraction to the experience table, and it is literally treated as an array.
However, there are offsets within the array which are kept, and may need to be taken care of. For example, the Job-Change levels are "special" levels, and there will be offsets to them in the code.