예제 #1
0
double CScript::SetMoveSpeed(const char* cmd, char* retStrL)
{
	double dbRet = 1;
	int nSpeed = GetIntParam(cmd, 0);
	if(nSpeed != ERROR_CODE && nSpeed != INVILID_VALUE)
	{
		CMoveShape* pMoveShape = dynamic_cast<CMoveShape*>(p_SrcShape);
		if(pMoveShape)
		{
			pMoveShape->SetChangeSpeed(nSpeed);
			pMoveShape->SendChangedSpeedToClients();
		}
	}
	else // 参数是整数
	{
		AddErrorLogText("ERR: SetMoveSpeed(): 1st Arg is int!");
	}
	return dbRet;
}
예제 #2
0
double CScript::ChangeBaseSpeed(const char* cmd, char* retStr)
{
	double dbRet = 1;
	int nRideState = GetIntParam(cmd, 0);
	DWORD dwSrc = GetIntParam(cmd,1);

	if(nRideState != ERROR_CODE && nRideState != INVILID_VALUE && dwSrc != ERROR_CODE && dwSrc != INVILID_VALUE)
	{
		CMoveShape* pMoveShape = (CMoveShape*)(dwSrc);
		if(pMoveShape && pMoveShape->GetType()==TYPE_PLAYER)
		{ 
			if (!pMoveShape->GetIsRide())
			{
				//骑状态
				if(!pMoveShape->GetIsRun())
				{
					pMoveShape->SetSpeed(CGlobeSetup::GetSetup()->fRidePlayerWalkSpeed);
				}
				else
				{
					pMoveShape->SetSpeed(CGlobeSetup::GetSetup()->fRidePlayerRunSpeed);
				}
			} 
			else
			{
				if(!pMoveShape->GetIsRun())
				{
					pMoveShape->SetSpeed(CGlobeSetup::GetSetup()->fPlayerWalkSpeed);
				}
				else
				{
					pMoveShape->SetSpeed(CGlobeSetup::GetSetup()->fPlayerRunSpeed);
				}
			}


			pMoveShape->SendChangedSpeedToClients();
		}
	}
	return dbRet;
}