It's been a long time since i posted here,
Ok here come the project updates summary:
Major updates on items description (Fix and Cleanup)
Removed some spesifc infos from item description for future client (Trade, drop, storage, etc)
Added some translated button and windows
Added more translated items from many official servers
Fix some skills description
well not much to say, cus i just focused on fixing items description
Introduction
For our Example we will create the Custom Class "Shinobi" and its Child version i.e. "Baby Shinobi" along with their Cash Mounts/Halter Mounts. Each Job has 3 ID values :
1) Job ID - we will use 4230 & 4231 respectively for the jobs (4232 & 4233 will be reserved for the mounts client side).
2) Map ID - Also called EA Mask. If we are extending a class we OR the existing class with a modifier. Since Shinobi is going to be a seperate branch, we will use 0x11 for Shinobi and 0x11 | 0x2000 for Baby Shinobi (0x2000 is the JOBL_BABY mask).
3) Msg ID - Defined in messages.conf file. We will use 700 and 701.
Before we begin, A few points to note:
1) For the client side i will be using my own patch from NEMO not Xray clients - So dont ask me about Xray.
2) This guide is meant to be an overview towards adding jobs - meaning that your job will be enabled once you have done the changes specified here . You can add further details on your own which depends on your Class.
3) If i am missing out on anything please let me know. Nobody is perfect including me
4) We will use Sprite and some data from Ninja class for the time being but you can add your own entries just as easily.
Server Source
1) src/common/mmo.h: look for JOB_REBELLION assignment and insert our Job IDs after it.
query_sql( "SELECT `x` FROM `y` WHERE `char_id` = '"+escape_sql( getcharid(0) )+"'",.@status);
https://rathena.org/wiki/Query_sql
you need to look at
picklog table: type field
mysql limit, you need to offset to show them all
Not Tested Samplequery last 20 items that you sent in storage sample
set .@nb, query_logsql("SELECT nameid, amount FROM picklog WHERE type='R' AND amount<0 AND char_id=150000 ORDER BY time DESC LIMIT 20",.@item,.@amount);
for(set .@i,0; .@i < .@nb; set .@i,.@i+1)
mes .@item[.@i] +" "+ .@amount[.@i];
Let me explain it first.
It is ExtendedBG, which tends to contain all eAmodBG modes and extra modes(as and when coded).
Some Previews:
http://imgur.com/a/2SSVR
Ohh, and the last thing I forgot to tell,
Its 100% Plugin and Script, no Source Edits ..
Special Thanks To:
jaBote co-founded this project(and really thanks to him , that he motivated me at start at provided some functions and idea of how the base should be, and what we should do it to give flavor of Hercules in it).
Repository Link: https://github.com/dastgirp/eBG (Please read README.md for installation steps)
Leave Comments/Suggestions if you find something.
NOTE:
There might be some(/many) debug messages left in map-server which will be cleaned up.
I will add battle.conf soon (you have to add it yourself for now or edit the plugin)
The plugin might be a big mess to read/understand (I did many experiments over the year)
There might be some bugs
Thanks to @Rebel and @Myriad for testing and providing initial feedback
Contact me on Discord: @Dastgir#1460 if there's some urgent issue or else open the issue in github. keep this topic for support.
I'm not sure with this too please correct me if im wrong..
- script PvP -1,{ end;OnInit: while(1) { sleep2 5000; waitingroom "PvP Area [ " + getmapusers("prontera") + " / 100 ] ",0; end; }}
Answering to your second question (as the other ones have already been addressed): yes, you can omit the end; sentence if it's the last line of code before the closing curly brace of the NPC since it'll be assumed. Anyways, it's good practice to place it to end your script in any case wherever you'd want to end it, to avoid any possibly unexpected behavior.