void LuaMagicScript::CastMagicOnCharacter(Character *caster, Character *target, unsigned short counter, unsigned short int param, unsigned char ltastate) {
    // ToDo Script Calling
    try {
        World::get()->setCurrentScript(this);
        //CWorld::get()->monitoringClientList->sendCommand( new SendMessageTS("CastMagicOnCharacter called for: " + Logger::toString(_MagicFlag ),3));
        Logger::writeMessage("scripts","CastMagicOnCharacter called for: " + Logger::toString(_MagicFlag));
        fuse_ptr<Character> fuse_caster(caster);
        fuse_ptr<Character> fuse_target(target);
        call("CastMagicOnCharacter")(fuse_caster, fuse_target, counter, param, ltastate);
    } catch (luabind::error &e) {
        //CWorld::get()->monitoringClientList->sendCommand( new SendMessageTS("Error: CastMagicOnCharacter called for: " + Logger::toString(_MagicFlag ) + " " + e.what(),3));
        writeErrorMsg();
    }
}
void LuaMonsterScript::onAttack(Character *Monster, Character *target) {
    character_ptr fuse_Monster(Monster);
    character_ptr fuse_target(target);
    callEntrypoint("onAttack", fuse_Monster, fuse_target);
}
void LuaMonsterScript::lookAtMonster(Character *source, Character *target, unsigned char mode) {
    character_ptr fuse_source(source);
    character_ptr fuse_target(target);
    callEntrypoint("lookAtMonster", fuse_source, fuse_target, mode);
}
void LuaMagicScript::CastMagicOnCharacter(Character *caster, Character *target, unsigned char ltastate) {
    character_ptr fuse_caster(caster);
    character_ptr fuse_target(target);
    callEntrypoint("CastMagicOnCharacter", fuse_caster, fuse_target, ltastate);
}
void LuaLongTimeEffectScript::removeEffect(LongTimeEffect *effect, Character *target) {
    fuse_ptr<Character> fuse_target(target);
    callEntrypoint("removeEffect", effect, fuse_target);
}
bool LuaLongTimeEffectScript::callEffect(LongTimeEffect *effect, Character *target) {
    fuse_ptr<Character> fuse_target(target);
    return callEntrypoint<bool>("callEffect", effect, fuse_target);
}