Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 94 95 96 97 98 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Юзверь
сообщение Jun 25 2006, 08:58
Сообщение #2361


Level 1


Класс: Друид
Характер: Neutral Good
Раса: Эльф



QUOTE
Да, вот еще что, если ты обратил внимание, то все модули сделаны так, чтобы в них не было ничего от аддона, в котором компания не делалась.

Да уж. И первые проявления этого - отказы в компилляции... (IMG:style_emoticons/kolobok_light/sad.gif)

Dik Morris, Zirrex, спасибо.
Пойду искать пропатченную версию в продаже, т.к. скачать 76 мб нереально... (IMG:style_emoticons/kolobok_light/sad.gif)

Сообщение отредактировал Alaron - Jun 25 2006, 09:02
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Jun 25 2006, 10:21
Сообщение #2362


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



Dik Morris, теперь мне понятно! СПАСИБО БОЛЬШОЕ!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Белатрис
сообщение Jun 26 2006, 05:25
Сообщение #2363


Level 11
***

Класс: Воин
Характер: Lawful Good
Раса: Человек



А как уничтожить скрипт, который, допустим запускается второй раз (это в диалоге)?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jun 26 2006, 08:56
Сообщение #2364


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Белатрис, нужно просто делать проверку на локальные переменные.
По ним читай Здесь, либо в мануале от Aiwan'a.

PS: т.е скрипт у тебя будет иметь такой вид:

