Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Скриптинг [Заказываем скрипты/Делимся скриптами] Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След.
   Список разделов - Местечко мапперов и моддеров - Скриптинг [Заказываем скрипты/Делимся скриптами]Ответить

Будет ли эта тема полезной/жизнеспособной?
Ответ если Вы программист: [Да! Буду просматривать заказы и размещать скрипты]
20%
 20% [ 8 ]
Ответ если Вы программист: [Нет! Эта тема бред]
5%
 5% [ 2 ]
Ответ если Вы программист: [Буду иногда размещать скрипты, но заказы.. лень]
32%
 32% [ 13 ]
Ответ если Вы заказчик: [Да!]
42%
 42% [ 17 ]
Ответ если Вы заказчик: [Нет!]
0%
 0% [ 0 ]
Проголосовало думеров : 28
Всего оставлено голосов : 40
Голосование без ограничения по времени

АвторСообщение
dukenator
UAC Sergeant Major
Next rank: UAC Sergeant Major after 34 points
726

Doom Rate: 2.06

Posts quality: +99
Ссылка на пост №141 Отправлено: 14.06.19 14:44:22
Сиюминутный оффтоп, если никто не возражает. Как вам кажется, народ активно осваивает ZScript, или он остаётся уделом нескольких упёртых? Как обстоят дела с туториалами? Синтаксис еще развивается?
1 1 1
JSO x
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 106 points
1334

Doom Rate: 2.26

Posts quality: +726
Ссылка на пост №142 Отправлено: 14.06.19 23:28:01
FoxPlays пишет:
Добавил тебя как автора мода на форуме здума :D

Так а чего же ты раньше-то не сказал, что это для общедоступного мода? Я бы покрасивее код написал...

dukenator пишет:
Как вам кажется, народ активно осваивает ZScript, или он остаётся уделом нескольких упёртых?

Смотря где. В русскоязычной среде относительно знающих ZScript по пальцам пересчитать можно, в англоязычной в основном на нём разговоры и ведутся. Мануалы -- только ZDoom wiki, расспросы что-то уже знающих да анализ чужого кода. Синтаксис -- да, развивается, и несколько моих любимых функций работают уже не так, например, нет флага "level.frozen", он теперь зачем-то превращён в функцию "level.SetFrozen( bool on )".

Рейтинг сообщения: +1, отметил(и): Void Weaver
2 7 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №143 Отправлено: 15.06.19 01:29:41
JSO x пишет:
Смотря где. В русскоязычной среде относительно знающих ZScript по пальцам пересчитать можно, в англоязычной в основном на нём разговоры и ведутся.
Всё так. Более того, за бугром ZScript активно лоббируется и продвигается в массы.

Касаемо мануалов неплохой мини-гайд набросал Matt, ещё Marrub попиливает доки. JSO x и ZZYZX кстати уже кидали прямые ссыли на последний проект.

Рейтинг сообщения: +1, отметил(и): MyNameIs
1 9 1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +136
Ссылка на пост №144 Отправлено: 21.09.19 20:15:04
Заказ на Z-скрипт от: yura_111

Описание: В альт-худе дума указывается текущее количество убитых монстров и их общее количество в уровне (через дробь. Пример: 135/443). НО когда играешь в кооперативе это значение у каждого игрока нужно каждый раз суммировать, дабы знать - сколько реально убито и сколько еще живности на уровне дышит, т.к. у каждого игрока пишется количество убитых именно им монстров. Особенно это напрягает когда игроков больше двух.

Подробно что должен делать скрипт: Просьба написать Z-скрипт так (если это возможно конечно), чтобы одно из значений указывало общее количество убитых монстров всеми игроками - например так 135/402/443 (135 убил ВАСЯ, 402 убитых всего, 443 вообще монстров в уровне). И тоже самое на секреты и предметы.

Под какой порт: GZDOOM 3.6
Shadowman
UAC General
Next rank: Unavailable after 0 points
8389

Doom Rate: 2.08

