///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 (я добавил, но из-за этого авто перестало ездить по патчу) Помогите плиз , на другом форуме никто не понял сам
1) как я понял ты про скорость самого снаряда? если да, то это параметр Projectile velocity у объекта Projectile. 2) это надо в скрипте копаться Script - Turret AI. Будет время гляну сегодня завтра. 3) я надуюсь ты не к самому carAI это цеплял?)
На каком форуме ты спрашивал?
P.S. там кстати еще есть модификация этого проекта:
http://www.3drad.com/forum/index.php?topic=6244.0
..автопушка может целиться на 5 объектов и выбирать ближайший из них. Прежде чем задавать вопросы по 3D Rad читайте форум на gcup.ru и официальный форум 3drad.com и 80% ваших вопросов отпадут...вообщем RTFM :) Matrix - Escape to Zion - мой проект на 3D Rad.
Сообщение отредактировал rkamo - Пятница, 17 Февраля 2012, 21:24
1) как я понял ты про скорость самого снаряда? если да, то это параметр Projectile velocity у объекта Projectile.
Я имел ввиду скорость перезарядки (Стрельбы?), т.е. стреляло не раз в 2 сек, а чаще, хотя и за это спасибо, буду знать ВОт модифицированный мной проэкт:
1)скорость перезарядки зависит от Projectile lifetime, чем он меньше тем быстрее перезарядка. Хотя как вариант можно добавить еще один Projectile и чтобы они стреляли поочередно. Так скорость перезарядки можно регулировать в больших пределах.
2) чтобы пушка только целилась, но не стреляла достаточно убрать строки 97-99 в Script - Turret AI (можно просто двойным слэшем отключить их):
3) насчет добавление таких пушек на другие авто ничего не скажу... Прежде чем задавать вопросы по 3D Rad читайте форум на gcup.ru и официальный форум 3drad.com и 80% ваших вопросов отпадут...вообщем RTFM :) Matrix - Escape to Zion - мой проект на 3D Rad.
///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 и чтобы они стреляли поочередно. Так скорость перезарядки можно регулировать в больших пределах.
///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);
сделал стрельбу через пробел (строка 108), переключение режима через левый control (строка 116), правая кнопка теперь свободна, в конце скрипта пример как забивать действие на клавишу или мышь.
Соответственно DIK_X, где X - код клавиши, который ты можешь поменять как тебе надо. Коды всех клавиш тут:
if(iMouseButtonDown(0)) где 0 - ЛКМ, 1 - ПКМ. Прежде чем задавать вопросы по 3D Rad читайте форум на gcup.ru и официальный форум 3drad.com и 80% ваших вопросов отпадут...вообщем RTFM :) Matrix - Escape to Zion - мой проект на 3D Rad.
Сообщение отредактировал rkamo - Вторник, 21 Февраля 2012, 00:54
Мне бы вообще убрать эту фун-ю (отключение автонаводки), и я примерно знаю, как это сделать. Вопрос в другом -запускаю проэкт, жму CTRL, автонавока включается, но после 1-го выстрела отключается и сколько не жать CTRL, больше не включается
Странно, у меня все работает. Хорошо, сегодня завтра гляну. Прежде чем задавать вопросы по 3D Rad читайте форум на gcup.ru и официальный форум 3drad.com и 80% ваших вопросов отпадут...вообщем RTFM :) Matrix - Escape to Zion - мой проект на 3D Rad.
Прежде чем задавать вопросы по 3D Rad читайте форум на gcup.ru и официальный форум 3drad.com и 80% ваших вопросов отпадут...вообщем RTFM :) Matrix - Escape to Zion - мой проект на 3D Rad.
http://zalil.ru/32769683 сорри, я неправильно понял проблему:останавливает атаку пушка из-за того, что MAIN rigibody является единственной целью, и после попадания, главный ригидбоди улетает, цель теряется (дистанция 20 метров вроде стоит) и поэтому пушка перестаёт целится Вот только что делать, я незнаю
ок, посмотрел проект. У меня продолжает стрелять постоянно в цель. И поэтому немного не понимаю, что у тебя именно не так и что ты хочешь? Так напиши четко, что надо сделать Прежде чем задавать вопросы по 3D Rad читайте форум на gcup.ru и официальный форум 3drad.com и 80% ваших вопросов отпадут...вообщем RTFM :) Matrix - Escape to Zion - мой проект на 3D Rad.
ну теперь ясно:) посмотрим что можно сделать. И еще советую побольше порыться на оф. форуме. Там наверняка есть что-то именно для этой цели..
Добавлено (27.02.2012, 22:18) --------------------------------------------- Теперь стреляют друг в друга. Надо просто в 15ой строчке указать цель.
http://zalil.ru/32789400
Прежде чем задавать вопросы по 3D Rad читайте форум на gcup.ru и официальный форум 3drad.com и 80% ваших вопросов отпадут...вообщем RTFM :) Matrix - Escape to Zion - мой проект на 3D Rad.