int CEntityNatives::Create(SQVM* pVM) { CResource* pResource = g_pResourceManager->Get(pVM); assert( pResource ); const char* szName; sq_getstring(pVM,2,&szName); if(CEntity::GetType(szName) == ENTITY_TYPE_CUSTOM) { CEntity* pEntity = new CEntity(ENTITY_TYPE_CUSTOM, pResource, szName); if(pEntity->GetID() != INVALID_ENTITY_ID_LONG) { sq_pushentity(pVM,pEntity); } else { delete pEntity; sq_pushnull(pVM); } } else sq_pushnull(pVM); return 1; }
// createActor(modelhash, x, y, z, r) SQInteger CActorNatives::Create(SQVM * pVM) { SQInteger iModelId; CVector3 vecPosition; float fHeading; sq_getinteger(pVM, -5, &iModelId); sq_getvector3(pVM, -4, &vecPosition); sq_getfloat(pVM, -1, &fHeading); sq_pushentity(pVM, g_pActorManager->Create(iModelId, vecPosition, fHeading)); return 1; }
int CPlayerNatives::GetVehicle(SQVM * pVM) { CPlayer * pPlayer = sq_toplayer(pVM, 2); if(pPlayer) sq_pushentity(pVM, pPlayer->GetVehicle()); else sq_pushnull(pVM); return 1; }
// createCheckpoint(type, x, y, z, targetx, targety, targetz, radius) SQInteger CCheckpointNatives::Create(SQVM * pVM) { SQInteger iType; CVector3 vecPosition; CVector3 vecTargetPosition; float fRadius; sq_getinteger(pVM, -8, &iType); sq_getvector3(pVM, -7, &vecPosition); sq_getvector3(pVM, -4, &vecTargetPosition); sq_getfloat(pVM, -1, &fRadius); sq_pushentity(pVM, g_pCheckpointManager->Add(iType, vecPosition, vecTargetPosition, fRadius)); return 1; }
int CEntityNatives::GetParent(SQVM* pVM) { CEntity* pEntity = sq_toentity(pVM, 2); if(pEntity) { CEntity* pParent = pEntity->GetParent(); if(pParent) sq_pushentity(pVM,pParent); else sq_pushnull(pVM); } else sq_pushnull(pVM); return 1; }
int CVehicleNatives::Create(SQVM * pVM) { int iVehicleId; CVector3 vecPos, vecRot; sq_getinteger(pVM, -7, &iVehicleId); sq_getvector3(pVM, -6, &vecPos); sq_getvector3(pVM, -3, &vecRot); CVehicle * pVehicle = g_pServer->GetVehicleManager()->Add(iVehicleId); if(pVehicle) { pVehicle->SetPosition(vecPos); pVehicle->SetRotation(vecPos); pVehicle->SpawnForWorld(); sq_pushentity(pVM, pVehicle); } sq_pushnull(pVM); return 1; }
int CEntityNatives::GetRoot(SQVM* pVM) { sq_pushentity(pVM, g_pRootEntity); return 1; }