Posts quality: +1986
Ссылка на пост №145 Отправлено: 10.11.19 19:46:38
Хотелось бы прояснить следующие вопросы:
1) На уровне хаба запускается скрипт N1 с циклом While ( ), длящийся некоторое время, игрок выходит на соседний уровень в хабе, затем сразу же возвращается обратно. При входе на карту в библиотеке прописан запуск скрипта N1, если выполняется условие. У игрока оно выполняется. Но на карте скрипт N1 уже был запущен ранее. Вопрос: будет ли продолжаться действие ранее запущенного скрипта или скрипт из библиотеки перезапустит его? Если запущенный ранее скрипт продолжает работать, то запуск из библиотеки не сработает?
Все запуски скрипта - через ACS_NamedExecute.
Пример скрипта:
Скрытый текст:

script "TerrorCounterART" (void)
{

while ((CheckInventory("PipeOfConfusion") > 0)&&(Checkinventory("TerrorActiveCheck") > 0)&&(Checkinventory("TerrorScrollActiveCheck") == 0))
	{        
PlaySound(5000, "item/terror", 7, 1.0, TRUE);
	delay(35);
	TakeInventory("PipeOfConfusion", 1);
	}
while ((TerrorDuration > 0)&&(Checkinventory("TerrorScrollActiveCheck") > 0)&&(Checkinventory("TerrorActiveCheck") == 0))
	{    
PlaySound(5000, "item/terror", 7, 1.0, TRUE);    
	delay(35);
	TerrorDuration-=1;
	}
if (Checkinventory("TerrorART") > 0) 
 {
StopSound(5000, 7);
TakeInventory("TerrorART",1);
TakeInventory("TerrorScrollActiveCheck",1);
TakeInventory("TerrorActiveCheck",1);
   }
}



2) Команда ACS_Terminate как именно прекращает действие скрипта с циклом While (см. пример выше)?
Скрипт обрывается сразу или действие в цикле проиграется до конца времени 35 тиков, прежде чем скрипт завершится? Скажем, если команда ACS_Terminate поступила в то время, когда в скрипте работала задержка (например, прошло 15 тиков из 35), то как сработает эта команда?
1 7 2
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №146 Отправлено: 11.11.19 00:06:15
Создание зачётного сообщения/новости (+20)
Эти вопросы уместнее в теме "Вопросов".

2) ЕЯПП то ACS_Terminate прерывает любой скрипт, который при этом НЕ является типом ENTER, НЕ вызван через ACS_ExecuteAlways или НЕ работает на другой карте кроме той где вызывается сам ACS_Terminate:

Using ACS_Terminate is exactly the same thing as using terminate within that script, except that it can be called on scripts that are currently "running" (see below) on other maps in the same hub. The target script, if it's in the same map, is immediately halted. A subsequent call to the same script will start it over from the beginning.

Что касается прерывания внутренних циклов скрипта то чек на выход ACS_Terminate (или terminate;) должен находиться внутри цикла:

Termination of course only makes sense in scripts that have code that runs for more than one tick. Thus, yes, tehy can be terminated at any point via terminate. You could use a workaround for outside termination by calling another ACS script that in thrun switches a bool to false and the looping script, each cycle, checks if the loop is true and if not, terminates itself (the bool would have to be set teh true before the loop is started, of course).

Рейтинг сообщения: +2, отметил(и): Shadowman, alekv
1 9 1
Shadowman
UAC General
Next rank: Unavailable after 0 points
8389

Doom Rate: 2.08

Posts quality: +1986
Ссылка на пост №147 Отправлено: 12.11.19 11:23:19
Void Weaver
Спасибо, опытным путем установил, что если скрипт был запущен ранее, то новый запуск через ACS_Execute не сработает. Прерывание скрипта делается сразу по ACS_Terminate. А вот так, как советуют в цитате ("изменять переменную, которая используется в цикле скрипта"), не годится, т.к. если цикл имеет какую-то длительность, то смена переменной начнет работать лишь после того, как завершится длительность текущего цикла (в начале которого переменная была True), что может вызвать рассинхрон с другими скриптами по задумке.
Так что лучше напрямую, ACS_Terminate.

Рейтинг сообщения: +1, отметил(и): Void Weaver
1 7 2
bolon
- Lance Corporal -
Next rank: = Lance Corporal = after 8 points
152

Doom Rate: 9.5

