Вообще, я уже подзабыл мануал ниловский немного, поэтому может я и не прав, но почему-то в мануалах часто не рассматривают такие вещи как порядок выполнения программы, а сразу пишут про то, какие операторы что делают. Ну или ссылаются на мистический си, который, видимо, всем положено знать.
Ну это да, в случае с манулом Nil, мануал VladGuardianа более разжевывает, но мне лично не хватает примеров, где можно применить например switch и while. Вобщем комбинации скриптов, польза от них, достаточно несколько примеров, мозги дальше сами начнут быстрее думать.
И еще не в 1 мануле что я читал не писали что можно объявлять в Int(все что угодно это не ответ.) и как правильно объявить некоторые штуки типо Define или что-то там еще было. Как объявить итем что в инвентаре тоже не знал, пробовал int xxx=CheckInventory("ddd"); почему-то не работало. То что int запоминает тоже не знал, думал он динамичски изменяет если объявлена итем в инвентаре.
Serious_MOod
Кстате лучше напишу, если используеш SBarInfo
Лучше писать так :
StatusBar Normal, ForceScalled (Тогда если игрок поменяет разрешение экрана, все что на HUD тоже сожмется)
Я просто так 2 раза переписывал координаты разных объектов на HUD пока не понял что надо Forcescalled писать=)
Serious_MOod
Да незачто, по SbarInfo уже много знаю, если не все, обращайся
Добавлено спустя 10 минут 20 секунд:
ChaingunPredator :
И в ACS можно, нет разве? В любом случае, УМВР
ChaingunPredator :
int xxx=CheckInventory("ddd"); не сработало только из за несовершенства acs. В си можно.
Ну под спойлером скрипт пример если там убрать в конце IF ";" то будет работать так как задуманно:
Скрытый текст:
>>#include "zcommon.acs"
int kill=0;
Script 1 (Void) //Вешаем на линию к примеру
{
If(kill==1);
{
GiveInventory("BasicArmor",1);
Terminate;
}
If(kill==0);
{
DamageThing(20);
}
}
Script 39 (Void) //вешаем на моба
{
kill++;
}
Должно получится так, игрок жмет на линию если убил 1 моба дает бронь если нет отнимает 20оз
Но из-за ";" после IF скрипт выполнится игнорируя условия. тоесть даст броню и отнимет 20оз
Этого в мануалах я лично не видел =(
вопрос только один - пример чего? Выше переменную пытались инициализировать не константой а результатом выполнения функции. Так то немного разные вещи.
вопрос только один - пример чего? Выше переменную пытались инициализировать не константой а результатом выполнения функции. Так то немного разные вещи.
Выше там я про IF писал, видимо как-то стер случайно, много писал =(
Ну в этом примере интересует почему если в конце If стоит ; то скрипт работает не правильно.
Я благодаря тебе я и acs пойму, уже начал понимать некоторые вещи что раньше казались инопланетным уровнением=))
alekv
Хм, а можно эти цифры "разделить"? Ну, то есть, я хочу к примеру сделать цифры на разном расстоянии друг от друга, такое можно сделать? x)
Да можно:
DrawString CONFONT, Gold, Time, 500, 500, 30,linebreaks(5);
Там где число 30 задает расстояние между цифрами.
LineBreaks(x) помоему по вертикале будет отображатся, в скобках сколько цифр будет на 1 строке.
Если вертикаль не нужна просто стираеш LineBreaks.
Добавлено спустя 22 минуты 38 секунд:
ChaingunPredator :
Потому что у If синтаксис такой:
If (условие) { выполнение } [Else { выполнение }]
В том и дело, синтаксис такой, но если поставить в конце ";"
IF(x==2); //то выполнятся обе строки не зависимо х=0 или х=2
{GiveInventory("Armor",20);}
DamageThing(0);
И ошибок о том что синтаксис не правильный не будет.
Ну ладно, я уже понял что к чему, просто для меня это важно было понять почему не всегда надо ставить ;
Тогда остаётся предположить только разные acs компиляторы. У меня был некоторое время такой, который инициализацию не понимал если там функция. Надо будет в новом попробовать.
: В ванили, если на обратной стороне линии, которая типа doortrack, находится не пустота, а еще какой-то сектор, можно как-то сделать, чтобы текстура не ехала? Lower unpegged не помогает, вроде и upper пробовал, и оба, все равно едет.