NSS
void main()
{
  if (GetLocalInt(OBJECT_SELF, "temp") == 0)
    {
      SetLocalInt(OBJECT_SELF, "temp",1);
      // Код ;
    }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Юзверь
сообщение Jun 26 2006, 12:33
Сообщение #2365


Level 1


Класс: Друид
Характер: Neutral Good
Раса: Эльф



Дамы и Господа, помогите, плиз, решить задачку.
Дано:
Файл *.erf в нем *.uti, скрипты и информация для экспорта (кому интересно, ссылка выше на nwvault)
Надо:
Как можно удобнее вставить сие нововведение в кампании (NWN, SoU и HotU)
Решение:
Наиболее вероятным решением всех отозвавшихся является вставка через Аврору перепакованием модулей.
Вопрос:
Можно ли вставить содержимое файла ерф в Оверрайд и как? Если никак, то что еще можете предложить?
Заранее much thanks...

Сообщение отредактировал Alaron - Jun 26 2006, 12:34
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jun 27 2006, 08:29
Сообщение #2366


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Alaron, без внедрения в модули, у тебя ничего не получится. Скрипты сделаны с таким учетом, что ты их будешь устанавливать именно в модуль, а не отдельно. Отдельно же они даже работать не будут, потому что не понятно к чему относятся.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jun 27 2006, 08:47
Сообщение #2367


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



ИМХО, можно, только ncs (скомпилированные).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Jun 27 2006, 09:00
Сообщение #2368


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



QUOTE
почему же тогда он не вспомнил, что я ни-ни в скриптах,

... а почему ОН( или кто-то другой) должен что-то о тебе вспоминать специально? я конечно понимаю, что каждый человек выдающиеся , уникальная ит итп личность, но , скриптеры , как правило , люди занятые своими собственными скриптами и в голове лишнюю информацию не держат..так что , если что-то надо конкретное, то и и писать надо соответственно ибо со чтением чужих мыслей у нас не очень получаеться пока (IMG:style_emoticons/kolobok_light/biggrin.gif) (IMG:style_emoticons/kolobok_light/mosking.gif)
п.с. вышесказанное ,кстати, не только к конкретному случаю относиться (IMG:style_emoticons/kolobok_light/biggrin.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
OxCom
сообщение Jul 2 2006, 12:59
Сообщение #2369


Level 2
*

Класс: Маг
Характер: Chaotic Evil
Раса: Полуэльф



Доброго времени суток.
Прошу не посылать читать мануалы.
Те кто пользуются NWNX знаю, что припомощи NWNX можно связать NWN и MySQL. Я связал (все отлично работает), но теперь появились вопросы: как записать данный в таблицу и как их от туда причитать и записать в переменные.
Записать оказалось очень легко, но как от туда их прочитать?

Собственно трока для записи в таблицу
NSS
string sSQL="INSERT INTO nwn(playername, charname, pc_dm, ip_address) "+
      "VALUES('"+sPlayer+"','"+sChar+"','"+sDM+"','"+ip+"')";
        SQLExecDirect(sSQL);

Тут мы записываем в таблицу "nwn" в соответсвующие поля переменные sPlayer, sChar, sDM, ip.
А как, имея уже заполненную таблицу, записать значения каждого соответсв. поля в переменную sPlayer, sChar, sDM, ip?

Поидее мы должны выбрать сделать "SELECT * FROM `nwn_stast` WHERE 'playername' = 'sPlayer'" и т.п., а потом из полученного результата прочитать для каждой переменной значения. Как это сделать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
[MoF]Darth_Nick
сообщение Jul 2 2006, 13:28
Сообщение #2370


Level 6
Иконки Групп

Класс: Некромант
Характер: Chaotic Evil
Раса: Нежить
NWN: Скриптинг [PW]



я очень давно занимался nwnx'ом и т.д.. по памяти, там есть функции:
QUOTE
SQLFirstRow\SQLFetch <- для чеков
SQLExecDirect <- запрос
SQLGetData <- получение данных
^ помойму что-то типа string sResult = SQLGetData(1); после запроса SELECT


помойму так..
посмотри подфорум - Шарды рунета.. там было про ето

Сообщение отредактировал [MoF]Darth_Nick - Jul 2 2006, 14:16
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sharklike
сообщение Jul 2 2006, 14:35
Сообщение #2371


Level 8
***

Класс: Бледный Мастер
Характер: Chaotic Neutral
Раса: Человек



QUOTE(OxCom @ Jul 2 2006, 12:59) [snapback]86839[/snapback]

Записать оказалось очень легко, но как от туда их прочитать?

Собственно трока для записи в таблицу
NSS
string sSQL="INSERT INTO nwn(playername, charname, pc_dm, ip_address) "+
       "VALUES('"+sPlayer+"','"+sChar+"','"+sDM+"','"+ip+"')";
        SQLExecDirect(sSQL);

Тут мы записываем в таблицу "nwn" в соответсвующие поля переменные sPlayer, sChar, sDM, ip.
А как, имея уже заполненную таблицу, записать значения каждого соответсв. поля в переменную sPlayer, sChar, sDM, ip?

Поидее мы должны выбрать сделать "SELECT * FROM `nwn_stast` WHERE 'playername' = 'sPlayer'" и т.п., а потом из полученного результата прочитать для каждой переменной значения. Как это сделать?

следующий код сделает запрос:
NSS
string sPlayer = SQLEncodeSpecialChars("Аккаунт");
string sSQL = "SELECT * FROM nwn_stast WHERE playername='"+ sPlayer +"'";
SQLExecDirect(sSQL);

результатом которого будет набор записей со значением "Аккаунт" в поле playername

функция SQLFetch() позволит продвигаться по результирующему набору от первой записи до последней, возвращая SQL_SUCCES в том случае, если запись существует и SQL_ERROR в противоположном

если SQLFetch() вернула SQL_SUCCES - значит можно получить значения полей текущей записи функцией SQLGetData(), в качестве параметра которой передается номер поля
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jul 2 2006, 18:45
Сообщение #2372


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Насколько я помню, какие-то примеры должны быть в демо-модуле NWNX-ODBC.
Во-первых, начну с совета. Использовать в запросах заранее неизвестные и задаваемые игроком строки (имя чара, аккаунт и т.д.) следует ТОЛЬКО с функцией SQLEncodeSpecialChars. т.е.:
"SELECT ..... WHERE ...='"+SQLEncodeSpecialChars(sString)+"' ...". То же и при INSERT. В базе эти строки будут закодированными (' заменяется на `~), а при их вытаскивании нужно будет сделать SQLDecodeSpecialChars.
Во-вторых, как вытаскивать записи из базы. Приведу примеры.
Получение номера и прав игрока (нужна одна запись):
NSS
#include "aps_include"
...
string sName = GetName(oPC);
string sAccount = GetPCPlayerName(oPC);
SQLExecDirect("SELECT id, rights FROM nwn WHERE playername='"+SQLEncodeSpecialChars(sAccount)+"' AND charname='"+SQLEncodeSpecialChars(sName)+"'"); //Выполнение запроса
if(SQLFetch()) //если есть хоть одна такая запись
{
    int nID = StringToInt(SQLGetData(1)); //поле 1 - id
    int nRights = StringToInt(SQLGetData(2)); //поле 2 - rights
}

Получение нескольких записей (инициализация заданных переменных - упрощенный вариант):
NSS
#include "aps_include"
SQLExecDirect("SELECT name, val FROM preset_vars"); //запрос
while(SQLFetch()) //пролистывать записи до конца
{
    string sVarName = SQLGetData(1);
    int nVal = StringToInt(SQLGetData(2));
    SetLocalInt(GetModule(), sVarName, nVal);
}

На Экзисе я использую немного изменённую библиотеку, в частности там укорочены имена функций (SQLExec, SQLGet) и улучшена SQLEncodeSpecialChars: в запрос добавляется "\", и декодировать уже ничего не надо.

Сообщение отредактировал virusman - Jul 2 2006, 18:49
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
OxCom
сообщение Jul 6 2006, 13:52
Сообщение #2373


Level 2
*

Класс: Маг
Характер: Chaotic Evil
Раса: Полуэльф



Спасибо разобрался. Теперь такой вопрос:
Поставил скрипт в OnClientLeave. Он не срабатывает когда игрок выходит.
NSS
#инклуды
void main() {
    object oPC = GetExitingObject();
    if (!GetIsPC(oPC)) return;

    #работа с MySQL
}


Если этот же скрипт поставить объекту на OnUse и заменить GetExitingObject(); на GetExitingObject(); то все работает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jul 6 2006, 15:36
Сообщение #2374


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



На выходящем игроке некоторые функции не работают. Но это не тот случай, потому что подобный код:
NSS
object oPlayer = GetExitingObject();
int nDM = GetIsDM(oPlayer);
...
if (!nDM) ExecuteScript("lr_talsave_save",OBJECT_SELF);

работает.

Сообщение отредактировал virusman - Jul 6 2006, 15:36
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Sharklike
сообщение Jul 6 2006, 19:15
Сообщение #2375


Level 8
***

Класс: Бледный Мастер
Характер: Chaotic Neutral
Раса: Человек



В OnClientLeave функция GetIsPC возвращает FALSE.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jul 6 2006, 20:44
Сообщение #2376


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



Ой, перепутал GetIsPC и GetIsDM. (IMG:style_emoticons/kolobok_light/smile.gif)
OnClientEnter/OnClientLeave всегда срабатывают только на игроках. Дополнительные проверки тут не нужны.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Jul 7 2006, 15:17
Сообщение #2377


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



Здраствуйте всем вам. Уезжал на долго не создавал. Весь опыт потерял набираю заново. Как сделать что когда игрок наступает на Триггер на него кастуется 5 заклинаний. Лечение, защита, сила, и еще чтонибудь на ваш вкус только не навороченное. (IMG:style_emoticons/kolobok_light/nea.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 7 2006, 15:30
Сообщение #2378


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



На onEnter, триггера:

NSS
void main()
{
  object oPC = GetEnteringObject();
  effect eHeal = EffectHeal(GetMaxHitPoints(oPC));
  effect eStrength = EffectAbilityIncrease(ABILITY_STRENGTH,1);
  effect eAC = EffectACIncrease(1);
  // Остальные эффекты добавишь сам, ищи в фильтре Effect*

  if (!GetIsPC(oPC))
   return;

  if (GetCurrentHitPoints(oPC) != GetMaxHitPoints(oPC))
   {
     ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oPC);
   }
  ApplyEffectToObject(DURATION_TYPE_PERMANENT, eStrength, oPC); // Сила повышается на 1. Бесконечно.
  ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAC, oPC); // AC повышается на 1. Бесконечно.

  DestroyObject(OBJECT_SELF, 0.4); // Удали строку если не нужно чтобы скрипт срабатывал 1 раз.
}


Сообщение отредактировал Dik Morris - Jul 7 2006, 15:44
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noah
сообщение Jul 7 2006, 23:04
Сообщение #2379


Level 5
**

Класс: Убийца
Характер: Chaotic Neutral
Раса: Полуэльф



Здрв!Нужен ответ.Как добавить в имя вещи слово,т.Е. Если был "топор" то сделать его "топор хлада" с помощью скрипта.Заране спасибо!%:-)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
virusman
сообщение Jul 8 2006, 00:19
Сообщение #2380


Level 17
Иконки Групп

Класс: Волшебник
Характер: Neutral Good
Раса: Человек
NWN: Скриптинг [PW]
Axistown SR 1.9
NWNX



SetName(oItem, GetName(oItem)+" of Cold");
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noah
сообщение Jul 8 2006, 00:31
Сообщение #2381


Level 5
**

Класс: Убийца
Характер: Chaotic Neutral
Раса: Полуэльф



Спасибо,друг virusman!Ты продвинул мою работу на сто,нет на тысячу стае!Еще раз сенкс!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 8 2006, 08:55
Сообщение #2382


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



Хотел уточнить что данная фун-ция, появляется только в версии 1.67. (IMG:style_emoticons/kolobok_light/wink3.gif)

Сообщение отредактировал Dik Morris - Jul 8 2006, 12:04
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Zirrex
сообщение Jul 8 2006, 17:58
Сообщение #2383


Level 9
Иконки Групп

Класс: Друид
Характер: True Neutral
Раса: Эльф
NWN: Скриптинг [PW]
Амен



Кстати, с помощью этой функции можно делать индивидуальные вещи. Т.е. вначале сохранять в строковую переменную название вещи, а уж потом менять в момент создания.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Jul 8 2006, 21:20
Сообщение #2384


Level 3
*

Класс: Паладин
Характер: Lawful Good
Раса: Человек



Скажите как сделать чтобы при слове "далее" персонаж перемещался к указаному НПС. Тоесть.

ПОдоходит к капитану на одномо острове.

-Переправь меня на другой остров.
- не прооблема давай.
-далее.

и персонаж оказывается возле НПС капитана на другом острове.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Dik Morris
сообщение Jul 8 2006, 21:34
Сообщение #2385


Вечно меняющийся
Иконки Групп

Класс: Монах
Характер: True Neutral
Раса: Человек
NWN: Скриптинг [Sn]



DarkDeivel, подобные ситуации разбираются очень часто, используй поиск.

Нашел, меньше чем за полминуты. Читать.

Сообщение отредактировал Dik Morris - Jul 8 2006, 21:34
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 94 95 96 97 98 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28th April 2025 - 16:08