Posts quality: +28
Ссылка на пост №148 Отправлено: 04.07.20 17:48:53
Отличный креатив или рецензия на ресурс (+40)
Скрипт мышки.
Скрытый текст:

Скрипт мышки.

Автор: bolon

Описание: Скрипт мышки с двумя кнопками, есть поддержка 3-х сигналов, Pressed, Just-Pressed, Released. Также, по рекомендации ZZYZX, добавил игнорирование m_yaw, m_pitch и invertmouse.

Как добавить: добавляешь содержимое pk3, в свой pk3, и в нужном тебе месте вызываешь скрипт "drawMouse". Синтаксис у него следующий:
drawMouse(включен, tid_игрока)

где,
* Если включен не 0, то появляется мышка. Через этот аргумент можно включать/отключать мышку.
* tid_игрока - tid игрока которого замораживает, при использовании мышки.

Также, настройка происходит через cvarinfo, там задается разрешение экрана (SetHudSize), чувствительность мышки, также там хранятся координаты, флаги, и т.д. и т.п.
Ссылка\код: Скачать pk3 с MEGA


Рейтинг сообщения: +2, отметил(и): VladGuardian, JSO x
3
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +136
Ссылка на пост №149 Отправлено: 16.09.20 10:45:13
Доброго времени суток!

Может ли кто-то помочь в написании скрипта разделения кнопки USE/Open/Respawn на две отдельные: USE/Open и Respawn? Жутко мешает одному из 6-и наших "кооперативщиков", т.к. во время смерти она случайно (на постоянной основе) жмет машинально кнопку и соответственно респавнится, теряя весь инвентарь (злясь на всех и вся). Естественно воскресить после респавна уже нельзя, и поэтому она требует чтобы все шестеро вышли и загрузили сохранение :bitsa: ...

Заказ на Z-скрипт от: YURA111

Подробно что должен делать Z-скрипт: Разделение кнопки USE/OPEN/RESPAWN на две различные USE/OPEN и RESPAWN

Под какой порт: GZDOOM 4.5-pre137
JSO x
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 106 points
1334

Doom Rate: 2.26

Posts quality: +726
Ссылка на пост №150 Отправлено: 28.09.20 23:25:28
По причине того, что я и прошлого ZScript-игрока Юрию в его мод частично делал, возьму и на этот раз.

Пересылаю сюда окончательный код с согласия обеих сторон. Его внушительный объём -- последствие почти незаметной оптимизации (перекопировал оригинальный "DeathThink()" и поменял код респауна в нём, без вызова "Super.DeathThink()" -- метода родителя).

Принцип действия -- вместо "+USE" при смерти проверяется та последовательность, что находится в "const respawnButtons" (полный список доступных здесь клавиш можно найти в /zscript/constants.txt). Также после каждой смерти единожды выводится строка, записанная в "const deathMessage". Выводится неэлегантно, но тут иного и не нужно.

Скрытый текст:

class DoomPlayer_4YURA: DoomPlayer replaces DoomPlayer {

    const respawnButtons = BT_USE + BT_ALTATTACK + BT_BACK;
    //const respawnButtons = BT_USER4;
    // Последовательность клавиш -- через "+" или "|". Но вообще с масками через прибавление/вычитание лучше не работать (часто просто опасно).

    const deathMessage = "Press \c[Red][USE] + [ALTFIRE] + [BACKWARD]\c- to respawn...";


    bool deathMessageShown;

    override void OnRespawn() {
        deathMessageShown = false;
        Super.OnRespawn();
    } // of override void OnRespawn() {

