--- deliantra/server/server/plugins.c 2006/06/11 15:02:16 1.11 +++ deliantra/server/server/plugins.c 2006/07/15 11:57:02 1.12 @@ -288,10 +288,11 @@ va_list args; object* op; object* op2; + object* op3; mapstruct *map; player* pl; char* buf; - int i, rt; + int i, rt, retval = 0, *tmpretval = NULL, fix; crossfire_plugin* cp; if (plugins_list == NULL) return -1; @@ -417,6 +418,31 @@ } break; + case EVENT_FIND_UNARMED_SKILL: + op = va_arg(args, object*); + for (cp = plugins_list; cp != NULL; cp = cp->next) { + if (cp->gevent[eventcode] != NULL) + if ((tmpretval = cp->gevent[eventcode](&rt, eventcode, op)) && *tmpretval > 0) { + retval = *tmpretval; + } + } + break; + + case EVENT_PLAYER_USE_SKILL: + case EVENT_MONSTER_USE_SKILL: + op = va_arg(args, object*); + op2 = va_arg(args, object*); + op3 = va_arg(args, object*); + fix = va_arg(args, int); + buf = va_arg(args, char*); + for (cp = plugins_list; cp != NULL; cp = cp->next) { + if (cp->gevent[eventcode] != NULL) + if ((tmpretval = cp->gevent[eventcode](&rt, eventcode, op, op2, op3, fix, buf)) && *tmpretval != 0) { + retval = *tmpretval; + } + } + break; + case EVENT_EXTCMD: /*KICK: op, parms*/ pl = va_arg (args, player *); @@ -429,7 +455,8 @@ break; } va_end(args); - return 0; + + return retval; } int plugins_init_plugin(const char* libfile)