Man hat einfach "mehr" an Platz überschrieben... das ging aber bei einer bestimmten Game ... 2019 oder so.
Hmh darüber habe ich nicht nachgedacht. Was dann (evtl) angepasst wären müsste wären die Conditional Jumps.Quote:
Sicher, dass er das nicht tut? Ich würde sagen er ändert von singed auf unsigned, also vorzeichenbehaftet auf vorzeichenunbehaftet.
Möglich, hab ich dann aber nicht gesehen, da ich mich eigentlich gar nicht mit Privatservern beschäftige..Quote:
Hatte xCPx nicht mal ein Video gemacht, wo er gezeigt hat dass auch mehr geht (beim Level)?
(deinstall boost first)Quote:
Instaling boost other version than 1.52 (default that came with FREEBSD 8.2) is a pain in the ass. I tried to downgrade the version with no results. Can you give me an advice?
PS: More examples (especially with packets) will be nice.
You can only add new quest function tables.Quote:
UP !
It would be nice if add some samples for adding quest functions (item table, pc table..) and even for new packets in the documentation.
Again: You could hook it - check if it's an item you want to modifyQuote:
It's nearly impossible the function UseItemEx has over 900 variables and 7500 lines of code ^^
Yip, but if you want to overwrite an existing function you have to rewrite it. Or to hook the original function which is called hope it's nowher other used and let it do nothing.Quote:
Again: You could hook it - check if it's an item you want to modify
If it is - execute yours otherwise just run the original function.
No need to rewrite it
I might even add an interface for that at some point (adding custom items)
iMer
[Only registered and activated users can see links. Click Here To Register...]Quote:
Yip, but if you want to overwrite an existing function you have to rewrite it. Or to hook the original function which is called hope it's nowher other used and let it do nothing.
void LibM2::interpretCommand(LPCHARACTER ch,const char* data, size_t len) {
LibM2* self=instance();
std::istringstream iss(std::string(data,len));
std::vector<std::string> arguments;
// split command string into arguments (whitespaces)
copy(std::istream_iterator<std::string>(iss),std::istream_iterator<std::string>(),std::back_inserter<std::vector<std::string> >(arguments));
if (self->m_map_command.find(arguments.front())!=self->m_map_command.end()) { // Check if custom command exists
ICommand* cmd = self->m_map_command[arguments.front()];
if (cmd->usableFor(ch)) { // check if command is useable
cmd->use(ch, arguments); // if useable, use it
return;
} else if(cmd->isReplaced()) { // if not usable, but replaced - send "command not found"-chatpacket
ch->ChatPacket(1,locale_find("그런 명령어는 없습니다"));
return;
}
}
// if no custom command, just let the original function handle the rest
self->detour_interpretCommand->GetOriginalFunction()(ch,data,len);
}
Ah, okay. Sorry, logic fail.Quote:
[Only registered and activated users can see links. Click Here To Register...]
PHP Code:void LibM2::interpretCommand(LPCHARACTER ch,const char* data, size_t len) {
LibM2* self=instance();
std::istringstream iss(std::string(data,len));
std::vector<std::string> arguments;
// split command string into arguments (whitespaces)
copy(std::istream_iterator<std::string>(iss),std::istream_iterator<std::string>(),std::back_inserter<std::vector<std::string> >(arguments));
if (self->m_map_command.find(arguments.front())!=self->m_map_command.end()) { // Check if custom command exists
ICommand* cmd = self->m_map_command[arguments.front()];
if (cmd->usableFor(ch)) { // check if command is useable
cmd->use(ch, arguments); // if useable, use it
return;
} else if(cmd->isReplaced()) { // if not usable, but replaced - send "command not found"-chatpacket
ch->ChatPacket(1,locale_find("그런 명령어는 없습니다"));
return;
}
}
// if no custom command, just let the original function handle the rest
self->detour_interpretCommand->GetOriginalFunction()(ch,data,len);
}
I am using Codeblocks with uniwin to do the compiling for meQuote:
Hi, How I compile this library? thanks