http://zalil.ru/32769683 сорри, я неправильно понял проблему:останавливает атаку пушка из-за того, что MAIN rigibody является единственной целью, и после попадания, главный ригидбоди улетает, цель теряется (дистанция 20 метров вроде стоит) и поэтому пушка перестаёт целится Вот только что делать, я незнаю
Мне бы вообще убрать эту фун-ю (отключение автонаводки), и я примерно знаю, как это сделать. Вопрос в другом -запускаю проэкт, жму CTRL, автонавока включается, но после 1-го выстрела отключается и сколько не жать CTRL, больше не включается
///Note that the housing and gun are 0.03% of there original size.... ///so you can scale them to anything you wish in their control dialigs
///DO NOT CHANGE THESE VALUES int GUN = OBJ_0; int HOUSING = OBJ_22; int SHOOTER = OBJ_66; int timer = 0; int timerDelay = 20; float targetDistance; int [] TARGETS (); int targetCount;
///CHANGE THESE VALUES BASED ON YOUR GAME int BASE = OBJ_44; //Set this to the car or the rock to stand on int TARGET = OBJ_132; //Set this to the FIRST target to lock onto float targetRange = 100; //Set this to the range for autolock bool AUTOSHOOT = true; //set this value to true to enable the turret
///ADJUST THESE VALUES TO SET WHERE TO PLACE THE TURRET ON THE BASE (car) float baseUPDOWN = 1.2; //height on BASE to place the turret float baseFRONTBACK = 0; //Offset forward or backward on base to place turret float baseLEFTRIGHT = 0; //Offset left or right on base to place turret float gunHEIGHT = 0.35; //Height of housing to place turret gun float shooterOFFSET = 0; //forward offset to place projectile on gun
///--------------------------------------------------------------------------- void LocalToParent(int PARENT, int OBJ, Vector3 rotation, Vector3 translation) { Vector3 parentLocation; Quaternion parentOrientation; Quaternion newOrientation; Quaternion objectOrientation; Vector3 forward, location, newLocation; float x,y,z,ud,lr,fb; x = rotation.x; y = rotation.y; z = rotation.z; fb = translation.z; lr = translation.x; ud = translation.y; iObjectLocation(PARENT, parentLocation); iObjectOrientation(PARENT,parentOrientation); iObjectOrientationSet(OBJ,parentOrientation); iVectorRotate(forward,Vector3(lr,ud,fb),parentOrientation); newLocation = parentLocation + forward; iObjectLocationSet(OBJ,newLocation); iQuaternionFromEulerAngles(newOrientation,x,y,z,"xyz"); iQuaternionMultiply(newOrientation,newOrientation,parentOrientation); iObjectOrientationSet(OBJ,newOrientation); }
///--------------------------------------------------------------------------- Quaternion QuatGetLookAt(Vector3 a, Vector3 b){ Quaternion orientation; Vector3 up = Vector3(0,1,0); Vector3 direction = b - a; iQuaternionLookAt(orientation,direction,up); return orientation; }
///--------------------------------------------------------------------------- void RegisterTargets() { int i;; int L; int objectCount = iObjectHandle(-1); for(i=6;i<=objectCount;i++){ if(i==7) continue; //skip valueprint L = TARGETS.length(); L++; TARGETS.resize(L); TARGETS[L-1] = iObjectHandle(i); } targetCount = TARGETS.length(); }
//Get info for gun to look at the target iObjectLocation(TARGET,targetLocation); targetLocation.y += 0.2; //don't aim at the ground iObjectLocation(GUN,gunLocation); gunLookat = QuatGetLookAt(gunLocation,targetLocation); V = targetLocation - gunLocation; targetDistance = iVectorLength(V);
2) чтобы пушка только целилась, но не стреляла достаточно убрать строки 97-99 в Script - Turret AI (можно просто двойным слэшем отключить их):
Спасибо большое!, получилось отключить автострельбу, надо бы ещё поискать, как убать bind с правой клавиши мыши (на ней висит отключение или включение автонаведения) и, вместо ЛКМ поставить пробел
Quote (rkamo)
1)скорость перезарядки зависит от Projectile lifetime, чем он меньше тем быстрее перезарядка. Хотя как вариант можно добавить еще один Projectile и чтобы они стреляли поочередно. Так скорость перезарядки можно регулировать в больших пределах.
1) как я понял ты про скорость самого снаряда? если да, то это параметр Projectile velocity у объекта Projectile.
Я имел ввиду скорость перезарядки (Стрельбы?), т.е. стреляло не раз в 2 сек, а чаще, хотя и за это спасибо, буду знать ВОт модифицированный мной проэкт:
///Note that the housing and gun are 0.03% of there original size.... ///so you can scale them to anything you wish in their control dialigs
///DO NOT CHANGE THRSE VALUES int GUN = OBJ_0; int HOUSING = OBJ_22; int SHOOTER = OBJ_66; bool AUTOSHOOT = false; int timer = 0; int timerDelay = 20; float targetDistance;
///CHANGE THESE VALUES BASED ON YOUR GAME int BASE = OBJ_44; //Set this to the car or the rock to stand on int TARGET = OBJ_132; //Set this to the target to lock onto float targetRange = 60; //Set this to the range for autolock
///ADJUST THESE VALUES TO SET WHERE TO PLACE THE TURRET ON THE BASE (car) float baseUPDOWN = 1.2; //height on BASE to place the turret float baseFRONTBACK = 0; //Offset forward or backward on base to place turret float baseLEFTRIGHT = 0; //Offset left or right on base to place turret float gunHEIGHT = 0.35; //Height of housing to place turret gun float shooterOFFSET = 0; //forward offset to place projectile on gun
///--------------------------------------------------------------------------- void LocalToParent(int PARENT, int OBJ, Vector3 rotation, Vector3 translation) { Vector3 parentLocation; Quaternion parentOrientation; Quaternion newOrientation; Quaternion objectOrientation; Vector3 forward, location, newLocation; float x,y,z,ud,lr,fb; x = rotation.x; y = rotation.y; z = rotation.z; fb = translation.z; lr = translation.x; ud = translation.y; iObjectLocation(PARENT, parentLocation); iObjectOrientation(PARENT,parentOrientation); iObjectOrientationSet(OBJ,parentOrientation); iVectorRotate(forward,Vector3(lr,ud,fb),parentOrientation); newLocation = parentLocation + forward; iObjectLocationSet(OBJ,newLocation); iQuaternionFromEulerAngles(newOrientation,x,y,z,"xyz"); iQuaternionMultiply(newOrientation,newOrientation,parentOrientation); iObjectOrientationSet(OBJ,newOrientation); }
///--------------------------------------------------------------------------- Quaternion QuatGetLookAt(Vector3 a, Vector3 b){ Quaternion orientation; Vector3 up = Vector3(0,1,0); Vector3 direction = b - a; iQuaternionLookAt(orientation,direction,up); return orientation; }
//Get info for gun to look at the target iObjectLocation(TARGET,targetLocation); targetLocation.y += 0.5; //don't aim at the ground iObjectLocation(GUN,gunLocation); gunLookat = QuatGetLookAt(gunLocation,targetLocation); V = targetLocation - gunLocation; targetDistance = iVectorLength(V);
- автор Вот что надо бы: 1)Изменение скорости атаки 2)Сделать, что бы пушка по умолчанию сама целилась, но не стреляла 3)Добавление таких же пушек на carAI (я добавил, но из-за этого авто перестало ездить по патчу) Помогите плиз , на другом форуме никто не понял сам