Главная Мой профиль Регистрация Выход Вход
[MOD] Modificators of DooM
Четверг
28.3.2024
21:33
Приветствую Вас Гражданский | RSS ВходРегистрацияГлавная
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: [MOD]HexaDoken, [MOD]Soosisya_san, [MOD]bed_intruder, [MOD]ALEX3005  
Форум » Моддинг, маппинг и их особенности под определенные порты » Вопросы по Декорейту и АЦС(только моддинг) и интересные факты, хитрости с ними » Лаборатория скриптов
Лаборатория скриптов
[MOD]Soosisya_sanДата: Вторник, 12.10.2010, 12:15 | Сообщение # 1
Опытный морпех
Группа: Модераторы
Сообщений: 163
Репутация: 3
Статус: Offline
Не знаете как реализовать ту или иную вещь? Пишите сюда. Мы поможем с реализацией.

Для подобных вещей в основном сейчас используют тему "Вопросы по DECORATE" и "Вопросы по ACS".
Поэтому предлагаю складывать сюда различные функции и скрипты, которые вы использовали в своих проектов, и которые могут оказаться интересны.
by bed.intruder


Я модер...
Я модер в клане модеров....
Я в Раю!!!))))
 
ArchiДата: Вторник, 12.10.2010, 12:53 | Сообщение # 2
Морпех
Группа: Проверенные
Сообщений: 69
Репутация: 3
Статус: Offline
Это больше к маппингу относится, в целом.
 
[MOD]Soosisya_sanДата: Вторник, 12.10.2010, 13:15 | Сообщение # 3
Опытный морпех
Группа: Модераторы
Сообщений: 163
Репутация: 3
Статус: Offline
есть случаи, когда человек придумал интирестную вещь(с точки зрения модинга) но он ни как не может додуматся, как это можно реализовать

Я модер...
Я модер в клане модеров....
Я в Раю!!!))))
 
[MOD]bed_intruderДата: Пятница, 29.10.2010, 21:04 | Сообщение # 4
Опытный морпех
Группа: Модераторы
Сообщений: 114
Репутация: 3
Статус: Offline
Стыбзено с i.iddqd.ru (автор - я).

Недавно мне понадобилась функция, которая преобразует строку в число. Но такой функции не оказалось. Тогда я стал писать свою.
Функция будет далее, но сначала немного теории.
Как известно, строка есть массив символов. Символы записываются в виде '*' (* - это символ), и представляют число - ACSII-код символа. Так как разница между символами '0' и '9' равна девяти, то для преобразования символа в цифру можно использовать следующее: n = c - '0' (c - символ, n - число). Получить символ из строки можно с помощью функции GetChar.
Теперь немного математики. Возьмем, скажем, последовательность цифр "3654". Число 3654 представляет сумму 3*10^3 + 6*10^2 + 5*10^1 + 4*10^0 (x^n - это возведение числа x в степень n (в ACS он означает несколько другое), любое_число^0 = 1). Вспоминаем разряды из начальной школы smile Здесь есть некая закономерность - разряды идут от числа, равному длине последовательности, уменьшенной на единицу, до нуля. Зная это, можно вывести формулу: sum = a*10^n-1 + b*10^n-2 + ... + x*10^n-n.
А вот и сама формула. Так как в ACS нет оператора возведения в степень, то пришлось взять готовую с вики.
Также в коде есть функция получения цифры из строки.

Code
function int pow (int x, int n) //получаем число x в n-ной степени; стыбзено с zdoom.org/wiki/Pow
{
   int y = 1;
   while (n-- > 0) y *= x;
   return y;
}