    override void DeathThink() {
        let player = self.player;
        int dir;
        double delta;

        player.Uncrouch();
        TickPSprites();

        if ( !deathMessageShown ) {
            A_Print( deathMessage .. "\n\n\n\n\n\n\n" );
            deathMessageShown = true;
        }

        player.onground = (pos.Z <= floorz);

        if (self is "PlayerChunk") { // Flying bloody skull or flying ice chunk

            player.viewheight = 6;
            player.deltaviewheight = 0;
            if (player.onground && Pitch > -19.) {
                double lookDelta = (-19. - Pitch) / 8;
                Pitch += lookDelta;
            }

        } else if (!bIceCorpse) { // Fall to ground (if not frozen)

            player.deltaviewheight = 0;
            if (player.viewheight > 6)
                player.viewheight -= 1;
            if (player.viewheight < 6)
                player.viewheight = 6;

            if (Pitch < 0)
                Pitch += 3;
            else if (Pitch > 0)
                Pitch -= 3;

            if (abs(Pitch) < 3)
                Pitch = 0.;
        }
        player.mo.CalcHeight ();

        if (player.attacker && player.attacker != self) { // Watch killer
            double diff = deltaangle(angle, AngleTo(player.attacker));
            double delta = abs(diff);

            if ( delta < 10 ) { // Looking at killer, so fade damage and poison counters
                if (player.damagecount)
                    player.damagecount--;
                if (player.poisoncount)
                    player.poisoncount--;
            }

            delta /= 8;
            Angle += clamp(diff, -5., 5.);
        } else {
            if (player.damagecount)
                player.damagecount--;
            if (player.poisoncount)
                player.poisoncount--;
        }

        // Условие страшное, но такое было в оригинале. Даже поглотить один старый пункт получилось, взамен на новый.
        if ( ( !sv_norespawn
            && ( ( player.cmd.buttons & respawnButtons ) == respawnButtons
                || ( (multiplayer || alwaysapplydmflags) && sv_forcerespawn) ) )
            && ( level.time >= player.respawn_time || player.Bot == NULL ) ) {

                player.cls = NULL;      // Force a new class if the player is using a random class
                player.playerstate = (multiplayer || level.AllowRespawn || sv_singleplayerrespawn || G_SkillPropertyInt(SKILLP_PlayerRespawn)) ? PST_REBORN : PST_ENTER;
                if (special1 > 2)
                    special1 = 0;

        }

    } // of override void DeathThink() {

}


Рейтинг сообщения: +1, отметил(и): YURA_111
2 7 1
SLON
- Sergeant -
Next rank: = Sergeant = after 20 points
320

Doom Rate: 0.56

Posts quality: +419
Ссылка на пост №151 Отправлено: 20.11.20 03:26:19
Щас пришла в голову поехавшая идея, навеянная маньяками с думворлда, впадающими в пляску святого Витта при подозрении в копировании вами пары вертексов со стандартных карт.

Можно ли как-либо (всё равно как) сделать так, что бы вад с определёнными iwad не фурычил?
Ибо благодаря ссаному фридуму - за что ему огромнейшее и бесконечное спасибо - мы теперь имеем уникальный бонус в виде сомнительности распространения модифицированных карт оригинала.
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №152 Отправлено: 20.11.20 14:38:51
SLON
Если обсуждать техническую сторону, то в ZScript есть возможность чтения загруженных в память вадах определённых лампов, а значит, и проверки их наличия (это же, но немного в другой форме, используется при определении типа игры, который показывается в верхней части окошка при запуске порта: исходник). Вот пост об этой функциональности: forum.zdoom.org.
Что делать с другими портами (включающими UDMF), не совсем ясно, но костылей каких-нибудь наверняка навешать можно.

Рейтинг сообщения: +1, отметил(и): JSO x
1 2
SLON
- Sergeant -
Next rank: = Sergeant = after 20 points
320

Doom Rate: 0.56

Posts quality: +419
Ссылка на пост №153 Отправлено: 20.11.20 17:29:15
Ну это так, просто на уровне поверхностных размышлений.
В принципе можно просто распространять подобные аддоны вместе с изменённым портом.
Но это "защита от дурака", а не от прошаренного пользователя, так как ничто не помешает ему запустить это с чем-то другим. Тут уже если только свой форк делать, с вадом использующим нестандартные схемы (т.е. например не декорейт/дехакед, а его уникальный аналог). Хотя это уже тяжёлая наркомания по сути.

Так что я предвижу два варианта:
1. Думворлд и ко перестаёт страдать подобными девиациями.
2. Они продолжат это делать, и рано или поздно становятся синонимами всего матерного. Оттуда все уходят, остаётся лишь кучка членов BDSM секты копирайта.

