Sparrow Posted June 27, 2012 Group: Members Topic Count: 12 Topics Per Day: 0.00 Content Count: 34 Reputation: 0 Joined: 05/19/12 Last Seen: September 1, 2013 Share Posted June 27, 2012 Доброе время суток всем. Сегодня делал для себя НПС, который будет показывать спецэффекты по очереди, либо с какого то определенного номера. И подумал, а было бы удобно, если бы можно было особо понравившиеся эффекты сохранять, ячтобы можно было выбрать Добавить в Избранное. Вылазит @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; } } Заранее спасибо =) Quote Link to comment Share on other sites More sharing options...
Oxxy Posted June 27, 2012 Group: Members Topic Count: 13 Topics Per Day: 0.00 Content Count: 106 Reputation: 3 Joined: 01/01/12 Last Seen: March 29, 2023 Share Posted June 27, 2012 Можно, поищи Стилиста с сохранением покрасок, но описание / название ХыЗы как сделать Мне кажется лучше было бы через базу, мороки меньше, гг. Quote Link to comment Share on other sites More sharing options...
Sparrow Posted June 27, 2012 Group: Members Topic Count: 12 Topics Per Day: 0.00 Content Count: 34 Reputation: 0 Joined: 05/19/12 Last Seen: September 1, 2013 Author Share Posted June 27, 2012 # # 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; Как сделать обращения к базе?) Quote Link to comment Share on other sites More sharing options...
Lilith Posted June 27, 2012 Group: Members Topic Count: 14 Topics Per Day: 0.00 Content Count: 407 Reputation: 159 Joined: 11/18/11 Last Seen: November 15, 2014 Share Posted June 27, 2012 Зачем делать отдельную таблицу для такого простого скрипта? Используйте динамические переменные, к примеру. Команды setd, getd Quote Link to comment Share on other sites More sharing options...
Sparrow Posted June 27, 2012 Group: Members Topic Count: 12 Topics Per Day: 0.00 Content Count: 34 Reputation: 0 Joined: 05/19/12 Last Seen: September 1, 2013 Author Share Posted June 27, 2012 --------------------------------------- *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"); --------------------------------------- Чем мне в данной ситуации может помочь эта команда, я что- то не понимаю?) Quote Link to comment Share on other sites More sharing options...
Oxxy Posted June 27, 2012 Group: Members Topic Count: 13 Topics Per Day: 0.00 Content Count: 106 Reputation: 3 Joined: 01/01/12 Last Seen: March 29, 2023 Share Posted June 27, 2012 (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 June 27, 2012 by Oxxy Quote Link to comment Share on other sites More sharing options...
Lilith Posted June 27, 2012 Group: Members Topic Count: 14 Topics Per Day: 0.00 Content Count: 407 Reputation: 159 Joined: 11/18/11 Last Seen: November 15, 2014 Share Posted June 27, 2012 Дико извиняюсь Совсем не это имел в виду. Массив как раз и сохранит такие данные. Quote Link to comment Share on other sites More sharing options...
Oxxy Posted June 27, 2012 Group: Members Topic Count: 13 Topics Per Day: 0.00 Content Count: 106 Reputation: 3 Joined: 01/01/12 Last Seen: March 29, 2023 Share Posted June 27, 2012 Всё равно, мне кажется с базой будет лучше Quote Link to comment Share on other sites More sharing options...
Sparrow Posted June 27, 2012 Group: Members Topic Count: 12 Topics Per Day: 0.00 Content Count: 34 Reputation: 0 Joined: 05/19/12 Last Seen: September 1, 2013 Author Share Posted June 27, 2012 http://pastebin.com/sQCB7uTh - В общем я загнался) В ручную все делал без всяких там баз) Замучался ппц Quote Link to comment Share on other sites More sharing options...
Oxxy Posted June 27, 2012 Group: Members Topic Count: 13 Topics Per Day: 0.00 Content Count: 106 Reputation: 3 Joined: 01/01/12 Last Seen: March 29, 2023 Share Posted June 27, 2012 (edited) Омг, STOP USING GLOBAL VARIABLES. Ты чего натворил) Нельзя ставить $var т.к это глобальная переменная и её будет изменять КАЖДЫЙ игрок, например Игрок 1 забиндил себе ячейку, а игрок 2 её же изменил на свою. Если не можешь массивом, сделай как я, ЗАЧЕМ УСЛОЖНЯТЬ РАБОТУ?) Я тебе уже всё сделал практически, гг Ужасный скрипт, зачем 1090 строк, ололо Edited June 27, 2012 by Oxxy Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.