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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 94 95 96 97 98 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
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
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Noah
сообщение Jul 8 2006, 21:42
Сообщение #2386


Level 5
**

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



QUOTE(DarkDeivel @ Jul 8 2006, 21:20) [snapback]87410[/snapback]

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

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

-Переправь меня на другой остров.Заранее установи точку прыжка(оwp).
- не прооблема давай.
-далее.
Здесь добавь скрипт:assigncommand(oPC,actionjumptoobject(oWp));

и персонаж(oPC) оказывается возле НПС капитана на другом острове(тут wp).

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DarkDeivel
сообщение Jul 8 2006, 22:20
Сообщение #2387


Level 3
*

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



QUOTE(Dik Morris @ Jul 8 2006, 21:34) [snapback]87413[/snapback]

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

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

Все нашле СпС.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DARKKK
сообщение Jul 8 2006, 22:34
Сообщение #2388


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Я вот недавно сел за Тулсет. и вот.

как сделать чтобы появилось строчка в диалоге при наличии 20 Animal Bone(в рюкзаке).
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
azathoth
сообщение Jul 9 2006, 03:06
Сообщение #2389


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

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Нежить
NWN: Скриптинг [Sn]



Cтавишь у нужной строки на Text Appears When... скрипт типа такого:
NSS
int Match(a, с)
{
    return (a == с);
}

int GetNumItemsInInventory(object oInventory = OBJECT_SELF, string sTag = "*")
{
    int nNum = 0;
    object oItem = GetFirstItemInInventory(oInventory);
    while (GetIsObjectValid(oItem))
    {
        if (Match(GetTag(oItem), sTag))
        {
            nNum += GetItemStackSize(oItem);
        }

        oItem = GetNextItemInInventory(oInventory);
    }

    return nNum;
}

int StartingConditional()
{
    object oPC = GetPCSpeaker();
    int n = GetNumItemsInInventory(oPC, "ТЭГ_ЭТОЙ_САМОЙ_КОСТИ");
    return (n >= 20);
}


По-моему этот вопрос разбирали в этой теме уже несколько раз, ты наверняка наткнулся бы на ответ пролистав тему (а заодно и на множество других крайне полезных вещей) и соседние, что настоятельно советую перед тем как спрашивать: "ух-хух, а как забрать 20 костей?".

----

P.S. Глюка (IMG:style_emoticons/kolobok_light/smile.gif)
пишу: int Match(a, в);
выдает: int Match(a, (IMG:style_emoticons/kolobok_light/dirol.gif) ;

Сообщение отредактировал azathoth - Jul 9 2006, 03:09
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jul 9 2006, 05:19
Сообщение #2390


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Да, там смайлы не парсятся, точнее парсятся... Как лечить я хз (IMG:style_emoticons/kolobok_light/pardon.gif)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 30th April 2025 - 05:12