Black Box 3 Posted July 3, 2015 Error compiling plugins with the latest revision of Hercules. I tried to adapt but I did not succeed Plugin addrid: #include <stdio.h>#include <stdlib.h>#include <string.h> #ifndef COMMON_HPMI_H //Added#define COMMON_HPMI_H //Added#ifndef MAP_SCRIPT_H //Added#define MAP_SCRIPT_H //Added#ifndef MAP_PC_H //Added#define MAP_PC_H //Added#ifndef HPM_DATA_CHECK_H //Added#define HPM_DATA_CHECK_H //Added #include "../common/HPMi.h"#include "../map/script.h"#include "../map/pc.h"#include "../common/HPMDataCheck.h" /*1.0 Initial Plugin Release [Mhalicot]*/HPExport struct hplugin_info pinfo = { "addrid", // Plugin name SERVER_TYPE_MAP, // Which server types this plugin works with? "1.0", // Plugin version HPM_VERSION, // HPM Version (don't change, macro is automatically updated)}; /*========================================================================= * Attaches a set of RIDs to the current script. [digitalhamster] * addrid(<type>{,<flag>{,<parameters>}}); * <type>: * 0 : All players in the server. * 1 : All players in the map of the invoking player, or the invoking NPC if no player is attached. * 2 : Party members of a specified party ID. * [ Parameters: <party id> ] * 3 : Guild members of a specified guild ID. * [ Parameters: <guild id> ] * 4 : All players in a specified area of the map of the invoking player (or NPC). * [ Parameters: <x0>,<y0>,<x1>,<y1> ] * Account ID: The specified account ID. * <flag>: * 0 : Players are always attached. (default) * 1 : Players currently running another script will not be attached. *-------------------------------------------------------------------------*/ static int buildin_addrid_sub(struct block_list *bl,va_list ap){ int forceflag; struct map_session_data *sd = (TBL_PC *)bl; struct script_state* st; st=va_arg(ap,struct script_state*); forceflag=va_arg(ap,int); if(!forceflag||!sd->st) if(sd->status.account_id!=st->rid) script->run(st->script,st->pos,sd->status.account_id,st->oid); return 0;} BUILDIN(addrid){ struct s_mapiterator* iter; struct block_list *bl; TBL_PC *sd; if(st->rid<1){ st->state = END; bl=map->id2bl(st->oid); } else bl=map->id2bl(st->rid); //if run without rid it'd error,also oid if npc, else rid for map iter = mapit_getallusers(); switch(script_getnum(st,2)){ case 0: for( sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); sd = (TBL_PC*)mapit->next(iter)){ if(!script_getnum(st,3)||!sd->st) if(sd->status.account_id!=st->rid) //attached player already runs. script->run(st->script,st->pos,sd->status.account_id,st->oid); } break; case 1: for( sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); sd = (TBL_PC*)mapit->next(iter)){ if(!script_getnum(st,3)||!sd->st) if((sd->bl.m == bl->m)&&(sd->status.account_id!=st->rid)) script->run(st->script,st->pos,sd->status.account_id,st->oid); } break; case 2: if(script_getnum(st,4)==0){ script_pushint(st,0); return 0; } for( sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); sd = (TBL_PC*)mapit->next(iter)){ if(!script_getnum(st,3)||!sd->st) if((sd->status.account_id!=st->rid)&&(sd->status.party_id==script_getnum(st,4))) //attached player already runs. script->run(st->script,st->pos,sd->status.account_id,st->oid); } break; case 3: if(script_getnum(st,4)==0){ script_pushint(st,0); return 0; } for( sd = (TBL_PC*)mapit->first(iter); mapit->exists(iter); sd = (TBL_PC*)mapit->next(iter)){ if(!script_getnum(st,3)||!sd->st) if((sd->status.account_id!=st->rid)&&(sd->status.guild_id==script_getnum(st,4))) //attached player already runs. script->run(st->script,st->pos,sd->status.account_id,st->oid); } break; case 4: map->foreachinarea(buildin_addrid_sub, bl->m,script_getnum(st,4),script_getnum(st,5),script_getnum(st,6),script_getnum(st,7),BL_PC, st,script_getnum(st,3));//4-x0 , 5-y0 , 6-x1, 7-y1 break; default: if((map->id2sd(script_getnum(st,2)))==NULL){ // Player not found. script_pushint(st,0); return 0; } if(!script_getnum(st,3)||!map->id2sd(script_getnum(st,2))->st) { script->run(st->script,st->pos,script_getnum(st,2),st->oid); script_pushint(st,1); } return 0; } mapit->free(iter); script_pushint(st,1); return true;}HPExport void plugin_init (void){ /* map-server interfaces */ script = GET_SYMBOL("script"); map = GET_SYMBOL("map"); mapit = GET_SYMBOL("mapit"); addScriptCommand("addrid","i?????",addrid);} Image of error: Ps: It worked before Quote Share this post Link to post Share on other sites
0 Mhalicot 392 Posted July 5, 2015 Try to include first before you define.. #include <stdio.h>#include <stdlib.h>#include <string.h> #include "../common/HPMi.h"#include "../map/script.h"#include "../map/pc.h"#include "../common/HPMDataCheck.h" #ifndef COMMON_HPMI_H //Added#define COMMON_HPMI_H //Added#ifndef MAP_SCRIPT_H //Added#define MAP_SCRIPT_H //Added#ifndef MAP_PC_H //Added#define MAP_PC_H //Added#ifndef HPM_DATA_CHECK_H //Added#define HPM_DATA_CHECK_H //Added Quote Share this post Link to post Share on other sites
0 Black Box 3 Posted July 5, 2015 (edited) Try to include first before you define.. #include <stdio.h>#include <stdlib.h>#include <string.h> #include "../common/HPMi.h"#include "../map/script.h"#include "../map/pc.h"#include "../common/HPMDataCheck.h" #ifndef COMMON_HPMI_H //Added#define COMMON_HPMI_H //Added#ifndef MAP_SCRIPT_H //Added#define MAP_SCRIPT_H //Added#ifndef MAP_PC_H //Added#define MAP_PC_H //Added#ifndef HPM_DATA_CHECK_H //Added#define HPM_DATA_CHECK_H //Added @@Mhalicot i followed his advice and did not work. I did that way and now the error is smaller: #include <stdio.h>#include <stdlib.h>#include <string.h> #define COMMON_HPMI_H //Added#define MAP_SCRIPT_H //Added#define MAP_PC_H //Added#define HPM_DATA_CHECK_H //Added#ifndef HPM_DATA_CHECK_H //Added #include "../common/HPMi.h"#include "../map/script.h"#include "../map/pc.h"#include "../common/HPMDataCheck.h" Error: addrid.c(136): fatal error C1004: unexpected end-of-file found What would this error? Edited July 5, 2015 by Jolteo Quote Share this post Link to post Share on other sites
0 Dastgir 1246 Posted July 8, 2015 I guess you were the one who appeared on IRC... http://pastebin.com/t6aNP0iQ Use ./configure first, since there were updates to it, so that it can pick up correct location. 1 Black Box reacted to this Quote Share this post Link to post Share on other sites
Error compiling plugins with the latest revision of Hercules. I tried to adapt but I did not succeed
Plugin addrid:
Image of error:
Ps: It worked before
Share this post
Link to post
Share on other sites