void CHelperManager_Encoder::SendMessage_ReplySummons(int reply, char* toName, char* fromName)
{
	

	int idx = GTH_FindPCByName(toName);
	if ( 0 <= idx) 
	{
		playerCharacter_t* pTaker=gcpTools->GetPlayerRecordPointer(idx);
		if(NULL == pTaker) return;
		
		MSG_BeginWriting(&netMessage);
		MSG_Clear( &netMessage );
		{
			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort ( &netMessage, HELPER_SYSTEM );
			MSG_WriteShort(&netMessage, SC_SPAWN_Res_toTaker);
			MSG_WriteByte(&netMessage, reply);	
			MSG_WriteString(&netMessage, fromName);	
			NET_SendMessage(&pTaker->sock, &netMessage);
		}
		MSG_EndWriting(&netMessage);
	}
	else	
	{
		MSG_BeginWriting(&netMessage);
		MSG_Clear( &netMessage );
		{
			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort ( &netMessage, HELPER_SYSTEM );
			MSG_WriteShort(&netMessage, SS_SPAWN_Res_fromServer);
			MSG_WriteByte(&netMessage, reply);	
			MSG_WriteString(&netMessage, toName);	
			MSG_WriteString(&netMessage, fromName);	
			
			if ( TRUE == g_config.isManager )
			{
				
				for (int serveridx=1; serveridx < MAX_MEMBER_SERVER; serveridx++)	
				{
					if ( !g_memberServer[serveridx].active ) continue;
					
					NET_SendUnreliableMessage(&g_memberServer[serveridx].sock, &netMessage);
				}
			}
			else
			{
				
				MSG_WriteByte(&netMessage, g_config.gameServerNo);
				
				NET_SendUnreliableMessage(&localSocket, &netMessage);
			}
		}
		MSG_EndWriting(&netMessage);
	}
}
Exemple #2
0
void CHelperManager::MemberListInfo_Send_toAllPlayer(entityPCList_t* pl, int fstate )
{
	
	struct tagHelper *helperlist = GetHelperPtr(pl->idx);
	if(NULL == helperlist) return;

	entityPCList_t target = { 0, };
	for (int idx = 0; idx < helperlist->List.count; idx++ )
	{	
		
		if ( g_entityListMng.FindPCList ( helperlist->List.Member[idx].name, &target ) < 0) continue;
		if( TRUE ==  helperlist->List.Member[idx].bIsMatchHELPERandTACKER) continue;
		
		if ( target.serverIdx == 0 )
		{
			MSG_BeginWriting ( &netMessage );
			MSG_Clear( &netMessage );

			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort ( &netMessage, HELPER_SYSTEM );
			MSG_WriteShort ( &netMessage, SC_LISTINFO_toAllPlayer );
			MSG_WriteByte ( &netMessage, pl->level );
			MSG_WriteByte ( &netMessage, pl->job );
			MSG_WriteByte ( &netMessage, fstate == HelpersLogout ? -1 : pl->worldIdx );				
			MSG_WriteString ( &netMessage, pl->name );				    
			MSG_WriteShort ( &netMessage, helperlist->List.mode);

			playerCharacter_t* pPlayer=gcpTools->GetPlayerRecordPointer(target.idxOnServer);
			if(NULL == pPlayer) {
				MSG_EndWriting(&netMessage);
				return;
			}
		
			NET_SendMessage ( &pPlayer->sock, &netMessage );
			MSG_EndWriting(&netMessage);
			ShowLogInfo("SC_LISTINFO_toAllPlayer: PlayName= %s, level= %d, job= %d, fstate=%d,mode=%d,",
				pl->name,pl->level, pl->job,fstate,helperlist->List.mode );
			
		}else{	

			MSG_BeginWriting ( &netMessage );
			MSG_Clear( &netMessage );
		
			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort ( &netMessage, HELPER_SYSTEM );
			MSG_WriteShort ( &netMessage, SS_REPLY_UPDATE_MemberList_toServer);				
			MSG_WriteByte ( &netMessage, target.serverIdx );
			MSG_WriteShort ( &netMessage, target.idxOnServer );
			
			MSG_WriteByte ( &netMessage, pl->level );
			MSG_WriteByte ( &netMessage, pl->job );
			MSG_WriteByte ( &netMessage, fstate == HelpersLogout ? -1 : pl->worldIdx );				
			MSG_WriteString ( &netMessage, pl->name );					
			MSG_WriteShort ( &netMessage, helperlist->List.mode);
			
			NET_SendUnreliableMessage ( &g_memberServer[target.serverIdx].sock, &netMessage );
			MSG_EndWriting(&netMessage);
		}		
	}
}
Exemple #3
0
/*
=====================
CL_Disconnect

Sends a disconnect message to the server
This is also called on Host_Error, so it shouldn't cause any errors
=====================
*/
void
CL_Disconnect(void)
{
// stop sounds (especially looping!)
    S_StopAllSounds(true);

    /* Clear up view, remove palette shift */
    scr_centertime_off = 0;
    cl.cshifts[0].percent = 0;
    VID_SetPalette(host_basepal);

// if running a local server, shut it down
    if (cls.demoplayback)
	CL_StopPlayback();
    else if (cls.state >= ca_connected) {
	if (cls.demorecording)
	    CL_Stop_f();

	Con_DPrintf("Sending clc_disconnect\n");
	SZ_Clear(&cls.message);
	MSG_WriteByte(&cls.message, clc_disconnect);
	NET_SendUnreliableMessage(cls.netcon, &cls.message);
	SZ_Clear(&cls.message);
	NET_Close(cls.netcon);

	cls.state = ca_disconnected;
	if (sv.active)
	    Host_ShutdownServer(false);
    }

    cls.demoplayback = false;
    cls.timedemo = false;
    cls.signon = 0;
    cl.intermission = 0; /* FIXME - for SCR_UpdateScreen */
}
Exemple #4
0
/**
 * Sends a disconnect message to the server
 * This is also called on Host_Error, so it shouldn't cause any errors
 */
