Skilled Illusionist
- Joined
- Mar 20, 2009
- Messages
- 374
- Reaction score
- 378
Nobody has any imagination anymore ???Sure they are, but only to leech it all. Waste of time, everyone can just use cracked r3vo repack which already offers many features. There is no base to work on and even if there was, you'd be probably working on it alone. Can't you see this section is kind of dead?r3vo pretty much killed any kind of variety, competition, imagination with his copy paste repack that spread like a virus, no one tries to do anything on their own, zero efforts.
So yea, share it all, but don't forget to release it as ready to use .dlls, cuz that's what you'll be asked to do
Nice to see that all the 'old' developers are replying back. The reason I stopped working on my addons is because there isn't a stable base around there atm. Only something you have to pay 250 euro for, which is kind a ridiculous in my opinion.
I suggest we should create a clean stable repack, like Exe's repack a back while, but then with the new client.
Put some basic functionality like the current addons in it and build it up from there. I'm willing to contribute my time and effort again If i have a stable base to work from, and not a base that has backdoors everywhere.
Well anyway, I hope you guys feel the same and maybe we can bring the Kal Community back to life
NWK files include basic functions, and it is opensource, but not stable
i did released it? no lol, was a project from kealy, erik, sirix, alexei etc.
it was the first "new engine" project in kal developed by members from ragezone, they made it completely opensource then, after that others did start to work with it or learn from it, im not 100% sure but guess all other new engine servers only exist cuz NWK released their files, like bango from revo and lafreak, shinra from akamaru etc
€dit: im not a coder at all, just did made a small addon with alot help from Darn, alexei (Stiker), revo lafreak bloodx etc.. im a noob with that kind of stuff ^^
i did released it? no lol, was a project from kealy, erik, sirix, alexei etc.
it was the first "new engine" project in kal developed by members from ragezone, they made it completely opensource then, after that others did start to work with it or learn from it, im not 100% sure but guess all other new engine servers only exist cuz NWK released their files, like bango from revo and lafreak, shinra from akamaru etc
€dit: im not a coder at all, just did made a small addon with alot help from Darn, alexei (Stiker), revo lafreak bloodx etc.. im a noob with that kind of stuff ^^
[RewardItem_106]
Level = 106
Index = 25241
Amount = 105
AutoReward_Message1 = *x105 Reward Cash
AutoBuff_Message = &You have been blessed with a G10 hp bless med - Recovers 1000 hp point every second for 10 minutes or untill you die or relog.
AutoExpBoost_Message = &+2000 Experience Points
Exp = 2000
[RewardItem_107]
Level = 107
Index = 25241
Amount = 105
AutoReward_Message1 = *x105 Reward Cash
AutoBuff_Message = &You have been blessed with 30 minute mage buffs +25
AutoExpBoost_Message = &+2000 Experience Points
Exp = 2000
[RewardItem_108]
Level = 108
Index = 25241
Amount = 105
AutoReward_Message1 = *x105 Reward Cash
AutoExpBoost_Message = &+2000 Experience Points
Exp = 2000
[RewardItem_109]
Level = 109
Index = 25241
Amount = 105
AutoReward_Message1 = *x105 Reward Cash
AutoExpBoost_Message = &+2000 Experience Points
Exp = 2000
[RewardItem_110]
Level = 110
Index = 25241
Amount = 110
AutoReward_Message1 = *x110 Reward Cash
AutoExpBoost_Message = &+2000 Experience Points
Exp = 2000
[RewardItem_111]
Level = 111
Index = 663
Amount = 150
AutoReward_Message1 = *x150 Honor Points
AutoRemind_Message = $You are now level 131
AutoExpBoost_Message = &+500000000 Experience Points
Exp = 500000000
[RewardItem_131]
Level = 131
Index =
Amount =
AutoReward_Message1 =
[RewardItem_132]
Level = 132
Index = 25405
Amount = 250
AutoReward_Message1 = *x250 Skillbook Points
AutoBuff_Message = &You have been blessed with a G10 hp bless med - Recovers 1000 hp point every second for 10 minutes or untill you die or relog.
AutoExpBoost_Message = &+781250 Experience Points
Exp = 781250
The only problem with this addon is ALOT of it is hardcoded into the source so it is hard to just "release" it as a done project because every server will want different buffs added into the actual source which means different index numbers etc ...
I am not a "coder" like for example Darn and R3vo so i did not know how to really go about adding the buffs into the Config.ini so you can actually manually add the buff indexes of any buff you would want to use.
So i hardcoded it into the source itself since it was just used for my servers i did not need to make it as a Full Config System.
#include "iniConfig.h"
void iniConfig::Load_Config_LevelRewards(){
CIniReader *reader = new CIniReader(".\\TiMoConfigs\\LevelReward.txt");
LevelReward_CBuffIndex = reader->ReadInteger("[CustomBuffs]", "BuffIndex", 0);
LevelReward_CBuffState = reader->ReadInteger("[CustomBuffs]", "BuffState", 0);
LevelReward_CBuffCD = reader->ReadInteger("[CustomBuffs]", "BuffCD", 0);
LevelReward_Strength = reader->ReadInteger("BuffReward", "Strength", 0);
LevelReward_Health = reader->ReadInteger("BuffReward", "Health", 0);
LevelReward_Agility = reader->ReadInteger("BuffReward", "Agility", 0);
LevelReward_Intelligence = reader->ReadInteger("BuffReward", "Intelligence", 0);
LevelReward_Critical = reader->ReadInteger("BuffReward", "Critical", 0);
LevelReward_Defense = reader->ReadInteger("BuffReward", "Defense", 0);
LevelReward_Refine = reader->ReadInteger("BuffReward", "Refine", 0);
LevelReward_Speed = reader->ReadInteger("BuffReward", "Speed", 0);
LevelReward_Level = reader->ReadInteger("LevelReward", "Level", 0);
LevelReward_Index = reader->ReadInteger("LevelReward", "Index", 0);
LevelReward_Amount = reader->ReadInteger("LevelReward", "Amount", 0);
LevelReward_StatePoint = reader->ReadInteger("LevelReward", "StatePoint", 0);
LevelReward_SkillPoint = reader->ReadInteger("LevelReward", "SkillPoint", 0);
LevelReward_Buffs = reader->ReadBoolean("LevelReward", "BuffReward", false);
LevelReward_CustomBuffs = reader->ReadBoolean("LevelReward", "CustomBuffs", false);
LevelReward_MsgType = reader->ReadString("LevelReward", "MessageType", "");
LevelReward_Msg = reader->ReadString("LevelReward", "Message", "");
delete reader;
}
void iLevelUp::LevelUpRewards(){
if (this->player->GetLevel() == this->config->LevelReward_Level){
this->player->InsertItem(this->config->LevelReward_Index, this->config->LevelReward_Amount);
this->player->SetStatPoints(this->player->GetStatPoints() + this->config->LevelReward_StatePoints);
this->player->SetSkillPoints(this->player->GetStatPoints() + this->config->LevelReward_SkillPoints);
if (this->config->LevelReward_Buffs){
this->player->CancelallBuffs();
this->player->InsertallBuffs(this->config->LevelReward_Strength, this->config->LevelReward_Health,
this->config->LevelReward_Agility, this->config->LevelReward_Intelligence,
this->config->LevelReward_Critical, this->config->LevelReward_Defense,
this->config->LevelReward_Refine, this->config->LevelReward_Speed);
}
else if (this->config->LevelReward_CustomBuffs){
this->player->InsertBuff(this->config->LevelReward_CBuffIndex, this->config->LevelReward_CBuffState, this->config->LevelReward_CBuffCD);
}
if (this->config->LevelReward_MsgType == "notice"){
this->player->Notice(this->config->LevelReward_Msg);
}
else if (this->config->LevelReward_MsgType == "chatmsg"){
this->player->ChatMsg("Server", this->config->LevelReward_Msg);
}
}
}
void Player::CancelallBuffs()
{
Server::CChar::CancelBuff(this->playerpointer, 46);
Server::CChar::CancelBuff(this->playerpointer, 47);
Server::CChar::CancelBuff(this->playerpointer, 48);
Server::CChar::CancelBuff(this->playerpointer, 49);
Server::CChar::CancelBuff(this->playerpointer, 50);
Server::CChar::CancelBuff(this->playerpointer, 37);
Server::CChar::CancelBuff(this->playerpointer, 36);
Server::CChar::CancelBuff(this->playerpointer, 12);
}
void Player::InsertallBuffs(int str, int hlth, int agi, int intel, int crit, int def, int ref, int speed)
{
int Strength = Server::CChar::CreateBuff(46, 1800, str, 0);
(*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Strength);
int Health = Server::CChar::CreateBuff(47, 1800, hlth, 0);
(*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Health);
int Agility = Server::CChar::CreateBuff(48, 1800, agi, 0);
(*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Agility);
int Intelligence = Server::CChar::CreateBuff(49, 1800, intel, 0);
(*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Intelligence);
int Critical = Server::CChar::CreateBuff(50, 1800, crit, 0);
(*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Critical);
int Defense = Server::CChar::CreateBuff(37, 1800, def, 0);
(*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Defense);
int Refine = Server::CChar::CreateBuff(36, 1800, ref, 0);
(*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer + 180))(this->playerpointer, Refine);
int Speed = Server::CChar::CreateBuff(12, 1800, speed, 0);
(*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Speed);
}
[CustomBuffs]
BuffIndex = 12
BuffStats = 90
BuffCD = 3600
[BuffReward]
Strength = 20
Health = 20
Agility = 20
Intelligence = 20
Critical = 9
Defense = 67
Refine = 58
Speed = 80
[LevelReward]
Level = 70
Index = 5007
Amount = 1
StatPoint = 10
SkillPoint = 5
BuffReward = true
CustomBuffs = false
MessageType = chatmsg
Message = $congratulation
It was leaked, not really released.
Hi,
I've write a small example for you based on your config style, here it is:
Code:#include "iniConfig.h" void iniConfig::Load_Config_LevelRewards(){ CIniReader *reader = new CIniReader(".\\TiMoConfigs\\LevelReward.txt"); LevelReward_CBuffIndex = reader->ReadInteger("[CustomBuffs]", "BuffIndex", 0); LevelReward_CBuffState = reader->ReadInteger("[CustomBuffs]", "BuffState", 0); LevelReward_CBuffCD = reader->ReadInteger("[CustomBuffs]", "BuffCD", 0); LevelReward_Strength = reader->ReadInteger("BuffReward", "Strength", 0); LevelReward_Health = reader->ReadInteger("BuffReward", "Health", 0); LevelReward_Agility = reader->ReadInteger("BuffReward", "Agility", 0); LevelReward_Intelligence = reader->ReadInteger("BuffReward", "Intelligence", 0); LevelReward_Critical = reader->ReadInteger("BuffReward", "Critical", 0); LevelReward_Defense = reader->ReadInteger("BuffReward", "Defense", 0); LevelReward_Refine = reader->ReadInteger("BuffReward", "Refine", 0); LevelReward_Speed = reader->ReadInteger("BuffReward", "Speed", 0); LevelReward_Level = reader->ReadInteger("LevelReward", "Level", 0); LevelReward_Index = reader->ReadInteger("LevelReward", "Index", 0); LevelReward_Amount = reader->ReadInteger("LevelReward", "Amount", 0); LevelReward_StatePoint = reader->ReadInteger("LevelReward", "StatePoint", 0); LevelReward_SkillPoint = reader->ReadInteger("LevelReward", "SkillPoint", 0); LevelReward_Buffs = reader->ReadBoolean("LevelReward", "BuffReward", false); LevelReward_CustomBuffs = reader->ReadBoolean("LevelReward", "CustomBuffs", false); LevelReward_MsgType = reader->ReadString("LevelReward", "MessageType", ""); LevelReward_Msg = reader->ReadString("LevelReward", "Message", ""); delete reader; }
Code:void iLevelUp::LevelUpRewards(){ if (this->player->GetLevel() == this->config->LevelReward_Level){ this->player->InsertItem(this->config->LevelReward_Index, this->config->LevelReward_Amount); this->player->SetStatPoints(this->player->GetStatPoints() + this->config->LevelReward_StatePoints); this->player->SetSkillPoints(this->player->GetStatPoints() + this->config->LevelReward_SkillPoints); if (this->config->LevelReward_Buffs){ this->player->CancelallBuffs(); this->player->InsertallBuffs(this->config->LevelReward_Strength, this->config->LevelReward_Health, this->config->LevelReward_Agility, this->config->LevelReward_Intelligence, this->config->LevelReward_Critical, this->config->LevelReward_Defense, this->config->LevelReward_Refine, this->config->LevelReward_Speed); } else if (this->config->LevelReward_CustomBuffs){ this->player->InsertBuff(this->config->LevelReward_CBuffIndex, this->config->LevelReward_CBuffState, this->config->LevelReward_CBuffCD); } if (this->config->LevelReward_MsgType == "notice"){ this->player->Notice(this->config->LevelReward_Msg); } else if (this->config->LevelReward_MsgType == "chatmsg"){ this->player->ChatMsg("Server", this->config->LevelReward_Msg); } } }
CancelallBuffs and InsertallBuffs functions:
Code:void Player::CancelallBuffs() { Server::CChar::CancelBuff(this->playerpointer, 46); Server::CChar::CancelBuff(this->playerpointer, 47); Server::CChar::CancelBuff(this->playerpointer, 48); Server::CChar::CancelBuff(this->playerpointer, 49); Server::CChar::CancelBuff(this->playerpointer, 50); Server::CChar::CancelBuff(this->playerpointer, 37); Server::CChar::CancelBuff(this->playerpointer, 36); Server::CChar::CancelBuff(this->playerpointer, 12); } void Player::InsertallBuffs(int str, int hlth, int agi, int intel, int crit, int def, int ref, int speed) { int Strength = Server::CChar::CreateBuff(46, 1800, str, 0); (*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Strength); int Health = Server::CChar::CreateBuff(47, 1800, hlth, 0); (*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Health); int Agility = Server::CChar::CreateBuff(48, 1800, agi, 0); (*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Agility); int Intelligence = Server::CChar::CreateBuff(49, 1800, intel, 0); (*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Intelligence); int Critical = Server::CChar::CreateBuff(50, 1800, crit, 0); (*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Critical); int Defense = Server::CChar::CreateBuff(37, 1800, def, 0); (*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Defense); int Refine = Server::CChar::CreateBuff(36, 1800, ref, 0); (*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer + 180))(this->playerpointer, Refine); int Speed = Server::CChar::CreateBuff(12, 1800, speed, 0); (*(int(__thiscall **)(void*, unsigned long))(*(unsigned long *)this->playerpointer+ 180))(this->playerpointer, Speed); }
and finally LevelReward.txt (config file):
Code:[CustomBuffs] BuffIndex = 12 BuffStats = 90 BuffCD = 3600 [BuffReward] Strength = 20 Health = 20 Agility = 20 Intelligence = 20 Critical = 9 Defense = 67 Refine = 58 Speed = 80 [LevelReward] Level = 70 Index = 5007 Amount = 1 StatPoint = 10 SkillPoint = 5 BuffReward = true CustomBuffs = false MessageType = chatmsg Message = $congratulation
Please note that this is a fast-written example and i didn't test it so there could be a mistakes..
also it should work on both engine;.
Hope i helped you
ah okay, but it was the base from the files today, am right?