Дай пушку, отдай пушку.
|
|
Dart_Veder | Дата: Четверг, 12.11.2015, 20:13 | Сообщение # 1 |
Краб
Группа: Проверенные
Сообщений: 22
Награды: 0 +
Статус: Offline
| Здрасте! Забор покрасте. Сразу к делу. Данный параметр actor:AddInventoryItem(CreateHDFirearm("Minigan", "Lox.rte")); как и понятно - добавляет орудие Minigan в инвентарь актора. А существует (вообще) такой параметр как удаление предмета из инвентаря актора, например actor:RemoveInventoryItem(DeleteHDFirearm("Minigan", "Lox.rte")); Не помню чтобы где то его видел, но возможно старосты и знаю такой. Буду благодарен за помощь. Может интересно - полная версия Lua: Код function Create(self) self.mapwrapx = SceneMan.SceneWrapsX; end
function Update(self) for actor in MovableMan.Actors do if (actor.ClassName == "AHuman") and actor:HasObject("Minigan") then if SceneMan:ShortestDistance(self.Pos,actor.Pos,self.mapwrapx).Magnitude <= 20 then self.ToDelete = true; actor:AddInventoryItem(CreateHDFirearm("Minigan Total Extreminatus", "Lox.rte")); actor:DeleteInventoryItem(DeleteHDFirearm("Minigan", "FarmCo.wInc.rte")); -- клятий код. Непрацюе падлюко. actor:GetController():SetState(Controller.WEAPON_CHANGE_PREV,true); end end end end
|
|
| |
Dart_Veder | Дата: Воскресенье, 15.11.2015, 17:59 | Сообщение # 2 |
Краб
Группа: Проверенные
Сообщений: 22
Награды: 0 +
Статус: Offline
| Blump, хех, да, отчасти это помогло. Теперь если заказать актора с Миниганом и предметом модификатором (Тотал Экстреминатус), тогда старый миниган убирается и создается Миниган Тотал Экстремитатус. Но как я сказал - отчасти помогло: Если положить на землю предмет модификатор и подойти к нему актором у которого миниган, то предмет модификатор уничтожится (так и надо) и у актора в инвентаре появиться Миниган Тотал Экстреминатус (так тоже надо) и останется старый миниган (а вот так не надо), то есть у него будет два минигана (обычный и ТоталЭкс). Впринцыпе, если не удастся это пофиксить, можно оставить так.
Код function Create(self) self.mapwrapx = SceneMan.SceneWrapsX; end
function Update(self) for actor in MovableMan.Actors do if (actor.ClassName == "AHuman") and actor:HasObject("Minigan") then if SceneMan:ShortestDistance(self.Pos,actor.Pos,self.mapwrapx).Magnitude <= 20 then self.ToDelete = true; actor:AddInventoryItem(CreateHDFirearm("Minigan Total Extreminatus", "Lox.rte")); actor:RemoveInventoryItem("Minigan"); actor:GetController():SetState(Controller.WEAPON_CHANGE_PREV,true); end end end end
|
|
| |
Dart_Veder | Дата: Среда, 18.11.2015, 22:00 | Сообщение # 3 |
Краб
Группа: Проверенные
Сообщений: 22
Награды: 0 +
Статус: Offline
| И раз на то пошло. вот еще один ПАЧИМЮТААААА не работающий луаКод function Create(self) self.hartime = Timer(); self.RotAngle = 0; end
function Update(self) if self.hartime:IsPastSimMS(2000) then local apple = CreateHDFirearm("Apple"); apple.Pos = self.Pos; MovableMan:AddHDFirearm(apple); self.hartime:Reset() end end Присобачиваеться к МосРотатингу. По идее создателя - должен создавать оружия (ХДФаейарм) Яблочко каждые 2 секунды на собственной позиции. По истечении 8 сек уничтожается (это единственное что у него работало, поэтому я пока это убрал). На деле - тупо ничего не делает и куча лагов в консоле связанные с MovableMan:AddHDFirearm(apple); Я делал и MovableMan:CreateHDFirearm(apple); но ничего не изменилось.
|
|
| |
Dart_Veder | Дата: Пятница, 20.11.2015, 20:02 | Сообщение # 4 |
Краб
Группа: Проверенные
Сообщений: 22
Награды: 0 +
Статус: Offline
| Blump, все твои советы работаю, только не совсем как нужно) Теперь, тот самый МосРотатинг делает не одной яблоко в две секунды, а по 7-10 яблок за раз. Я как то убрал время уничтожения "Яблони" и наступил тотальный яблогедон. И да, как насчет РемувИнверториИтем? Есть идее почему если он есть в инвентаре и прокручивать его, тогда все работает отлично, а когда предмет на земле, начинается шлак?
|
|
| |
Dart_Veder | Дата: Среда, 25.11.2015, 15:33 | Сообщение # 5 |
Краб
Группа: Проверенные
Сообщений: 22
Награды: 0 +
Статус: Offline
| Blump, ну я сначала брал ини код бомб-мейкера как из чип хант, но когда оно не сработало начал эксперименты. Лови. Код AddActor = AEmitter PresetName = Apple Plant LifeTime = 12000 HitsMOs = 0 ScriptPath = FarmCo.rte\Botanica\Plants\Plants/Apple.lua GetsHitByMOs = 0 PinStrength = 10000 SpriteFile = ContentFile FilePath = FarmCo.rte\Botanica\Plants\Plants/Apple.bmp FrameCount = 1 SpriteOffset = Vector X = -13 // 85 Y = -20 // 135 EntryWound = AEmitter CopyOf = Wound Dry Flesh Entry ExitWound = AEmitter CopyOf = Wound Dry Flesh Entry AtomGroup = AtomGroup AutoGenerate = 1 Material = Material CopyOf = Grass Resolution = 6 Depth = 0 DeepGroup = AtomGroup AutoGenerate = 1 Material = Material CopyOf = Grass Resolution = 6 Depth = 0 DeepCheck = 1 AddEmission = Emission EmittedParticle = HDFirearm CopyOf = Apple Spread = 3.14 MaxVelocity = 8 MinVelocity = 6 PushesEmitter = 0 EmissionEnabled = 1 BurstScale = 3 ParticlesPerMinute = 8 BurstSize = 3 EmissionCountLimit = 1 EmissionsIgnoreThis = 1 BurstTriggered = 0 EmissionDamage = 0
Это весь ини шкрипт яблони. Насчет луа яблони сейчас там просто 1 строчка кода, чтобы верх яблони всегда был направлен в верх. К самому Яблоку, я сделал луа лечение. Но вряд ли это влияет на кол-во яблок верно?
|
|
| |
Dart_Veder | Дата: Воскресенье, 29.11.2015, 11:11 | Сообщение # 6 |
Краб
Группа: Проверенные
Сообщений: 22
Награды: 0 +
Статус: Offline
| Blump, а ты знаешь более удачные примеры одиночного эмитера? Я нет. Но как у любого диванного мододела у меня великая коллекция хороших, нехороших, неработающих, тошнотворных модов. Возможно, денек другой в поисках меня выручит. И кстати, вместо MovableMan:AddParticle для оружия и вещей делается не AddParticle а AddItem, тобиш MovableMan:AddItem.
|
|
| |
Blump | Дата: Вторник, 01.12.2015, 15:17 | Сообщение # 7 |
Краб
Группа: Проверенные
Сообщений: 67
Награды: 0 +
Статус: Offline
| Цитата Dart_Veder ( ) Аааа, типо что бы яблоня "не зацвела", а когда таймер она "цветнет" разок один яблоком и все, верно? Ну, я не уверен, что это поможет. Отнюдь не уверен. По идее, это должно предохранить от выполнения команды несколько раз. Однако если подумать, то не поможет.
Цитата Dart_Veder ( ) Хм, но ведь мне еще что бы она периодически "цвела". Хм, я не силён в программерских понятиях, но скажу, что function Update() периодическая. Т.е. все команды и проверки условий, которые относятся к этому блоку кода, выполняются снова и снова с обновлением изображения на экране, если так можно выразиться. А вот блок function Create() выполняется лишь при создании объекта.
|
|
| |
Sfabrikan | Дата: Вторник, 01.12.2015, 15:48 | Сообщение # 8 |
Краб
Группа: Половина модератора
Сообщений: 179
Награды: 0 +
Статус: Offline
| Цитата Blump ( ) function Update() периодическая. Т.е. все команды и проверки условий, которые относятся к этому блоку кода, выполняются снова и снова с обновлением изображения на экране Если же сам объект существует.Цитата Dart_Veder ( ) Хм, но ведь мне еще что бы она периодически "цвела". Создайте таймер, и при достижении какого либо значения она цветет, а потом сбрасываете и цикл повторяется.
|
|
| |
Dart_Veder | Дата: Вторник, 01.12.2015, 18:25 | Сообщение # 9 |
Краб
Группа: Проверенные
Сообщений: 22
Награды: 0 +
Статус: Offline
| Хм. Не помогает. Эффект один и тот же. С таймером? Он будет делает 10! яблок в каждое нужно время. С каким нибудь Eat = 0? та впринципе тоже самое. Эммитер? Можно обойтись без луа но яблок будет угадайте сколько. Все, все попытки сводятся к одному - появляется ДЕСЯТЬ (!10!) чертовых яблок! Может проблема с МоваблеМан Ад Итем (партикл и т.д)? Интересно, а если заменить яблоко на, актора, эффект будет тот же? Щас проверю. И тогда почему бомб мейкеры и зомби генераторы в чип хант работают как надо? Да там они включаются по луа но работают же.
|
|
| |
Dart_Veder | Дата: Среда, 02.12.2015, 16:30 | Сообщение # 10 |
Краб
Группа: Проверенные
Сообщений: 22
Награды: 0 +
Статус: Offline
| Sfabrikan, мне кажется сильно геморойно. А строительством говоришь занимался, не турели ли строил? XD
Blump, я расскажу полную идею. Есть граната "Пакет Семян Дерева" которая когда взрывается, создает АкторЭмитер (как и в чип хант. Но сначала оно создавало МосРотатинг с луа). Давай кину тебе иник: Код AddDevice = TDExplosive PresetName = Seed Seed -- это шаблон семян, так как их должно быть несколько видов. Description = Seed! AddToGroup = Bombs AddToGroup = Farm Co. Seeds Mass = 0.1 RestThreshold = -500 HitsMOs = 1 GetsHitByMOs = 1 SpriteFile = ContentFile FilePath = FarmCo.wInc.rte\Botanica\Plants\Seeds/Apple.bmp FrameCount = 1 SpriteOffset = Vector X = -6 Y = -7 EntryWound = AEmitter CopyOf = Wound Dry Flesh Entry ExitWound = AEmitter CopyOf = Wound Dry Flesh Entry GoldValue = 5 Buyable = 0 AngularVel = 9 AtomGroup = AtomGroup AutoGenerate = 1 Material = Material CopyOf = Military Stuff Resolution = 2 Depth = 0 DeepGroup = AtomGroup AutoGenerate = 1 Material = Material CopyOf = Military Stuff Resolution = 4 Depth = 10 DeepCheck = 1 JointStrength = 100 JointStiffness = 0.5 JointOffset = Vector X = 0 Y = 4 DrawAfterParent = 0 DetonationSound = Sound Priority = 1000 AddSample = ContentFile Path = FarmCo.wInc.rte\Botanica\Plants\Seeds/SeedOpa.wav StanceOffset = Vector X = 8 Y = 5 StartThrowOffset = Vector X = -12 Y = -5 EndThrowOffset = Vector X = 12 Y = -5 MinThrowVel = 2 MaxThrowVel = 5 TriggerDelay = 3500 ActivatesWhenReleased = 0 GibImpulseLimit = 2 GibWoundLimit = 25 -- он не имеет гибов, гибы добавляются отдельно.
AddDevice = TDExplosive CopyOf = Seed Seed PresetName = Apple Seed -- собственно сам покупаемый пакет семян. Description = Apple! SpriteFile = ContentFile FilePath = FarmCo.wInc.rte\Botanica\Plants\Seeds/Apple.bmp FrameCount = 1 Buyable = 1 AddParticles = AEmitter CopyOf = Apple Plant -- само растение акторэмитер ParticleNumberToAdd = 1 - использует старую систему гранат, как у Фраг Гранаты, можете посмотреть. Мне кажется что сделать нормально работающую систему not pasibl. Если не найдется исправления, заброшу ферму..... Или сделаю очень тупую идею XD
|
|
| |
Blump | Дата: Среда, 02.12.2015, 18:59 | Сообщение # 11 |
Краб
Группа: Проверенные
Сообщений: 67
Награды: 0 +
Статус: Offline
| Dart_Veder, добавь своё деревцо в любую группу, типа AddToGroup = Derevtsa. Сможешь ставить его во время строительства бункера (Test Activity, например). Мне просто в голову мысль пришла, что всё работает, но дерево просто не одно стоит на месте). у него же HitsMOs и GetsHitsByMOs равно 0, значит одно дерево будет ставиться поверх другого и не будет мешать ему при этом.
|
|
| |