void CL_Disconnect(void) {
	// stop sounds (especially looping!)
	S_StopAllSounds(true);

	// bring the console down and fade the colors back to normal
	//	SCR_BringDownConsole ();

	// if running a local server, shut it down
	if (cls.demoplayback)
		CL_StopPlayback();
	else if (cls.state == ca_connected) {
		if (cls.demorecording)
			CL_Stop_f();

		Con_DPrintf("Sending clc_disconnect\n");
		SZ_Clear(&cls.message);
		MSG_WriteByte(&cls.message, clc_disconnect);
		NET_SendUnreliableMessage(cls.netcon, &cls.message);
		SZ_Clear(&cls.message);
		NET_Close(cls.netcon);

		cls.state = ca_disconnected;
		if (sv.active)
			Host_ShutdownServer(false);
	}

	cls.demoplayback = cls.timedemo = false;
	cls.signon = 0;
}
Exemple #5
0
void CDanBattleFunc::SendGSM_BattleReady(i3socket_t* sock)
{
	
	int		Status			= g_pDanBattleSys->GetStatus();
	DWORD	StatusStartTime = g_pDanBattleSys->GetStatusStartTime();
	
	
	

	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
		
	MSG_WriteByte(&netMessage, GSC_EXTEND);
	MSG_WriteByte(&netMessage, GSC_DAN_BATTLE);
	MSG_WriteByte(&netMessage, DANB_BATTLE_READY);		

	
	

	NET_SendUnreliableMessage(sock, &netMessage);

	MSG_EndWriting(&netMessage);
	
	
}
Exemple #6
0
void CDanBattleFunc::SendGSM_SuggestResult(BYTE isallow)
{
	
	LPREQUEST_RECORD pSuggest=g_pDanBattleManager->GetSuggester();		
	LPREQUEST_RECORD pRequest=static_cast<LPREQUEST_RECORD>(g_pDanBattleManager->GetRequestPointer(NULL));

	if ( pRequest->ServerID >= MAX_PCS || pRequest->ServerID < 0)
		return;

	if (pSuggest==NULL)
	{
		SendErrorCode(&g_pc[pRequest->ServerID].sock,GSC_DAN_BATTLE,1,0);		
		return;
	}	
	
	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
		
	MSG_WriteByte(&netMessage, GSC_EXTEND);
	MSG_WriteByte(&netMessage, GSC_DAN_BATTLE);
	MSG_WriteByte(&netMessage, DANB_SUGGEST_RESULT);
	MSG_WriteByte(&netMessage, isallow);

	NET_SendUnreliableMessage(&g_pc[pRequest->ServerID].sock, &netMessage);

	MSG_EndWriting(&netMessage);

}
Exemple #7
0
void CHelperManager::MemberList_Request_List_OtherServer ( playerCharacter_t* pHelper )
{
	MSG_BeginWriting ( &netMessage );
	MSG_Clear( &netMessage );
	{

		MSG_WriteByte(&netMessage, EXTEND_SECOND);
		MSG_WriteShort(&netMessage, HELPER_SYSTEM);
		MSG_WriteShort( &netMessage, SS_REQUESTMemberList_toServer);
		MSG_WriteString ( &netMessage, pHelper->name );
		MSG_WriteByte ( &netMessage, pHelper->tHelper.List.count );
		
		MSG_WriteShort(&netMessage, pHelper->tHelper.List.mode);
		for (int idx = 0; idx < pHelper->tHelper.List.count; idx++ )
		{
			MSG_WriteString ( &netMessage, pHelper->tHelper.List.Member[idx].id );
			MSG_WriteString ( &netMessage, pHelper->tHelper.List.Member[idx].name );
			
			MSG_WriteByte(&netMessage, pHelper->tHelper.List.Member[idx].bIsMatchHELPERandTACKER);
		}
		
		NET_SendUnreliableMessage ( &localSocket, &netMessage );
	}
	MSG_EndWriting(&netMessage);
}
Exemple #8
0
void CHelperManager::ProcessMessage_ServerReplySummons(void)
{
	int idx=-1;
	char toName[NAMESTRING+1], fromName[NAMESTRING+1];
	
	int reply = MSG_ReadByte();
	
	strncpy(toName, MSG_ReadString(),NAMESTRING);
	toName[NAMESTRING]=NULL;
	strncpy(fromName, MSG_ReadString(),NAMESTRING);
	fromName[NAMESTRING]=NULL;

	idx = GTH_FindPCByName(toName);
	if (0 <= idx) 
	{
		playerCharacter_t * pTaker=gcpTools->GetPlayerRecordPointer(idx);
		if(NULL==pTaker) return;
		MSG_BeginWriting(&netMessage);
		MSG_Clear( &netMessage );
		{
			MSG_WriteByte(&netMessage, GSC_REPLYSUMMONS);
			MSG_WriteByte(&netMessage, reply);	
			MSG_WriteString(&netMessage, fromName);	
			NET_SendMessage(&pTaker->sock, &netMessage);
		}
		MSG_EndWriting(&netMessage);
	}
	else	
	{
		if (TRUE == g_config.isManager )
		{	
			int fromMemberIdx = MSG_ReadByte(); 
			
			MSG_BeginWriting(&netMessage);
			MSG_Clear( &netMessage );
			{
				MSG_WriteByte(&netMessage, GSC_REPLYSUMMONS);
				MSG_WriteByte(&netMessage, reply);	
				MSG_WriteString(&netMessage, toName);	
				MSG_WriteString(&netMessage, fromName);	
				
				for (int severidx=1; severidx < MAX_MEMBER_SERVER; severidx++)	
				{
					if ( !g_memberServer[severidx].active ) continue;
					if ( severidx == fromMemberIdx ) continue;	
					
					NET_SendUnreliableMessage(&g_memberServer[severidx].sock, &netMessage);
				}
			}
			MSG_EndWriting(&netMessage);
		}
	}
}
Exemple #9
0
inline void CGMCtrl::TransmitePacket_NProtect_gsms_request_change(const BOOL in_bEnable) const
{
	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
	{
		MSG_WriteByte(&netMessage, EXTEND_SECOND);		
		MSG_WriteShort(&netMessage, GMsystem);
		MSG_WriteShort(&netMessage, tagExtendSecondPacket_GMsystem::GMsystem_NProtect);
		MSG_WriteShort(&netMessage, tagExtendSecondPacket_GMsystem::tagNProtect::gsms_request_change);
		MSG_WriteLong(&netMessage,in_bEnable);
		NET_SendUnreliableMessage(&localSocket, &netMessage);		
	}
	MSG_EndWriting(&netMessage);

}
Exemple #10
0
void CHelperManager::MemberList_Request_Update_OtherServer ( playerCharacter_t* pHelper, int fstate )
{
	MSG_BeginWriting ( &netMessage );
	MSG_Clear( &netMessage );
	{

		MSG_WriteByte(&netMessage, EXTEND_SECOND);
		MSG_WriteShort ( &netMessage, HELPER_SYSTEM );
		MSG_WriteShort ( &netMessage, SS_REQUEST_UPDATE_MemberList_toServer);
		MSG_WriteString ( &netMessage, pHelper->name );
		MSG_WriteByte ( &netMessage, fstate );
		NET_SendUnreliableMessage ( &localSocket, &netMessage );
	}
	MSG_EndWriting(&netMessage);
}
Exemple #11
0
void CDanBattleFunc::SendGSM_SetStatus()
{
	BYTE	bStatus	= MSG_ReadByte();

	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
		
	MSG_WriteByte(&netMessage, CC_EXTEND);
	MSG_WriteByte(&netMessage, GSM_DAN_BATTLE);
	MSG_WriteByte(&netMessage, DANB_SETSTATUS);
	MSG_WriteByte(&netMessage, bStatus);

	NET_SendUnreliableMessage(&localSocket, &netMessage);

	MSG_EndWriting(&netMessage);	
}
Exemple #12
0
void CDanBattleFunc::SendGSM_RequestBattle()
{
	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
		
	MSG_WriteByte(&netMessage, CC_EXTEND);
	MSG_WriteByte(&netMessage, GSM_DAN_BATTLE);
	MSG_WriteByte(&netMessage, DANB_REQUEST_BATTLE);
		
	MSG_WriteString(&netMessage, g_curPC->name);
	MSG_WriteString(&netMessage, g_curPC->guildName);
		
	NET_SendUnreliableMessage(&localSocket, &netMessage);

	MSG_EndWriting(&netMessage);	
}
Exemple #13
0
void CAhnLab::GTH_SendMessageAhnLabMessage(playerCharacter_t *pPlayer)
{
	
	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
	{
		MSG_WriteByte(&netMessage,  EXTEND_SECOND);		
		MSG_WriteShort(&netMessage, AHNLAB);

		for (int nMsgIdx = 0; nMsgIdx < ANTICPSVRREQLEN; nMsgIdx++)
			MSG_WriteByte(&netMessage, pPlayer->m_AhnLabMsg.byReqMsg[nMsgIdx]);

		NET_SendUnreliableMessage(&pPlayer->sock, &netMessage);
	}
	MSG_EndWriting(&netMessage);
}
Exemple #14
0
void CDanBattleManager::SendGSM_Refresh_PersonData(playerCharacter_t* pc, int type, int etc1, int etc2)
{
			
	
	
	
	

	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
	
	MSG_WriteByte(&netMessage, GSC_EXTEND);
	MSG_WriteByte(&netMessage, GSC_DAN_BATTLE);
	MSG_WriteByte(&netMessage, DANB_BATTLE_REFRESH_PERSONDATA);	
	MSG_WriteLong(&netMessage, type);

	switch(type)
	{
		
	case 0:
		MSG_WriteLong(&netMessage, pc->curChargeSE);		
		break;		

		
		
	case 1:
		MSG_WriteLong(&netMessage, pc->rankPoint);
		MSG_WriteLong(&netMessage, g_guild[pc->guildIdx].famePoint);

		
	case 2:
		MSG_WriteLong(&netMessage, etc1);		
		break;		

		
	case 3:
		MSG_WriteLong(&netMessage, etc1);
		break;

	
	}	
	NET_SendUnreliableMessage(&pc->sock, &netMessage);
	
	MSG_EndWriting(&netMessage);

}
Exemple #15
0
void CDanBattleFunc::SendErrorCode(i3socket_t* sock,BYTE msgType,BYTE eCode,BYTE eType)
{
	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );

	MSG_WriteByte(&netMessage, GSC_EXTEND);
	MSG_WriteByte(&netMessage, msgType);
	MSG_WriteByte(&netMessage, DANB_ERROR);
	MSG_WriteByte(&netMessage, eCode);
	MSG_WriteByte(&netMessage, eType);
		
	switch ( msgType )
	{
	case GMS_DAN_BATTLE : NET_SendUnreliableMessage(sock, &netMessage);	break;
	case GSC_DAN_BATTLE : NET_SendMessage( sock, &netMessage); break;
	}

	MSG_EndWriting(&netMessage);
}
Exemple #16
0
inline void CGMCtrl::TransmitePacket_NProtect_msgs_notify_change(const BOOL in_bEnable) const
{
	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
	{
		MSG_WriteByte(&netMessage, EXTEND_SECOND);		
		MSG_WriteShort(&netMessage, GMsystem);
		MSG_WriteShort(&netMessage, tagExtendSecondPacket_GMsystem::GMsystem_NProtect);
		MSG_WriteShort(&netMessage, tagExtendSecondPacket_GMsystem::tagNProtect::msgs_notify_change);
		MSG_WriteLong(&netMessage,in_bEnable);

		for(int i=1; i < MAX_MEMBER_SERVER; i++){ 
			if ( !g_memberServer[i].active )	continue;
			NET_SendUnreliableMessage(&g_memberServer[i].sock, &netMessage);
		}
	}
	MSG_EndWriting(&netMessage);

}
Exemple #17
0
void GTH_SendMessage_LootValue( playerCharacter_t *pc, __int64 exp, __int64 genExp, int lootNSE, int genCapability, int sharingType )
{
	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
	{
		
		MSG_WriteByte(&netMessage, GSC_LOOTVALUE);
		MSG_Write64Int(&netMessage, exp);
		MSG_Write64Int(&netMessage, genExp);
		MSG_WriteLong(&netMessage, lootNSE);
		MSG_WriteLong(&netMessage, genCapability);
		
		MSG_WriteByte(&netMessage, sharingType);
		
		
		
		
		NET_SendUnreliableMessage(&pc->sock, &netMessage);
	}
	MSG_EndWriting(&netMessage);
}
void CHelperManager_Encoder::SendMessage_RequestSummons(playerCharacter_t* pHelper,char* toName)
{
	int idx=GTH_FindPCByName(toName);

	if (0 <= idx) 
	{
		playerCharacter_t* pTaker=gcpTools->GetPlayerRecordPointer(idx);
		if(NULL == pTaker) return;

		
		
		if( (playerCharacter_t::tagGonryunBattlePractice::MEMBERSHIP_LEADER
			== pTaker->GonryunBattlePractice.MemberShip) ||
			(playerCharacter_t::tagGonryunBattlePractice::MEMBERSHIP_OPENENT
			== pTaker->GonryunBattlePractice.MemberShip)) return;
		
		if((pTaker->worldIdx == tagGolryunBattle::Golryun_Battle_Map_Index) ||
			(pTaker->worldIdx == DAN_BATTLEMAP_NO)) return;


		if(BUSY_STATE_NONE != pTaker->busyState) return;

		PC_SetSummonsInfo(pTaker, pHelper->name, pHelper->worldIdx, pHelper->position);

		MSG_BeginWriting(&netMessage);
		MSG_Clear( &netMessage );
		{
			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort ( &netMessage, HELPER_SYSTEM );
			MSG_WriteShort(&netMessage, SC_SPAWN_Req_toTaker);
			MSG_WriteString(&netMessage, pHelper->name);	
			NET_SendMessage(&pTaker->sock, &netMessage);
		}
		MSG_EndWriting(&netMessage);
	}
	else	
	{
		MSG_BeginWriting(&netMessage);
		MSG_Clear( &netMessage );
		{
			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort ( &netMessage, HELPER_SYSTEM );
			MSG_WriteShort(&netMessage, SS_SPAWN_Req_fromServer);
			MSG_WriteString(&netMessage, toName); 
			MSG_WriteString(&netMessage, pHelper->name);	
			MSG_WriteByte(&netMessage, pHelper->worldIdx);	
			MSG_WritePosition(&netMessage, pHelper->position); 
				
			if ( TRUE == g_config.isManager )
			{
				
				for (int serveridx=1; serveridx < MAX_MEMBER_SERVER; serveridx++)	
				{
					if ( !g_memberServer[serveridx].active ) continue;
					
					NET_SendUnreliableMessage(&g_memberServer[serveridx].sock, &netMessage);
				}
			}
			else
			{
				
				MSG_WriteByte(&netMessage, g_config.gameServerNo);
				
				NET_SendUnreliableMessage(&localSocket, &netMessage);
			}
		}
		MSG_EndWriting(&netMessage);
	}
}
void CHelperManager_Encoder::SendMessage_Remove_Notify_toRemovePlayer(
	playerCharacter_t* pPlayer,char* premoveName)
{



	int idx=GTH_FindPCByName(premoveName);
	 
	if (0 <= idx )
	{
		playerCharacter_t* pRemoveUser=gcpTools->GetPlayerRecordPointer(idx);
		if(NULL == pRemoveUser)return;
	
		MSG_BeginWriting(&netMessage);
		MSG_Clear( &netMessage );
		{
			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort( &netMessage, HELPER_SYSTEM );
			MSG_WriteShort( &netMessage, SC_REMOVE_NOTIFY_toPlayer );
			MSG_WriteString(&netMessage, pPlayer->name);	
			NET_SendUnreliableMessage(&pRemoveUser->sock, &netMessage);
		}
		MSG_EndWriting(&netMessage);
		ShowLogInfo("RemoveUser :pRemoveUser->name:%s, pRemoveUser->name:%s",
			pRemoveUser->name,premoveName);
	}
	
	else
	{
		MSG_BeginWriting(&netMessage);
		MSG_Clear( &netMessage );
		{
			MSG_WriteByte(&netMessage,	 EXTEND_SECOND);
			MSG_WriteShort( &netMessage, HELPER_SYSTEM);
			MSG_WriteShort( &netMessage, SS_REMOVE_NOTIFY_toPlayer );
			MSG_WriteString(&netMessage, premoveName);
			MSG_WriteString(&netMessage, pPlayer->name);	
			if ( TRUE == g_config.isManager )
			{
				
				for (int serveridx=1; serveridx < MAX_MEMBER_SERVER; serveridx++)	
				{
					if ( !g_memberServer[serveridx].active ) continue;
					
					NET_SendUnreliableMessage(&g_memberServer[serveridx].sock, &netMessage);
				}
			}
			else
			{
				
				MSG_WriteByte(&netMessage, g_config.gameServerNo);
				
				NET_SendUnreliableMessage(&localSocket, &netMessage);
			}
		}
		MSG_EndWriting(&netMessage);

		

	}

}
Exemple #20
0
/*
==============
CL_SendMove
==============
*/
void CL_SendMove (usercmd_t *cmd)
{
	int		i;
	int		bits;
	sizebuf_t	buf;
	byte	data[128];
	
	buf.maxsize = 128;
	buf.cursize = 0;
	buf.data = data;
	
	cl.cmd = *cmd;

//
// send the movement message
//
    MSG_WriteByte (&buf, clc_move);

	MSG_WriteFloat (&buf, cl.mtime[0]);	// so server can get ping times

	for (i=0 ; i<3 ; i++)
		MSG_WriteAngle (&buf, cl.viewangles[i]);
	
    MSG_WriteShort (&buf, cmd->forwardmove);
    MSG_WriteShort (&buf, cmd->sidemove);
    MSG_WriteShort (&buf, cmd->upmove);

//
// send button bits
//
	bits = 0;
	
	if ( in_attack.state & 3 )
		bits |= 1;
	in_attack.state &= ~2;
	
	if (in_jump.state & 3)
		bits |= 2;
	in_jump.state &= ~2;
	
    MSG_WriteByte (&buf, bits);

    MSG_WriteByte (&buf, in_impulse);
	in_impulse = 0;

//
// deliver the message
//
	if (cls.demoplayback)
		return;

//
// allways dump the first two message, because it may contain leftover inputs
// from the last level
//
	if (++cl.movemessages <= 2)
		return;
	
	if (NET_SendUnreliableMessage (cls.netcon, &buf) == -1)
	{
		Con_Printf ("CL_SendMove: lost server connection\n");
		CL_Disconnect ();
	}
}
Exemple #21
0
void CHelperManager::ProcessMessage_SC_REMOVE_NOTIFY_toPlayer()
{
	int  idx=-1;
	char removeName[NAMESTRING+1], playerName[NAMESTRING+1];

	sstrncpy( removeName, MSG_ReadString(), NAMESTRING);
	removeName[NAMESTRING]=NULL;
	sstrncpy( playerName, MSG_ReadString(), NAMESTRING);
	playerName[NAMESTRING]=NULL;

	idx = GTH_FindPCByName(removeName);
	if (0 <= idx ) 
	{
		playerCharacter_t* pRemover=gcpTools->GetPlayerRecordPointer(idx);
		if(NULL == pRemover) return;
		
		MSG_BeginWriting(&netMessage);
		MSG_Clear( &netMessage );
		{
			
			MSG_WriteByte(&netMessage,	 EXTEND_SECOND);
			MSG_WriteShort( &netMessage, HELPER_SYSTEM );
			MSG_WriteShort( &netMessage, SC_REMOVE_NOTIFY_toPlayer );
			MSG_WriteString(&netMessage, playerName);								
		
			NET_SendUnreliableMessage(&pRemover->sock, &netMessage);
		}
		MSG_EndWriting(&netMessage);

		
		GTH_SendMessage_AckMessage(playerName);
	}
	
	else	
	{
		if (TRUE == g_config.isManager )
		{			
			int fromMemberIdx = MSG_ReadByte();											

			MSG_BeginWriting(&netMessage);
			MSG_Clear( &netMessage );
			{
				MSG_WriteByte(&netMessage, EXTEND_SECOND);
				MSG_WriteShort( &netMessage, HELPER_SYSTEM );
				MSG_WriteShort( &netMessage, SS_REMOVE_NOTIFY_toPlayer );
				MSG_WriteString(&netMessage, removeName);							
				MSG_WriteString(&netMessage, playerName);							
				
				
				for (int gameseridx=1; gameseridx < MAX_MEMBER_SERVER; gameseridx++)	
				{
					if ( !g_memberServer[gameseridx].active ) continue;
					if ( gameseridx == fromMemberIdx ) continue;					
					
					NET_SendUnreliableMessage(&g_memberServer[gameseridx].sock, &netMessage);
				}
			}
			MSG_EndWriting(&netMessage);
		}
	}
}
Exemple #22
0
void CHelperManager::ProcessMessage_ServerRequestSummons()
{
	int idx =-1;
	char toName[NAMESTRING+1], summoner[NAMESTRING+1];
	vec3_t position;

	strncpy(toName, MSG_ReadString(),NAMESTRING);
	toName[NAMESTRING]=NULL;
	strncpy(summoner, MSG_ReadString(),NAMESTRING);
	summoner[NAMESTRING]=NULL;

	int worldIdx = MSG_ReadByte();
	MSG_ReadPosition( position );
	

	idx = GTH_FindPCByName(toName);
	if (0 <= idx) 
	{
		playerCharacter_t* pTaker=gcpTools->GetPlayerRecordPointer(idx);
		if(NULL == pTaker) return;
		
		
	
		if( (playerCharacter_t::tagGonryunBattlePractice::MEMBERSHIP_LEADER
			== pTaker->GonryunBattlePractice.MemberShip) ||
			(playerCharacter_t::tagGonryunBattlePractice::MEMBERSHIP_OPENENT
			== pTaker->GonryunBattlePractice.MemberShip)) return;
		
		if( (pTaker->worldIdx == tagGolryunBattle::Golryun_Battle_Map_Index) ||
			(pTaker->worldIdx == DAN_BATTLEMAP_NO)) return;
		
		if(BUSY_STATE_NONE != pTaker->busyState) return;
		
		PC_SetSummonsInfo(pTaker, summoner,worldIdx, position);

		MSG_BeginWriting(&netMessage);
		MSG_Clear( &netMessage );
		{
			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort ( &netMessage, HELPER_SYSTEM);
			MSG_WriteShort(&netMessage, SC_SPAWN_Req_toTaker);
			MSG_WriteString(&netMessage, summoner);	
			NET_SendMessage(&pTaker->sock, &netMessage);
		}
		MSG_EndWriting(&netMessage);
	}
	else	
	{
		if (TRUE == g_config.isManager )
		{
			int fromMemberIdx = MSG_ReadByte(); 

			MSG_BeginWriting(&netMessage);
			MSG_Clear( &netMessage );
			{
				MSG_WriteByte(&netMessage, EXTEND_SECOND);
				MSG_WriteShort ( &netMessage, HELPER_SYSTEM );
				MSG_WriteShort(&netMessage, SS_SPAWN_Req_fromServer);
				MSG_WriteString(&netMessage, toName); 
				MSG_WriteString(&netMessage, summoner);	
				MSG_WriteByte(&netMessage, worldIdx);	
				MSG_WritePosition(&netMessage, position); 
							
				
				for (int serveridx =1; serveridx < MAX_MEMBER_SERVER; serveridx++)	
				{
					if ( !g_memberServer[serveridx].active ) continue;
					if ( serveridx == fromMemberIdx ) continue;	
					
					NET_SendUnreliableMessage(&g_memberServer[serveridx].sock, &netMessage);
				}
			}
			MSG_EndWriting(&netMessage);
		}
	}
}
Exemple #23
0
void CDanBattleFunc::RecvCC_SuggestBattle()
{
	if ( !IsGuildMasters( g_curPC ) )		
		return;


	

	REQUEST_RECORD	reqRecord;
	REQUEST_RECORD	sugRecord;

	reqRecord.No		= 0;
	reqRecord.ServerNo	= g_config.gameServerNo;
	reqRecord.ServerID	= g_curPC->idx;
	reqRecord.DanIdx	= g_curPC->guildIdx;
	memcpy(reqRecord.DanName,g_curPC->guildName,GUILDNAMESTRING);
	memcpy(reqRecord.MasterName,g_curPC->name,NAMESTRING);
		

	if ( !g_pDanBattleManager->isSuggester(&reqRecord))			
	{
		SendErrorCode(&g_curPC->sock,GSC_DAN_BATTLE,1,0);		
		return;
	}

	
	
	if ( g_curPC->curChargeSE < g_logic.DanBattlePrice)
	{
		
		SendGSM_SuggestResult(2);
		return;
	}

	sugRecord.DanIdx=MSG_ReadLong();

	sstrncpy( sugRecord.DanName, MSG_ReadString(), GUILDNAMESTRING - 1 );	

	if ( !g_pDanBattleManager->SetSuggester(&sugRecord))
	{
		SendErrorCode(&g_curPC->sock,GSC_DAN_BATTLE,1,0);				
		return;
	}	

	LPREQUEST_RECORD pSuggest=g_pDanBattleManager->GetSuggester();

	MSG_BeginWriting(&netMessage);
	MSG_Clear( &netMessage );
		
	MSG_WriteByte(&netMessage, GSC_EXTEND);
	MSG_WriteByte(&netMessage, GSC_DAN_BATTLE);
	MSG_WriteByte(&netMessage, DANB_SUGGEST_BATTLE);

	
	LPREQUEST_RECORD pSugg=static_cast<LPREQUEST_RECORD>(g_pDanBattleManager->GetRequestPointer(&sugRecord));


	if ( pSuggest->ServerID >= MAX_PCS || pSuggest->ServerID <0)
		return;

	NET_SendUnreliableMessage(&g_pc[pSuggest->ServerID].sock, &netMessage);

	MSG_EndWriting(&netMessage);

}
Exemple #24
0
void CHelperManager::MemberList_Send_toPlayer( entityPCList_t* pl )
{
	
	
	struct tagHelper *helperlist=GetHelperPtr(pl->idx);
	if(NULL == helperlist)return;
	
	MSG_BeginWriting ( &netMessage );
	MSG_Clear( &netMessage );
	{
		if ( pl->serverIdx == 0 )
		{
			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort(&netMessage, HELPER_SYSTEM);
			MSG_WriteShort(&netMessage, SC_SEND_MEMBERLIST_toAllPlayer);
		}
		
		else		
		{		
			MSG_WriteByte(&netMessage, EXTEND_SECOND);
			MSG_WriteShort(&netMessage, HELPER_SYSTEM);
			MSG_WriteShort( &netMessage, SS_REPLYMemberList_toServer);
			MSG_WriteByte ( &netMessage, pl->serverIdx );
			MSG_WriteString(&netMessage, pl->name);
			MSG_WriteShort ( &netMessage, pl->idxOnServer );
		}
		
		MSG_WriteByte(&netMessage, helperlist->List.count );
		
		MSG_WriteShort(&netMessage, helperlist->List.mode);
		 
		
		for ( int listcount = 0; listcount < helperlist->List.count; listcount++ )
		{
			entityPCList_t target = { 0, };
			int idx = g_entityListMng.FindPCList ( helperlist->List.Member[listcount].name, &target);
		
			
			MSG_WriteByte ( &netMessage, target.level );
			MSG_WriteByte ( &netMessage, target.job );
			MSG_WriteByte ( &netMessage, idx < 0 ? -1 : target.worldIdx );
			MSG_WriteString ( &netMessage, helperlist->List.Member[listcount].name );
			helperlist->List.Member[listcount].bIsMatchHELPERandTACKER = FALSE;	
			
			struct tagHelper* Memperlist = GetHelperPtr(idx);
			if(NULL != Memperlist)
			{
				
				int memberidx=0;
				for(memberidx=0; memberidx<Memperlist->List.count; memberidx++)
				{
					
					if(NULL == strcmp(pl->name,Memperlist->List.Member[memberidx].name))
					{
						helperlist->List.Member[listcount].bIsMatchHELPERandTACKER = FALSE;	
						break;
					}						
				}
				
				if(memberidx>=Memperlist->List.count)
				{
					helperlist->List.Member[listcount].bIsMatchHELPERandTACKER = TRUE;	
				}
				
			}
			
			MSG_WriteByte( &netMessage,helperlist->List.Member[listcount].bIsMatchHELPERandTACKER);
		}
		
		if ( pl->serverIdx == 0 )
		{
			
			playerCharacter_t* pPlayer = gcpTools->GetPlayerRecordPointer(pl->idxOnServer);
			if(NULL == pPlayer)
			{
				MSG_EndWriting(&netMessage);
				return;
			}
			if (TRUE == pPlayer->ready )
			{
			
				NET_SendMessage ( &pPlayer->sock, &netMessage );
			}
		}
		
		else
		{
			NET_SendUnreliableMessage ( &g_memberServer[pl->serverIdx].sock, &netMessage );
		}
	
	}
	MSG_EndWriting(&netMessage);
}