void LuaMagicScript::CastMagicOnItem(Character *caster, ScriptItem TargetItem, unsigned short counter, unsigned short int param, unsigned char ltastate) {
    // ToDo Script Calling
    try {
        World::get()->setCurrentScript(this);
        // World::get()->monitoringClientList->sendCommand( new SendMessageTS("CastMagicOnItem called for: " + Logger::toString(_MagicFlag ),3));
        Logger::writeMessage("scripts","CastMagicOnItem called for: " + Logger::toString(_MagicFlag));
        fuse_ptr<Character> fuse_caster(caster);
        call("CastMagicOnItem")(fuse_caster, TargetItem, counter, param, ltastate);
    } catch (luabind::error &e) {
        //CWorld::get()->monitoringClientList->sendCommand( new SendMessageTS("Error: CastMagicOnItem called for: " + Logger::toString(_MagicFlag ) + " " + e.what(),3));
        writeErrorMsg();
    }
}
void LuaMonsterScript::onCasted(Character *Monster, Character *caster) {
    character_ptr fuse_Monster(Monster);
    character_ptr fuse_caster(caster);
    callEntrypoint("onCasted", fuse_Monster, fuse_caster);
}
void LuaMagicScript::CastMagicOnItem(Character *caster, const ScriptItem &TargetItem, unsigned char ltastate) {
    character_ptr fuse_caster(caster);
    callEntrypoint("CastMagicOnItem", fuse_caster, TargetItem, ltastate);
}
void LuaMagicScript::CastMagicOnField(Character *caster, const position &pos, unsigned char ltastate) {
    character_ptr fuse_caster(caster);
    callEntrypoint("CastMagicOnField", fuse_caster, pos, ltastate);
}
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 LuaMagicScript::CastMagic(Character *caster, unsigned char ltastate) {
    character_ptr fuse_caster(caster);
    callEntrypoint("CastMagic", fuse_caster, ltastate);
}