Jump to content

Массив ли?


Recommended Posts


  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   0
  • Joined:  05/19/12
  • Last Seen:  

Доброе время суток всем. Сегодня делал для себя НПС, который будет показывать спецэффекты по очереди, либо с какого то определенного номера. И подумал, а было бы удобно, если бы можно было особо понравившиеся эффекты сохранять, ячтобы можно было выбрать Добавить в Избранное. Вылазит @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;
}
}

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

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  13
  • Topics Per Day:  0.00
  • Content Count:  106
  • Reputation:   3
  • Joined:  01/01/12
  • Last Seen:  

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

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   0
  • Joined:  05/19/12
  • Last Seen:  

#
# 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;

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

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  14
  • Topics Per Day:  0.00
  • Content Count:  407
  • Reputation:   159
  • Joined:  11/18/11
  • Last Seen:  

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

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   0
  • Joined:  05/19/12
  • Last Seen:  

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

*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");

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

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

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  13
  • Topics Per Day:  0.00
  • Content Count:  106
  • Reputation:   3
  • Joined:  01/01/12
  • Last Seen:  

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

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

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
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  14
  • Topics Per Day:  0.00
  • Content Count:  407
  • Reputation:   159
  • Joined:  11/18/11
  • Last Seen:  

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

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  13
  • Topics Per Day:  0.00
  • Content Count:  106
  • Reputation:   3
  • Joined:  01/01/12
  • Last Seen:  

Всё равно, мне кажется с базой будет лучше :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  12
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   0
  • Joined:  05/19/12
  • Last Seen:  

http://pastebin.com/sQCB7uTh - В общем я загнался) В ручную все делал без всяких там баз) Замучался ппц
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  13
  • Topics Per Day:  0.00
  • Content Count:  106
  • Reputation:   3
  • Joined:  01/01/12
  • Last Seen:  

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

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

Edited by Oxxy
Link to comment
Share on other sites

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.

×
×
  • Create New...