Jump to content

Recommended Posts

Posted

Доброе время суток всем. Сегодня делал для себя НПС, который будет показывать спецэффекты по очереди, либо с какого то определенного номера. И подумал, а было бы удобно, если бы можно было особо понравившиеся эффекты сохранять, ячтобы можно было выбрать Добавить в Избранное. Вылазит @input$, Пишешь Название, потом описание. И нпс сохраняет эту инфу. Потом у него можно выбрать Избранное, и там в формате: ID;Название;Описание выводилась сохраненная информация.

Это же можно делать не создавая новую таблицу в базе?

Вот скрипт:

prt_fild08.gat,123,68,4 script Спецэффект 467,{
mes "[Спецэффект]";
mes "Здравствуйте. Вы хотите просмотреть эффекты или посмотреть список избранных предметов?";
next;
switch(select("Посмотреть эффекты:Избранное:Выход")){
 case 1:
  mes "[Спецэффект]";
  mes "Приступаем...";
  set .circle,0;
  next;
  M_circle:
  if(.circle == 18) set .circle,20;
  if(.circle == 19) set .circle,20;
  set .circle,.circle+1;
  next;
  mes "[Спецэффект]";
  mes "Номер спецэффекта:";
  mes "== == == == == == == == == == == ";
  mes "							^00aa00"+.circle+"^000000";
  mes "== == == == == == == == == == == ";
  specialeffect2 .circle;
  switch(select("Следущий:Перейти к...:Сохранить:Отмена")){
case 1: goto M_circle;
case 2: L_inp: input @inp;
 if (@inp <1 || @inp > 700) { next; mes "[Спецэффект]"; mes "Вы ввели ^00aa00"+@inp+"^000000. Это неверный номер спецэффекта."; mes "Нужно вводить значения от 1 до 700."; goto L_inp; }
 set .circle,@inp-1;
 goto M_circle;
case 3:
 mes "[Спецэффект]";
 mes "";
case 4: close; end;
  }
 case 2:
  // ???
  // ???
  // ???
 case 3: close; end;
}
}

Заранее спасибо =)

Posted

Можно, поищи Стилиста с сохранением покрасок, но описание / название ХыЗы как сделать :) Мне кажется лучше было бы через базу, мороки меньше, гг.

Posted

#
# Table structure for table `gm_table`
#

CREATE TABLE `gm_table` (
 `account_id` int(11) unsigned NOT NULL default '0',
 `id_effect` smallint(6) unsigned NOT NULL default '1',
 `name_effect` varchar(30) NOT NULL default '',
 `description` varchar(200) NOT NULL default '',
 PRIMARY KEY  (`account_id`)
) ENGINE=MyISAM;

Как сделать обращения к базе?)

Posted

Зачем делать отдельную таблицу для такого простого скрипта? Используйте динамические переменные, к примеру. Команды setd, getd

Posted

---------------------------------------

*setd "<имя переменной>",<значение>;

Работает примерно как set, просто имя переменной идентифицируется как строка.
Эта команда эквивалентна:
set getd("variable name"),<value>;

Пример:
set $var$, "Поринг";

setd "$var$", "Попоринг";
mes $var$; // Будет возвращено Попоринг.

setd "$" + $var$ + "123$", "Попоринг крут";
mes $Poporing123$; // Будет возвращено Попоринг крут

---------------------------------------

*getd("<variable name>")


Возвращает ссылку в переменную, имя может быть построено динамически.
См. раздел setd для использования.

Пример:
set getd("$varRefence"), 1;
set @i, getd("$pikachu");

---------------------------------------

Чем мне в данной ситуации может помочь эта команда, я что- то не понимаю?)

Posted (edited)

И йа тоже. Обращение к базе сделать легко :)

При добавлении в Избранное делаем примерно так:

mes "Введите ID эффекта";
input @effectid;
if(...)
set effectid, @effectid;
mes "Введите название эффекта";
input @effectname;
if(...)
set effectname, @effectname;
mes "Введите описание эффекта";
input @effectdesc;
if(...)
set desc, @effectdesc;

Если всё хорошо, делаем запрос

query_sql "INSERT INTO `gm_table` (`account_id`,`id_effect`,`name_effect`,`description`) VALUES (`escape_sql(getcharid(3))`,`escape_sql(effectid)`,`(escape_sql(effectname)`,`escape_sql(desc)`)";

Если будут ошибки с запросом, пиши

Edited by Oxxy
Posted

Дико извиняюсь :) Совсем не это имел в виду. Массив как раз и сохранит такие данные.

Posted (edited)

Омг, STOP USING GLOBAL VARIABLES. Ты чего натворил) Нельзя ставить $var т.к это глобальная переменная и её будет изменять КАЖДЫЙ игрок, например Игрок 1 забиндил себе ячейку, а игрок 2 её же изменил на свою. Если не можешь массивом, сделай как я, ЗАЧЕМ УСЛОЖНЯТЬ РАБОТУ?) Я тебе уже всё сделал практически, гг

Ужасный скрипт, зачем 1090 строк, ололо

Edited by Oxxy

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...