Перейти к публикации
Планета Deus Ex

---

Invisible Hand
  • Публикации

    1039
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем ---

  1. этот опрос сосет провода.

    1)дядьки, отписывавшиеся здесь, забыли про "солипсизм", а тема эта больше солиптическая, чем агностическая.

    2)мне лень писать свое мнение по этому поводу, много букав. Да хотя и зачем? Как будто мне легче станет, что я на этом форуме буду излагаться и быть УГ. А мое мнение вполне УГшное.

    3)Ждем Зе Станции... Там, думаю, "труфилософы" смогут найти для себя почву для новых размышлений и ответы на многие вопросы.

    4)Здесь пахнет ЧСВ. Its over 90 000!!1

  2. зы: только убедительная просьба, товарищи, после просмотра держите себя в руках и не рвите волосы на голове... уж таков этот мир.

    Уже привык. Хотя, без этого было бы в окружающем меня говносраче совсем не инетресно...

  3. 1968 гет!

    http://ru.wikipedia.org/wiki/1968

    >>>24 декабря Американский пилотируемый космический корабль Аполлон впервые в истории вышел на лунную орбиту с астронавтами на борту.

     

    >>>5 ноября — президентские выборы в США. Победу одержал кандидат от Республиканской партии Ричард Никсон.

    Имхо, винрарный гет.

  4. >>>Вычислительная мощь персонального компьютера гораздо выше, чем у какой-либо игровой приставки

     

    ололололо. Эти времена давно прошли. Теперь консоли рулят, ибо CELL!!1 Хотя Целла только и хватает на графику, но разве играм другое нужно? Сюжет как-то будет влиять на производительность? %D

    80% производимых сейчас игр делаются под консоли(ибо, консоли круче, хотя ,опять же, с другой стороны разработка игр под них куда дороже, чем под ПС), 99% всех -- говно. За дх3 страшно думать, да и нафик мультиплеер? Вам Сноублянда мало?

    99% всех игр на сегодня -- говно., т.к.

    1)сегодня главный фактор это цепь бабло --> красивая картинка --> еще больше бабла. Жителям этой планеты много думать не нужно(тем более в 21м то веке).С развитием технологий игры стали тупым развлеченим для малолеток, "массовых потребителей", которые любят "разноцветную эйфорию"(ц, сами знаете кто).

    Это уже не то, что было раньше. Тогда(к примеру, 96-97 гг) были действительно гениальные люди. Построить игру для них было, все равно что написать интересную и захватывающую книгу. Да нет, тут надо брать раньше -- Ультима(!!1) думаю будет достойным примером.

    2)человечество исчерпало себя(это касается не только игр). Все хорошие идеи уже были использованы. Та же Ион Шторм распалась неслучайно - это должно было случиться... Рано или поздно. Время гениальных людей закончилось.

    3)Эти факторы взаимосвязаны. Одно случилось -- это стало воможностью и поводом другого, и наоборот. Получается развитие технологий тоже может иметь губительное воздействие на мозг, сюжет больше не интересен: "Хачу чтоб было так красива, чтоб тени там такие, бамп мапинк на интерьере, пляжик и бааааб дафига!!1 И пушек, и тачек!".

    Много буков. Кому надо -- тот прочтет.

  5. Что именно вывел компилятор? Есть ли у тебя такой класс (CardScanner) ?

    есть, но я его пихнул в один пак со всеми другими скриптами. Он , видимо, не по порядку компилил и прочитал название еще не созданного класа и повис.

     

    >>> if (!Owner.IsA('PlayerPawn'))

    >>> Owner.AISendEvent('Distress', EAITYPE_Audio, volume, radius);

    т.е. это даже если класс "Плейер Поун" не имеет никакого отношения к ДеусИкс.ю, все равно указывать нужно просто название класса?

     

    А компилятор выводил "ошибочное название класса" или что-то в этом духе

  6. Ок, благодарю.

    Но я придумал кое-что свое. Картридер. Окаалось, что просто так объект нельзя поюзать нанокейрингом, просто прописав его в скрипте объекта, для этого приходится ковырять ДХПлейер, создавая свой класс плейера. Я решил заменить нанокей и нанокейринг на свои нанокард и нанокардринг соотв-но(тобешь св-ва этих объектов остаются неизменными, я просто меняю меши и сообщения(с названиями. при отсутствии объекта етц)). Также я прописал что мой будущий нанокард может применяться только к моим кардсканнерам(локпикивание убрал, хотел сделать вместо него мультитул-хак, но было лень писать литр кода, тем более, что я просто тестил):

    class NanoCardRing extends SkilledTool;
    
    var localized string NoCards;
    var localized string CardsAvailableLabel;
    
    // ----------------------------------------------------------------------
    // Networking Replication
    // ----------------------------------------------------------------------
    
    // ----------------------------------------------------------------------
    // HasCard()
    //
    // Checks to see if we have the keyname passed in
    // ----------------------------------------------------------------------
    
    simulated function bool HasCard(Name CardToLookFor)
    {
    local NanoKeyInfo aCard;
    local Bool bHasCard;
    
    bHasCard = False;
    
    if (GetPlayer() != None)
    {
    	aCard = GetPlayer().CardList;
    
    	// Loop through all the keys and see if one exists
    	while(aCard != None)
    	{
    		if (aCard.CardID == CardToLookFor)
    		{
    			bHasCard = True;
    			break;
    		}
    
    		aCard = aCard.NextCard;
    	}
    }
    return bHasCard;
    }
    
    // ----------------------------------------------------------------------
    // GiveCard()
    //
    // Adds a Card to our array
    // ----------------------------------------------------------------------
    
    simulated function GiveCard(Name newCardID, String newDescription)
    {
    local NanoCardInfo aCard;
    
    if (GetPlayer() != None)
    {
    	// First check to see if the player already has this Card
    	if (HasCard(newCardID))
    		return;
    
    	// Spawn a Card
    	aCard = GetPlayer().CreateNanoCardInfo();
    
    	// Set the appropriate fields and 
    	// add to the beginning of our list
    	aCard.CardID	   = newCardID;
    	aCard.Description = newDescription;
    	aCard.NextCard	 = GetPlayer().CardList;
    	GetPlayer().CardList   = aCard;
    
    }
    }
    
    // ----------------------------------------------------------------------
    // function GiveClientCard()
    // ----------------------------------------------------------------------
    
    simulated function GiveClientCard(Name newCardID, String newDescription)
    {
      GiveCard(newCardID, newDescription);
    }
    
    // ----------------------------------------------------------------------
    // RemoveCard()
    // ----------------------------------------------------------------------
    
    simulated function RemoveCard(Name CardToRemove)
    {
    local NanoCardInfo aCard;
    local NanoCardInfo lastCard;
    
    if (GetPlayer() != None)
    {
    	aCard = GetPlayer().CardList;
    
    	// Loop through all the Cards and see if one exists
    	while(aCard != None)
    	{
    		if (aCard.CardID == CardToRemove)
    		{
    			if (lastCard != None)
    				lastCard.NextCard = aCard.NextCard;
    
    			if (GetPlayer().CardList == aCard)
    				GetPlayer().CardList = aCard.NextCard;
    
    			CriticalDelete(aCard);
    			aCard = None;
    
    			break;
    		}
    
    		lastCard = aCard;
    		aCard	= aCard.NextCard;
    	}
    }
    }
    
    // ----------------------------------------------------------------------
    // function RemoveClientCard()
    // ----------------------------------------------------------------------
    
    simulated function RemoveClientCard(Name CardToRemove)
    {
      RemoveCard(CardToRemove);
    }
    
    // ----------------------------------------------------------------------
    // RemoveAllCards()
    // ----------------------------------------------------------------------
    
    simulated function RemoveAllCards()
    {
    local NanoCardInfo aCard;
    local NanoCardInfo deadCard;
    
    if (GetPlayer() != None)
    {
    	aCard = GetPlayer().CardList;
    
    	// Loop through all the Cards and see if one exists
    	while(aCard != None)
    	{
    		deadCard = aCard;
    
    		CriticalDelete(aCard);
    		aCard = None;
    
    		aCard = deadCard.NextCard;
    	}
    
    	GetPlayer().CardList = None;
    }
    }
    
    // ----------------------------------------------------------------------
    // ClientRemoveAllCards()
    // ----------------------------------------------------------------------
    
    simulated function ClientRemoveAllCards()
    { 
      RemoveAllCards();
    }
    
    // ----------------------------------------------------------------------
    // UpdateInfo()
    // ----------------------------------------------------------------------
    
    simulated function bool UpdateInfo(Object winObject)
    {
    local PersonaInfoWindow winInfo;
    local NanoCardInfo CardInfo;
    local int CardCount;
    
    winInfo = PersonaInfoWindow(winObject);
    if (winInfo == None)
    	return False;
    
    winInfo.SetTitle(itemName);
    winInfo.SetText(CardsAvailableLabel);
    winInfo.AddLine();
    
    if (GetPlayer() != None)
    {
    	CardInfo = GetPlayer().CardList;
    
    	if (CardInfo != None)
    	{
    		while(CardInfo != None)
    		{
    			winInfo.SetText("  " $ CardInfo.Description);
    			CardInfo = CardInfo.NextCard;
    			CardCount++;
    		}
    	}
    }
    
    if (CardCount > 0)
    {
    	winInfo.AddLine();
    	winInfo.SetText(Description);
    }
    else
    {
    	winInfo.Clear();
    	winInfo.SetTitle(itemName);
    	winInfo.SetText(NoCards);
    }
    
    return True;
    }
    
    // ----------------------------------------------------------------------
    // GetPlayer()
    // ----------------------------------------------------------------------
    
    simulated function TSPlayer GetPlayer()
    {
    return TSPlayer(Owner);
    }
    
    // ----------------------------------------------------------------------
    // GetCardCount()
    // ----------------------------------------------------------------------
    
    simulated function int GetCardCount()
    {
    local int CardCount;
    local NanoCardInfo aCard;
    
    if (GetPlayer() != None)
    {
    	aCard = GetPlayer().CardList;
    
    	// Loop through all the Cards and see if one exists
    	while(aCard != None)
    	{
    		CardCount++;
    		aCard = aCard.NextCard;
    	}
    }
    
    return CardCount;
    }
    
    // ----------------------------------------------------------------------
    // ----------------------------------------------------------------------
    state UseIt
    {
    function PutDown()
    {
    
    }
    
    Begin:
    PlaySound(useSound, SLOT_None);
    PlayAnim('UseBegin',, 0.1);
    FinishAnim();
    LoopAnim('UseLoop',, 0.1);
    GotoState('StopIt');
    }
    
    // ----------------------------------------------------------------------
    // ----------------------------------------------------------------------
    state StopIt
    {
    function PutDown()
    {
    
    }
    
    Begin:
    PlayAnim('UseEnd',, 0.1);
    GotoState('Idle', 'DontPlaySelect');
    }
    
    // ----------------------------------------------------------------------
    // ----------------------------------------------------------------------
    
    defaultproperties
    {
     NoCards="No Nano Cards Available!"
     CardsAvailableLabel="Nano Cards Available:"
     UseSound=Sound'DeusExSounds.Generic.KeysRattling'
     bDisplayableInv=False
     ItemName="NanoCard Ring"
     ItemArticle="the"
     PlayerViewOffset=(X=16.000000,Y=15.000000,Z=-16.000000)
     PlayerViewMesh=LodMesh'DeusExItems.NanoKeyRingPOV'
     PickupViewMesh=LodMesh'DeusExItems.NanoKeyRing'
     ThirdPersonMesh=LodMesh'DeusExItems.NanoKeyRing'
     Icon=Texture'DeusExUI.Icons.BeltIconNanoKeyRing'
     largeIcon=Texture'DeusExUI.Icons.LargeIconNanoKeyRing'
     largeIconWidth=47
     largeIconHeight=44
     Description="A nanoCard ring can read and store the two-dimensional molecular patterns from different nanokeys, and then recreate those patterns on demand."
     beltDescription="CARD RING"
     bHidden=True
     Mesh=LodMesh'DeusExItems.NanoCardRing'
     CollisionRadius=5.510000
     CollisionHeight=4.690000
     Mass=10.000000
     Buoyancy=5.000000
    }
    
    
    и
    
    
    class NanoCard extends DeusExPickup;
    
    var() name			CardID;			// unique FName identifier used for movers and such
    
    enum ESkinColor
    {
    SC_Level1,
    SC_Level2,
    SC_Level3,
    SC_Level4
    };
    
    var() ESkinColor SkinColor;
    
    // ----------------------------------------------------------------------
    // BeginPlay()
    // ----------------------------------------------------------------------
    
    function BeginPlay()
    {
    Super.BeginPlay();
    
    switch (SkinColor)
    {
    	case SC_Level1:	MultiSkins[0] = Texture'NanoKeyTex1'; break;
    	case SC_Level2:	MultiSkins[0] = Texture'NanoKeyTex2'; break;
    	case SC_Level3:	MultiSkins[0] = Texture'NanoKeyTex3'; break;
    	case SC_Level4:	MultiSkins[0] = Texture'NanoKeyTex4'; break;
    }
    }
    
    // ----------------------------------------------------------------------
    // GiveTo()
    //
    // Called during conversations since HandlePickupQuery() isn't called
    // then
    // ----------------------------------------------------------------------
    
    function GiveTo( pawn Other )
    {
    local DeusExPlayer player;
    
    if (Other.IsA('DeusExPlayer'))
    {
    	player = DeusExPlayer(Other);
    	player.PickupNanoCard(Self);
    	Destroy();
    }
    else
    {
    	Super.GiveTo(Other);
    }
    }
    
    // ----------------------------------------------------------------------
    // HandlePickupQuery()
    //
    // Adds the NanoKey to the player's NanoCardRing and then destroys 
    // this object
    // ----------------------------------------------------------------------
    
    function bool HandlePickupQuery( inventory Item )
    {
    local DeusExPlayer player;
    
    if ( Item.Class == Class )
    {
    	player = DeusExPlayer(Owner);
    	player.PickupNanoCard(NanoCard(item));
    	item.Destroy();
    
    	return True;
    }
    
    return Super.HandlePickupQuery(Item);
    }
    
    // ----------------------------------------------------------------------
    // ----------------------------------------------------------------------
    
    defaultproperties
    {
     ItemName="NanoCard"
     PlayerViewOffset=(X=30.000000,Z=-12.000000)
     PlayerViewMesh=LodMesh'DeusExItems.NanoKey'
     PickupViewMesh=LodMesh'DeusExItems.NanoKey'
     ThirdPersonMesh=LodMesh'DeusExItems.NanoKey'
     Icon=Texture'DeusExUI.Icons.BeltIconNanoKey'
     Description="NO KEY DESCRIPTION - REPORT THIS AS A BUG!"
     beltDescription="NANO"
     Mesh=LodMesh'DeusExItems.NanoKey'
     CollisionRadius=2.050000
     CollisionHeight=3.110000
     Mass=1.000000
    }

     

    Олсо сделал и NanoCardInfo, как показано выше, таким же способом. Как видно из кода, мне пришлось убрать Networking Replication(цикл replication): ЮЦЦ ругался на GiveClientCard, RemoveClientCard, ClientRemoveAllCards. Обратно заменил слово Card на Key в цикле -- нифига, так же ругается. Для чего служит это Нетворк Репликейшн и нужно оно вообще для одиночной игры? И когда пишешь класс нового игрока, как нужно обозначать пекеджи, которые подключаешь к нему? Название_Пекеджа.Название_класса? Я пробовал и так и так. Ничего не выходит, ругается, что мол нет такого. Может их тогда нужно компилировать по отдельности, а уже потом подключать к друг другу?

  7. ололололо!!1адин Здесь нубья еще больше чем раньше. Хотя ладно, сам таким лохом был :) Но ничего, лурканье повышает интеллект. 2саймонс: а ну ка, выложи плиз свой чудо-перевод, хочу посомтреть на это. К тому же, текстовый перевод будет неоч. Вот если бы как для халвца была озвучка(от клана EBLAN, к сож-нию линка нету, точнее он удален, был вот здесь: http://eblanhl.narod.ru/ )

  8. Необходимо сделать сабж. Пробовал сие через КонЭдит, но там чек(как и трансфер) может работать только с объектами деусовского пака(DeusEx.u), пробовал сделать название_класса.название_объекта -- безрезультатно. Это раз. Два я решился не извращаться конэдиторами и сделать все по-православному, через скрипты, создавая свой класс. Один хрен -- порылся в исходниках Дх.ю и никакого примера с использованием функции чек не нашел. Посоветовали просто поюзать if, но какой от него толк? Ведь все равно прийдется проверять содержимое инвентаря(вот и этому примера я тоже на нашёл).

  9. 13 октября - "день жёсткого диска" Это штоб знали на всякий пожарный (=

    Якобы в этот день был изобретён первый винчестер, размерами с две серверные стойки (кто знает - поймёт) и объёмом 5 мегобайт (=

    хочу себе такой! :?

  10. Мне нужны анекты как минимум Дентона' date=' Дедала, Зондера, желательно Саймонса, Икс-нета, Морфа, Ячса

    Здесь что-то нетак!!1 :lol: Это все началось с того, как йа поступил в мж12!!1 %O А почему деда не причислили? Зато зондыр нужен(видимо хотят выяснить ево АИшность %)) ). И саймонс тоже здесь присутствует... Йа чувствую, что наш орден в опасности! Надо доделовать ЗОМГБОТА(тм).

  11. Кста, JCDenton тоже может переметнутся на сторону nsf - set deusex.jcdentonmale alliance nsf --------- вы террорист!!!.

    "Контер терористс вин!" %-)

    хмм, а мне всегда хватало аугов. Йа даже первый раз прошел игру где-то с 5-6 аугами. Об остальных потом узновал. Ну вообще там под один слот может два ауга идти, поэтому выбирал наиболее оптимальный на данный момент игру и ставил, второй -- выбрасывал на съеденье мжтруперам. Просто не любил ими пользоваться, и не искал их. Если была возможность ставить -- ставил какие естьнаходил.

×
×
  • Создать...