I'm writing a metamod plugin for CS 1.6 using the latest (I think) sdks for metamod and hl and I keep getting these fatal errors FATAL ERROR (shutting down): New message started when msg '23' has not been sent yet FATAL ERROR (shutting down): New message started when msg '77' has not been sent yet FATAL ERROR (shutting down): New message started when msg '86' has not been sent yet FATAL ERROR (shutting down): New message started when msg '139' has not been sent yet ... among others.
My plugin looks for some of these messages but also sends some of these messages. I'm guessing that I'm getting these messages because my mod is trying to write messages while other messages are being written? Is there a method for queuing these messages in the sdk? Its driving me insane and I can't find any documentation explaining these errors anywhere on google. This is an example of how I'm writing messages: MESSAGE_BEGIN(MSG_ONE, GET_USER_MSG_ID(PLID,"TextMsg",NULL), NULL, entity); WRITE_BYTE(HUD_PRINTTALK); WRITE_STRING(tmp); MESSAGE_END(); These are my functions for catching: void MessageBegin(int msg_dest, int msg_type, const float *pOrigin, edict_t *ed) { mPlayer = ed ? cmn->seekPlayer(ed) : NULL; // this is probably a bot if( mPlayer == NULL && ed != NULL ) { cmn->addPlayer(ed, STRING(ed->v.netname), "1.2.3.4"); mPlayer = cmn->seekPlayer(ed); } mState = 0; // if( msg_type != 65 && msg_type != 99 ) // LOG_CONSOLE(PLID, "GOT MSG '%d' %s ", msg_type, GET_USER_MSG_NAME(PLID, msg_type, NULL) ); if( msg_type == GET_USER_MSG_ID(PLID, "Damage", NULL) ) function=Damage; else if( msg_type == GET_USER_MSG_ID(PLID, "CurWeapon", NULL) ) function=CurWeapon; else if( msg_type == GET_USER_MSG_ID(PLID, "DeathMsg", NULL) ) function = DeathMsg; else if( msg_type == GET_USER_MSG_ID(PLID, "TeamInfo", NULL) ) function = TeamInfo; // else if( msg_type == GET_USER_MSG_ID(PLID, "TextMsg", NULL) ) // function = TextMsg; else function=modMsgs[msg_type].function; endfunction=modMsgsEnd[msg_type].function; RETURN_META(MRES_IGNORED); } void MessageEnd(void) { if (endfunction) (*endfunction)(NULL); RETURN_META(MRES_IGNORED); } void WriteByte(int iValue) { if (function) (*function)((void *)&iValue); RETURN_META(MRES_IGNORED); } void WriteChar(int iValue) { if (function) (*function)((void *)&iValue); RETURN_META(MRES_IGNORED); } void WriteShort(int iValue) { if (function) (*function)((void *)&iValue); RETURN_META(MRES_IGNORED); } void WriteLong(int iValue) { if (function) (*function)((void *)&iValue); RETURN_META(MRES_IGNORED); } void WriteAngle(float flValue) { if (function) (*function)((void *)&flValue); RETURN_META(MRES_IGNORED); } void WriteCoord(float flValue) { if (function) (*function)((void *)&flValue); RETURN_META(MRES_IGNORED); } void WriteString(const char *sz) { if (function) (*function)((void *)sz); RETURN_META(MRES_IGNORED); } void WriteEntity(int iValue) { if (function) (*function)((void *)&iValue); RETURN_META(MRES_IGNORED); } Any help is greatly appreciated thank you for reading this, Derek Brooks _______________________________________________ To unsubscribe, edit your list preferences, or view the list archives, please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders