Вопрос-Ответ по UDK
| |
SoldierRGB | Дата: Суббота, 27 Ноября 2010, 20:24 | Сообщение # 61 |
частый гость
Сейчас нет на сайте
| Quote (LordZick) Как сделать такой интерфейс: http://s58.radikal.ru/i159/1011/59/e0d0e5d0ed67.jpg Если когда вы откроете окно то не пугайтесь, это мой рисунок. Нужно изучать туториалы по скриптам и scaleform
|
|
| |
DoubleWhiteDi | Дата: Воскресенье, 28 Ноября 2010, 20:30 | Сообщение # 62 |
Double_White_DIveloper
Сейчас нет на сайте
| странная фигня, не могу понять прикола: выдает очень странную ошибку... Вот скрипт: Code /** * Copyright 1998-2007 Epic Games, Inc. All Rights Reserved. */ class UTProj_AvrilRocketBase extends UTProjectile native;
/** Holds the vehicle this rocket is locked on to. The vehicle will give us our Homing Target */ var Actor LockedTarget;
/** Holds a pointer back to the firing Avril - Only valid server side */ var UTWeap_Avril MyWeapon; /** the AVRiL that is currently controlling the target lock (could be different if MyWeapon has no target) */ var UTWeap_Avril LockingWeapon;
/** Set to true if the lock for this rocket has been redirected */ var bool bRedirectedLock;
/** The last time a lock message was sent */ var float LastLockWarningTime;
/** How long before re-sending the next Lock On message update */ var float LockWarningInterval;
var float InitialPostRenderTime;
var Texture2D BeaconTexture;
/** Extended radius for raptor bolts destroying this avril */ var float RaptorBoltExtendedRadius;
// (cpptext) // (cpptext) // (cpptext) // (cpptext)
replication { if (bNetDirty && ROLE == ROLE_Authority) LockedTarget; }
simulated event Destroyed() { local PlayerController PC;
if (Role==ROLE_Authority) { // Notify the launcher I'm dead if ( MyWeapon != None ) MyWeapon.RocketDestroyed(self); }
// remove from local HUD's post-rendered list ForEach LocalPlayerControllers(class'PlayerController', PC) { if ( UTHUD(PC.MyHUD) != None ) { UTHUD(PC.MyHUD).RemovePostRenderedActor(self); } }
super.Destroyed(); }
simulated function PostBeginPlay() { local PlayerController PC;
super.PostBeginPlay();
// add to local HUD's post-rendered list ForEach LocalPlayerControllers(class'PlayerController', PC) { if ( UTHUD(PC.MyHUD) != None ) { UTHUD(PC.MyHUD).AddPostRenderedActor(self); } } }
function ForceLock(Actor ForcedLock) { LockedTarget = ForcedLock; // don't get any more target updates from weapon. MyWeapon.RocketDestroyed(self);
/** * Clean up */ simulated function Shutdown() { local PlayerController PC;
if (Role==ROLE_Authority) { // Notify the launcher I'm dead if ( MyWeapon != None ) { MyWeapon.RocketDestroyed(self); MyWeapon = None; } }
// remove from local HUD's post-rendered list ForEach LocalPlayerControllers(class'PlayerController', PC) { if ( UTHUD(PC.MyHUD) != None ) { UTHUD(PC.MyHUD).RemovePostRenderedActor(self); } } Super.ShutDown();
SetTimer(0.0,false); }
/** sets the target we're locked on to. May fail (return false) if NewLockOwner isn't allowed to control me */ function bool SetTarget(Actor NewTarget, UTWeap_Avril NewLockOwner) { // follow the lock if it's the shooter's target or the shooter doesn't have a target and a friendly player is giving one // short delay before accepting other players' targets to avoid rocket twisting through shooter's body, etc if ( NewLockOwner == MyWeapon || ( (LockingWeapon == None || LockingWeapon == NewLockOwner) && WorldInfo.TimeSeconds - CreationTime > 2.0 && WorldInfo.GRI.OnSameTeam(NewLockOwner.Instigator, InstigatorController) ) ) { LockedTarget = NewTarget; LockingWeapon = (LockedTarget != None) ? NewLockOwner : None; return true; } else { return false; } }
event TakeDamage(int DamageAmount, Controller EventInstigator, vector HitLocation, vector Momentum, class<DamageType> DamageType, optional TraceHitInfo HitInfo, optional Actor DamageCauser) { if (Damage > 0 && (InstigatorController == None || !WorldInfo.GRI.OnSameTeam(EventInstigator, InstigatorController))) { Explode(HitLocation, vect(0,0,0)); } }
simulated native function NativePostRenderFor(PlayerController PC, Canvas Canvas, vector CameraPosition, vector CameraDir);
/** * PostRenderFor() Hook to allow pawns to render HUD overlays for themselves. * Assumes that appropriate font has already been set * * @param PC The Player Controller who is rendering this pawn * @param Canvas The canvas to draw on */ simulated event PostRenderFor(PlayerController PC, Canvas Canvas, vector CameraPosition, vector CameraDir) { local vector ScreenLoc; local float CrossScaler, CrossScaleTime; local LinearColor TeamColor; local color c; local float ResScale, XStart, XLen, YStart, YLen, OldY; local float width,height;
screenLoc = Canvas.Project(Location);
class'UTHud'.static.GetTeamColor( 1 - PC.GetTeamNum(), TeamColor, c); CrossScaleTime = FMax(0.05,(1 - 3*(WorldInfo.TimeSeconds - InitialPostRenderTime))); TeamColor.A = 0.8 - CrossScaleTime;
ResScale = Canvas.ClipX / 1024;
if ( InitialPostRenderTime == 0.0 ) { InitialPostRenderTime = WorldInfo.TimeSeconds; } CrossScaler = CrossScaleTime * Canvas.ClipX; width = ResScale * CrossScaler; height = ResScale * CrossScaler; XStart = 662; YStart = 260; XLen = 56; YLen = 56;
// if clipped out, draw offscreen indicator if (screenLoc.X < 0 || screenLoc.X >= Canvas.ClipX || screenLoc.Y < 0 || screenLoc.Y >= Canvas.ClipY) { OldY = screenLoc.Y; screenLoc.X = FClamp(ScreenLoc.X, 0, Canvas.ClipX-1); screenLoc.Y = FClamp(ScreenLoc.Y, 0, Canvas.ClipY-1); if ( screenLoc.Y != OldY) { // draw up/down arrow YLen = 28; if ( screenLoc.Y == 0 ) { YStart += YLen; } } else { // draw horizontal arrow XLen = 28; if ( screenLoc.X == 0 ) { XStart += XLen; } } } }
defaultproperties { BeaconTexture=Texture2D'UI_HUD.HUD.UI_HUD_BaseA' RaptorBoltExtendedRadius=80.000000 Begin Object Class=CylinderComponent Name=CollisionCylinder ObjName=CollisionCylinder Archetype=CylinderComponent'UTGame.Default__UTProjectile:CollisionCylinder' ObjectArchetype=CylinderComponent'UTGame.Default__UTProjectile:CollisionCylinder' End Object CylinderComponent=CollisionCylinder Components(0)=CollisionCylinder CollisionComponent=CollisionCylinder Name="Default__UTProj_AvrilRocketBase" ObjectArchetype=UTProjectile'UTGame.Default__UTProjectile' } При компиляции выдает сообщение: D:\UDK\UDK-2010-0\Development\Src\UTGame\Classes\UTProj_AvrilRocketBase.uc(213) : Error, Unexpected end of file at end of Class D:\UDK\UDK-2010-0\Development\Src\UTGame\Classes\UTProj_AvrilRocketBase.uc(19) : Warning, Variable declaration: 'LastLockWarningTime' conflicts with previously defined field in 'UDKProjectile' D:\UDK\UDK-2010-0\Development\Src\UTGame\Classes\UTProj_AvrilRocketBase.uc(22) : Warning, Variable declaration: 'LockWarningInterval' conflicts with previously defined field in 'UDKProjectile'
У нас с Deadly-man'ом одинаковый айпи. Но это не дабл акк, я его брат, сидим с одного компа.
|
|
| |
Fuzzy | Дата: Понедельник, 29 Ноября 2010, 11:39 | Сообщение # 63 |
был не раз
Сейчас нет на сайте
| После defaultproperties ";" нигде не пропущена?
|
|
| |
seaman | Дата: Понедельник, 29 Ноября 2010, 12:43 | Сообщение # 64 |
старожил
Сейчас нет на сайте
| А зачем после defaultproperties вообще нужна где-нибудь ";"? Их там быть не должно! А у него конца одной функции нет - "}" пропущена...
Сообщение отредактировал seaman - Понедельник, 29 Ноября 2010, 12:45 |
|
| |
AngelArt | Дата: Понедельник, 29 Ноября 2010, 13:10 | Сообщение # 65 |
Создатель Миров
Сейчас нет на сайте
| Вышла новая версия УДК. Все просто куда то убрали или вообще кажись выкинули. Чтобы раньше создать бота, можно было просто зайти а Action Factory и далее делать бота, но теперь функции Bot там нет. Кто нибудь знает какой нибудь способ добавления бота?
Сообщение отредактировал AngelArt - Понедельник, 29 Ноября 2010, 13:11 |
|
| |
Fuzzy | Дата: Понедельник, 29 Ноября 2010, 13:24 | Сообщение # 66 |
был не раз
Сейчас нет на сайте
| Функция "function ForceLock(Actor ForcedLock)" не закрыта. ";" не надо ставить в defaultproperties из-за особенностей UDK?
|
|
| |
seaman | Дата: Понедельник, 29 Ноября 2010, 13:49 | Сообщение # 67 |
старожил
Сейчас нет на сайте
| Quote ";" не надо ставить в defaultproperties из-за особенностей UDK? Да. Quote Вышла новая версия УДК. Все просто куда то убрали или вообще кажись выкинули. До сих пор сижу на августовской и доволен. Возможно перейду на более новую, если вернут PhysX, или сделают полноценный Apex.
Сообщение отредактировал seaman - Понедельник, 29 Ноября 2010, 13:52 |
|
| |
LordZick | Дата: Понедельник, 29 Ноября 2010, 14:11 | Сообщение # 68 |
участник
Сейчас нет на сайте
| Представте себе что я лет через 100 сделаю нормальную РПГ. Что мне нужно будет чтобы создать из РПГ ММОРПГ? Вы не думайте что я хочу сделать это.
|
|
| |
seaman | Дата: Понедельник, 29 Ноября 2010, 15:53 | Сообщение # 69 |
старожил
Сейчас нет на сайте
| Если речь об УДК, то нужны будут исходные коды движка. В УДК уже встроена игра посети, и все бы хорошо, но есть ограничение на число игроков и на число зрителей. Предлагались разные способы это обойти, но ни одной реализации не видел, да и способы эти извращенные. А вот если имеешь исходники - все решается просто... Ну и работа по созданию мира, по балансировке сил разных фракций, по балансировке денежных взаимоотношений в игре...
Сообщение отредактировал seaman - Понедельник, 29 Ноября 2010, 15:54 |
|
| |
LordZick | Дата: Понедельник, 29 Ноября 2010, 17:58 | Сообщение # 70 |
участник
Сейчас нет на сайте
| Это что, мне придётся отдавать 500 000 рублей чтобы купить эти исходники и Unreal Engine 3?
|
|
| |
HacKeR | Дата: Понедельник, 29 Ноября 2010, 18:14 | Сообщение # 71 |
Злой Ангел
Сейчас нет на сайте
| я не в курсе или они дают исходники за 100$.... Скорее всего что нет...
Жизнь это игра - хреново задумана но графика обалденная..... Программирую на С++ Мой личный Мой новый блог (создан 22.08.2011)
|
|
| |
DoubleWhiteDi | Дата: Понедельник, 29 Ноября 2010, 18:18 | Сообщение # 72 |
Double_White_DIveloper
Сейчас нет на сайте
| можно сделать кучу локаций по 64 человека... Вот и ММО..
У нас с Deadly-man'ом одинаковый айпи. Но это не дабл акк, я его брат, сидим с одного компа.
|
|
| |
HacKeR | Дата: Понедельник, 29 Ноября 2010, 18:20 | Сообщение # 73 |
Злой Ангел
Сейчас нет на сайте
| Quote (DoubleWhiteDi) можно сделать кучу локаций по 64 человека... Вот и ММО.. ЮДК считает сколько людей подключено к серверу + боты тоже считает. Так что много локаций не проконает....
Жизнь это игра - хреново задумана но графика обалденная..... Программирую на С++ Мой личный Мой новый блог (создан 22.08.2011)
|
|
| |
AngelArt | Дата: Понедельник, 29 Ноября 2010, 18:39 | Сообщение # 74 |
Создатель Миров
Сейчас нет на сайте
| Народ, ведь УДК, это движок Турнамента. Кто знает как сплагиатить турнамент, хотя бы со стандартными моделями.(т.е. создать игру по онлайну, одни в одном месте появляться, другие в другом.
Жизнь игра, но задумайся какую тебе выбирать, виртуальную или реальную...
|
|
| |
HacKeR | Дата: Понедельник, 29 Ноября 2010, 18:40 | Сообщение # 75 |
Злой Ангел
Сейчас нет на сайте
| Quote (AngelArt) Кто знает как сплагиатить турнамент, хотя бы со стандартными моделями.(т.е. создать игру по онлайну, одни в одном месте появляться, другие в другом. делается всё через кизмет с помощь Actor Factory и Note ( сколько появлений в разных углах мапы столько и нодов)...
Жизнь это игра - хреново задумана но графика обалденная..... Программирую на С++ Мой личный Мой новый блог (создан 22.08.2011)
|
|
| |
AngelArt | Дата: Понедельник, 29 Ноября 2010, 18:43 | Сообщение # 76 |
Создатель Миров
Сейчас нет на сайте
| Ну а поподробнее что в Актор Фактори? Онлайн игра(создание серва) уже встроено при компиляции?
Жизнь игра, но задумайся какую тебе выбирать, виртуальную или реальную...
|
|
| |
PROTOTYPE | Дата: Понедельник, 29 Ноября 2010, 18:57 | Сообщение # 77 |
почетный гость
Сейчас нет на сайте
| HacKeR, не вводи людей в заблуждение, кизмет - кривой и нубский метод для создания онлайна, наиболее правильный - UScript. А чтобы создать из готового контента, обрезанную копию ut3, достаточно, запаковаnь игру с какой-нибудь мапой (DM-Deck, например).
Сообщение отредактировал PROTOTYPE - Понедельник, 29 Ноября 2010, 18:58 |
|
| |
DoubleWhiteDi | Дата: Вторник, 30 Ноября 2010, 07:38 | Сообщение # 78 |
Double_White_DIveloper
Сейчас нет на сайте
| PROTOTYPE, вопрос Нужна такая вещь - при запуске ракета наводится на ближайшую ВОЗДУШНУЮ цель. Даже если она в другом направлении. Никто не подсобит?
У нас с Deadly-man'ом одинаковый айпи. Но это не дабл акк, я его брат, сидим с одного компа.
|
|
| |
PROTOTYPE | Дата: Вторник, 30 Ноября 2010, 16:08 | Сообщение # 79 |
почетный гость
Сейчас нет на сайте
| Тебе надо посмотреть исходники Avril из UT3, точно помню там реализовано самонаведение.
|
|
| |
DoubleWhiteDi | Дата: Вторник, 30 Ноября 2010, 17:54 | Сообщение # 80 |
Double_White_DIveloper
Сейчас нет на сайте
| PROTOTYPE, знаю, знаю...
У нас с Deadly-man'ом одинаковый айпи. Но это не дабл акк, я его брат, сидим с одного компа.
|
|
| |
|