Исходя из всего происходящего, пока всё движется ко второму варианту.
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №154 Отправлено: 20.11.20 17:51:54
SLON
В конце концов, "прошаренный" пользователь может и выдрать отдельно карты из архива, чуть более "прошаренный" --- дизассемблировать экзешник, если все ресурсы упакованы в него, и т. п. Кроме того, есть шанс потерять значительную часть аудитории (например, лично я бы просто не стал качать модификацию со своим исполняемым файлом, если без его запуска нельзя обойтись).
О предоставленной альтернативе --- у тамошней администрации появились какие-то претензии к конкретным работам?
1 2
SLON
- Sergeant -
Next rank: = Sergeant = after 20 points
320

Doom Rate: 0.56

Posts quality: +419
Ссылка на пост №155 Отправлено: 20.11.20 18:36:16
Претензии там по факту даже не успевают возникать, любое подражание оригиналу запрещено. Я вообще удивлён, как там Doom Tribute в архив прошёл. Наверное, по "недосмотру".
Хрюк Злюкем
= Major =
Next rank: Lieutenant Colonel after 28 points
3262

Doom Rate: 1.39

Posts quality: +1271
Ссылка на пост №156 Отправлено: 20.11.20 20:13:43
SLON пишет:
любое подражание оригиналу запрещено

А можно ссылочку на такое высказывание?

Просто, если я правильно понимаю, могут прицепиться к ваду, который содержит уровни оригинальных IWAD'ов с минимальными изменениями, где работа автора заключается лишь в паре-тройке измененных текстур и двух добавленных комнатушках.

К Doom Tribute в этом случае докопаться труднее: там геометрия уровней с нуля создана, а перводумовские служат лишь "источником вдохновения".
2 2 1
theleo_ua
= Colonel =
Next rank: - Commissar - after 90 points
4800

Doom Rate: 1.8

Posts quality: +1032
Ссылка на пост №157 Отправлено: 20.11.20 20:42:21
Хрюк Злюкем пишет:
могут прицепиться к ваду, который содержит уровни оригинальных IWAD'ов с минимальными изменениями, где работа автора заключается лишь в паре-тройке измененных текстур и двух добавленных комнатушках.


это сделано потому что "ну просто мы так захотели", или потому что их сайт могут прикрыть за копирайты?
3 1
SLON
- Sergeant -
Next rank: = Sergeant = after 20 points
320

Doom Rate: 0.56

Posts quality: +419
Ссылка на пост №158 Отправлено: 20.11.20 20:42:43
Это в фонд золотых цитат надо, я думаю

Скрытый текст:



з.ы. Кибертовуха, за тобой уже выехали.
theleo_ua
= Colonel =
Next rank: - Commissar - after 90 points
4800

Doom Rate: 1.8

Posts quality: +1032
Ссылка на пост №159 Отправлено: 20.11.20 21:28:42
т.е. просто каждый лайндеф заменить на 1 пиксель, что визуально не будет заметно игроку, и копирайта уже нет?
3 1
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №160 Отправлено: 20.11.20 22:53:51
SLON пишет:
как там Doom Tribute в архив прошёл

Архив idgames, насколько я знаю, управляется не администрацией DW. Раздел /idgames на DW --- это просто база данных о содержимом внешнего ftp-хранилища с вадами (ещё немного об этом можно почитать здесь).
А "золотая цитата" вообще от какого-то непонятного обычного участника, даже не модератора. Я бы тоже мог прийти туда и написать там какую-нибудь свою ахинею, разве это поменяло бы что-нибудь в правилах архива?
Лично я не думаю, что в этом вопросе стоит обращать особенное внимание на личные предпочтения людей, никакой прямой власти над архивом не имеющих.

theleo_ua
Там же "almost no difference with the original", так что Ctrl + J, наверное, всё-таки "не пройдёт". А вот сколько это --- almost --- в каждом случае решается по-своему и обычно зависит от степени совместимости автора с генеральной линией партии, как и по всем остальным вопросам. Но это не очень сильно влияет на архив --- там решения всё-таки принимают другие люди.
1 2
Страница 8 из 9Перейти наверх Пред.  1, 2, 3, 4, 5, 6, 7, 8, 9  След.
   Список разделов - Местечко мапперов и моддеров - Скриптинг [Заказываем скрипты/Делимся скриптами]