function int StringToNum(str string)
{
   int c;  //текущий символ
   int r = strlen(string)-1; //разряд; используется для нахождения суммы (числа)
   int sum; //а вот и сама сумма
     
   for(int i=0;i<strlen(string);i++) //прокручиваем циклом символы в строке
   {
    c = GetChar(string,i); //получаем текущий символ
    if((c >= '0')&&(c <= '9')) //он должен быть от '1' до '9'
    {
     c -= '0';
     sum += c*pow(10,r--); //используем разряд
    }
    else return -1; //если попался посторонний символ, то останавливаем скрипт
   }
   return sum;
}

function int DigitFromString(str string, int pos) //получаем цифру из строки
{
return GetChar(string,pos)-'0';
}


Если в числе попадается посторонний символ, будь то буква, знак препинания и прочее, то функция возвращает -1.
r-- значит, что сначала число r используется, а потом уменьшится на единицу. Если r-- заменить на --r, то будет наоборот.
Вот и все smile Помните, если нет нужной функции, то всегда можно сделать свою.
 
Push_start_to_richДата: Суббота, 30.10.2010, 08:49 | Сообщение # 5
Морпех
Группа: Проверенные
Сообщений: 79
Репутация: 0
Статус: Offline
[MOD]bed_intruder, а зачем это надо? В смысле преобразовывать строку в число? O.o
 
[MOD]Soosisya_sanДата: Суббота, 30.10.2010, 08:55 | Сообщение # 6
Опытный морпех
Группа: Модераторы
Сообщений: 163
Репутация: 3
Статус: Offline
мсожно шифровать текст, можно ставмть различные условия, можно менять текст, не создовая нового...

Я модер...
Я модер в клане модеров....
Я в Раю!!!))))
 
[MOD]Soosisya_sanДата: Суббота, 30.10.2010, 08:57 | Сообщение # 7
Опытный морпех
Группа: Модераторы
Сообщений: 163
Репутация: 3
Статус: Offline
Quote (|MOD|bed_intruder)
if((c >= '0')&&(c <= '9')) //он должен быть от '1' до '9'

у тебя явно в условии написано, что он должен быть от 0 до 9 включительно


Я модер...
Я модер в клане модеров....
Я в Раю!!!))))
 
cybermindДата: Пятница, 05.11.2010, 21:48 | Сообщение # 8
Призрак =)
Группа: Проверенные
Сообщений: 9
Репутация: 3
Статус: Offline
Выложу сюда по просьбе [MOD]Soosisya_san исходники ACS-скриптов мода "Terminator-800", думаю, может кому-то пригодится:
Скачать
 
[MOD]bed_intruderДата: Суббота, 06.11.2010, 18:27 | Сообщение # 9
Опытный морпех
Группа: Модераторы
Сообщений: 114
Репутация: 3
Статус: Offline
Делаем стрейф для монстров (DECORATE)

Команда A_Chase позволяет монстру ходить. A_FastChase - быстро ходить. Прикол в том, что монстр сначала идет в сторону, а потом - к цели. Если вместе с A_Chase использовать A_FastChase, то во время выполнения A_FastChase "наводка сбивается", и монстр делает рывок (по сути, быстро топает) в сторону.
Вот пример зомби, который изредка стрейфится:

Code
actor NewZombieMan : ZombieMan replaces ZombieMan
{
states
{
See:
   POSS AABBCCDD 4 A_Chase
   POSS ABCDABCD 1 A_FastChase
   Loop
}
}

А вот пример зомби, который часто стрейфится:

Code
actor NewZombieMan : ZombieMan replaces ZombieMan
{
states
{
See:
   POSS AABB 4 A_Chase
   POSS CDABCDAB 1 A_FastChase
   Loop
}
}

Естественно, это не настоящий стрейф, а лишь только его имитация. Кстати, такой фокус не работает на лестнице.

 
Форум » Моддинг, маппинг и их особенности под определенные порты » Вопросы по Декорейту и АЦС(только моддинг) и интересные факты, хитрости с ними » Лаборатория скриптов
  • Страница 1 из 1
  • 1
Поиск:


Copyright [MOD]© 2024
Создать бесплатный сайт с uCoz