-
Постов
27 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные b72g
-
-
Привет всем, вообщем есть задумка о реализации комманды @reloadscriptname. Дело в том что обычный @reloadscript перезагружает все скрипты в афене, всех мобов, нпц и.т.д. Но очень часто нужно перезагрузить всего 1-2 скрипта, тем более если сервер уже рабочий, то перезагрузка всего очень помешает игрокам, тем более все мобы в том числе и МВП заного переродятся на картах.
Вообщем хотел бы узнать, может кто то знает как реализовать такую комманду, которая бы перезагружала 1 скрипт ( ведь он занимает в перезагрузке долю секунды, чем все 800 и более НПЦ )
К примеру, чтобы она перезагружала
@reloadscriptname [ имя нпц ]
или если это проблемотично, то.
@reloadscriptfloder [ и путь папки, с txt для перезагрузки ]
Вообщем если кто знает как сделать подобную комманду напишите пожалуйста, т.к в сорцы я полез совсем недавно и мне еще предстоит многому научиться..
Как всегда идей много , а знаний для реализации не хватает
Заранее спасибо
-
>> P.S Во второй менюшке null вконце
потому, что
for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) {
set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";
}
<= getarraysize(.insertids);
надо поставить < getarraysize(.insertids);
А вставляется не то, что надо, потому что переменная .@choose используется там, где надо и там, где не надо Индекс массива с нужным камнем находится в переменной .@insert
delitem .@choose + .baseid, 1;
delitem .insertids[.@insert], 1;
getitem2 .@choose + .baseid, 1,1,0,0,.insertids[.@insert] ,0,0,0;
P.S. Правильно, что взял getitem2 вместо atcommand (:
Спасибо за помощь.
-
Небольшой вопрос по добавлению текстур.
Как можно добавить текстурку в разделе View?
вот пример: http://imgdepo.ru/id/i6344662
И как добавить текстуру, чтобы она была видна внутри итема.
вот пример: http://imgdepo.ru/id/i6344663
-
Вообщем, почему то стоуны неадекватно вставляются, выбираешь один, вставляется другой...
Получается так..
1 итем - 2 камень (если выбирать 1 камень)
2- итем - 3 камень (если выбирать 1 камень)
3 итем - 5 камень (если выбирать 1 камень)
4 итем - 6 камень (если выбирать 1 камень)
5 итем и слудующие - ничего
Как это исправить?
P.S Во второй менюшке null вконце
prontera,151,177,5 script Wing Man 115,{
set .baseid, 20003;
set .countids, 105; // Количество вещей
for (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {
set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";
}
mes "Выбери крылья";
set .@choose, select(.@menu$);
next;
setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;
set .@menu$, "";
for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) {
set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";
}
mes "Я теперь выбери стоун";
set .@insert, select(.@menu$) - 1;
next;
delitem .@choose + .baseid, 1;
delitem .@choose + .insertids, 1;
getitem2 .@choose + .baseid, 1,1,0,0,.@choose + .insertids ,0,0,0;
close;
}
-
поработай детально с каждой переменной. Как меняется на что и чего нужно получить нам. У тебя есть переменные взятые с неба, вот и не работает.
prontera,151,177,5 script Wing Man 115,{
set .baseid, 20000;
set .countids, 108; // Количество вещей
for (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {
set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";
}
mes "Выбери крылья";
set .@choose, select(.@menu$) -1;
next;
setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;
set .@menu$, "";
for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) {
set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";
}
mes "Я теперь выбери стоун";
set .@insert, select(.@menu$) - 1;
next;
delitem .@choose + .baseid, 1;
atcommand "@item2"+" "+@baseid[.@i]"+" "+1 1 0 0"+" "+@insertids[.@j]"+" "+0 0 0";
close;
}
Попробовал комманду сделать, не пашет. Делал по разному. всеравно че то..
подумай над этим
Спасибо что помучила меня. Вообщем попарился и получилось.
getitem2 .@choose + .baseid, 1,1,0,0,.@choose + .insertids ,0,0,0;
-
prontera,151,177,5 script Wing Man 115,{
set .baseid, 20000;
set .countids, 108; // Количество вещей
for (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {
set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";
}
mes "Выбери крылья";
set .@choose, select(.@menu$);
next;
setarray .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;
set .@menu$, "";
for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) {
set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";
}
mes "Я теперь выбери стоун";
set .@insert, select(.@menu$) - 1;
next;
delitem .@choose + .baseid, 1;
atcommand "@item2"+" "+@baseid[.@i]"+" "+1 1 0 0"+" "+@insertids[.@j]"+" "+0 0 0";
close;
}
Попробовал комманду сделать, не пашет. Делал по разному. всеравно че то..
-
atcommand "@item2"+" "+@hatid[.@j] 1 1 0 0"+" "+@stoneid[.@i]"+" "+0 0 0";
Внимательнее надо быть.
ага, поправила, вообще еще путаюсь, что надо выносить за кавычки, а что нет
Вот попытался сделать, чтобы он выдавал за 3 стоуна, крылья со стоуном внутри, но нпц просто пропало..
причем тут мой скрипт? у тебя другая задача, другие переменные И другая локация. Тем более что его тоже переделать нужно, хоть он и работает без переделки
Да думал может с ним, что получиться сделать...
Первый что делал вообще не нажимается.. Ну я там нагородил очень.
prontera,151,177,5 script Wing Man 115,{
set .baseid, 20000;
set .countids, 108; // Количество вещей
for (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {
set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";
}
set .insertids[0], 1991, 1992, 1993, 1994, 1995, 1996;
for (set .@j, 0; .@j <= getarraysize(.insertids); set .@j, .@j + 1) {
set .@menu$, .@menu$+getitemname(.insertids[.@j]) + ":";
}
mes "Выбери крылья";
set .@choose, select(.@menu$);
next;
mes "Я теперь выбери стоун";
set .@insert, select(.@menu$) - 1;
next;
getitem .@choose + .baseid, 1; // Получает выбранный предмет в инвентарь
close;
}
-
Да координаты есть, просто не вписал сюда.
-
Вот попытался сделать, чтобы он выдавал за 3 стоуна, крылья со стоуном внутри, но нпц просто пропало..
//Настройка. При добавлении большего количества предметов, не забывать добавлять case'ы.
setarray @hatid[0],20001,20002,20003,20004,20005,20006,20007,20008,20009,20010,20011,20012,20013,20014;
setarray @stoneid[0],1991,1991,1991,1991,1991,1991,1991,1991,1991,1991,1991,1991,1991,1991;
setarray @loot01id[0],1991,2,3,4,5,6,7,8,9,10,11,12,13,14;
setarray @loot01cnt[0],1,2,3,4,5,6,7,8,9,10,11,12,13,14;
setarray @loot02id[0],1991,2,3,4,5,6,7,8,9,10,11,12,13,14;
setarray @loot02cnt[0],1,2,3,4,5,6,7,8,9,10,11,12,13,14;
setarray @loot03id[0],1991,2,3,4,5,6,7,8,9,10,11,12,13,14;
setarray @loot03cnt[0],1,2,3,4,5,6,7,8,9,10,11,12,13,14;
setarray @customvar$[0],"1","2","3","4","5","6","7","8","9","10","11","12","13","14";
setarray @customvarcnt[0],1,2,3,4,5,6,7,8,9,10,11,12,13,14;
for(set .@j,0; .@j<getarraysize(@hatid) ; set .@j,.@j+1 )
{
set .@menu$,.@menu$+getitemname(@hatid[.@j])+":";
}
for(set .@i,0; .@i<getarraysize(@stoneid) ; set .@i,.@i+1 )
{
set .@menu$,.@menu$+getitemname(@stoneid[.@i])+":";
}
mes "[Костюмер]";
mes "Посмотри на мои шапочки!";
mes "Они не дают бонусов, не занимают место обычной шапки, зато очень красивые!";
switch(select(.@menu$)) {
case 1:
set .@j,0;
next;
set .@i,0;
break;
case 2:
set .@j,1;
next;
set .@i,1;
break;
case 3:
set .@j,2;
next;
set .@i,2;
break;
case 4:
set .@j,3;
next;
set .@i,3;
break;
case 5:
set .@j,4;
next;
set .@i,4;
break;
case 6:
set .@j,5;
next;
set .@i,5;
break;
case 7:
set .@j,6;
next;
set .@i,6;
break;
case 8:
set .@j,7;
next;
set .@i,7;
break;
case 9:
set .@j,8;
next;
set .@i,8;
break;
case 10:
set .@j,9;
next;
set .@i,9;
break;
case 11:
set .@j,10;
next;
set .@i,10;
break;
case 12:
set .@j,11;
next;
set .@i,11;
break;
case 13:
set .@j,12;
next;
set .@i,12;
break;
case 14:
set .@j,13;
next;
set .@i,13;
break;
}
//default: //
//set .@j,1;
mes "[Костюмер]";
mes "["+getitemname(@hatid[.@j])+"]";
mes "["+getitemname(@stoneid[.@i])+"]";
mes "Для этой костюмной шапочки необходимо:";
mes " "+getitemname(@loot01id[.@j])+" "+@loot01cnt[.@j]+" шт.";
mes " "+getitemname(@loot02id[.@j])+" "+@loot02cnt[.@j]+" шт.";
mes " "+getitemname(@loot03id[.@j])+" "+@loot03cnt[.@j]+" шт.";
next;
mes "[Костюмер]";
if (select( "Я собрал все необходимое!:Хорошо, я запомнил.") != 1) {mes "Приходи, когда захочешь."; close;}
if(countitem(@loot01id[.@j]) < @loot01cnt[.@j] || countitem(@loot02id[.@j]) < @loot02cnt[.@j] || countitem(@loot03id[.@j]) < @loot03cnt[.@j]) {
mes "У тебя нет достаточного количества вещей, чтобы получить шапочку. Возвращайся, когда соберешь все.";
close;
}
mes "[Костюмер]";
mes "Одну секунду...";
delitem @loot01id[.@j],@loot01cnt[.@j];
delitem @loot02id[.@j],@loot02cnt[.@j];
delitem @loot03id[.@j],@loot03cnt[.@j];
atcommand "@item2"+" "+@hatid[.@j] 1 1 0 0"+" "+@stoneid[.@i]"+" "+0 0 0";
next;
mes "[Костюмер]";
mes "Вуаля!";
mes "Носи с удовольствием!";
close;
}
-
atcommand "@item2"+" "+ @hatid[.@j];
Как можно в это значение присобачить 1 1 0 1 1991 0 0 0
чтобы в итоге было @item2 hatid 1 1 0 1 1991 0 0 0
И как можно сделать таблицу stoneid, чтобы туда входили значения 1991,1992,1993,1994,1995,1996
Чтобы cделать:
@item2 hatid 1 1 0 1 stoneid 0 0 0
-
Ребят что то я запутался. Может кто поработает со мной в реализации скрипта, у кого есть щас свободное время.
За помощь зачислю немного денег на любой кошелек. Напишите в skype: zavtrak11
-
set .baseid, 20000;
set .countids, 108; // Количество вещей
for (set .@i, 1; .@i <= .countids; set .@i, .@i + 1) {
set .@menu$, .@menu$+getitemname(.baseid + .@i) + ":";
}
set .@choose, select(.@menu$);
getitem .@choose + .baseid, 1; // Получает выбранный предмет в инвентарь
Спасибо!
В меню добавились все названия итемов!
Только вопрос как сделать, чтобы после выбора орп.итема, появлялось меню с итемами, которые бы вставлялись в 1 итем ( как карта )
-
1.Вообщем у меня не большая проблема с реализацией скрипта(npc). Вообщем в задумке сделать скрипт, который может считывать определенные иды итемов(которые есть у игрока в инвентаре или на себе) и чтобы они появлялись в меню нпц, после чего игрок выбирает определенный ид ( который тоже считывается при наличии ) и в итоге если все удачно, то в первый итем вставляется второй итем (как карта)
P.S Скрипт нужен по причине того, что карты не сортируются в слотах head, в оригинале игры 3 слота head ( голова, глаза, рот ) и карты такие как исила,ванберк и.т.д вставляются в любой слот head. В моем случае итем надевается в рот(3 слот head), И из-за того, что нельзя сделать карту, которая бы вставлялась только в рот(3 слот head) требуется реализовать нпц, который будет добавлять эти итемы в вещь.
Я начал писать скрипт, но в связи с тем, что нужно будет добавить более 100 итемов, в которые будут вставляться любые 6 карт очень долго. Поэтому хочу чтобы профессионалы в скриптинге подсказали как вбить иды для распознания(или добавить диапазон идов от 20001 до 20108) и чтобы они появлялись в меню. После выбора опр итема, выбирался итем для вставки в первый итем(который тоже бы считывался при наличии) и после успешной проверки, выдавался первый итем со вставкой во второй.
Вот скрипт, который начал писать: пока что добавил 1 итем и 6 вставок для него.
Очень прошу помощи для упрощения его.
prontera,151,177,5 script Wing Man 115,{
mes "[Wings Man]";
mes "Hello, I can embellish your wings!";
mes "Please choose your wings.";
next;
menu "Wings Of Loyalty",loyalty,"I Don't Have a Wings",LUnfathomable;
loyalty:
mes "[Wings Man]";
mes "Please choose your stone!";
next;
menu "Strong Wings Stone",str,"Fast Wings Stone",agi,"Clever Wings Stone",int,"Hardy Wings Stone",vit,"Accurate Wings Stone",dex,"Lucky Wings Stone",luk,"I Don't Have a Stone",LUnfathomable;
str:
mes "[Wings Man]";
if(countitem(20001) < 1 || countitem(1991) < 1 || Zeny < 0) goto LNotEnough;
delitem 20001,1;
delitem 1991,1;
set Zeny,Zeny-0;
mes "Have a nice day!";
atcommand "@item2 20001 1 1 0 0 1991 0 0 0";
mes ". . . . .";
mes "Enjoy being God of Rune Midgard!";
close;
agi:
mes "[Wings Man]";
if(countitem(20001) < 1 || countitem(1992) < 1 || Zeny < 0) goto LNotEnough;
delitem 20001,1;
delitem 1992,1;
set Zeny,Zeny-0;
mes "Have a nice day!";
atcommand "@item2 20001 1 1 0 0 1992 0 0 0";
mes ". . . . .";
mes "Enjoy being God of Rune Midgard!";
close;
int:
mes "[Wings Man]";
if(countitem(20001) < 1 || countitem(1993) < 1 || Zeny < 0) goto LNotEnough;
delitem 20001,1;
delitem 1993,1;
set Zeny,Zeny-0;
mes "Have a nice day!";
atcommand "@item2 20001 1 1 0 0 1993 0 0 0";
mes ". . . . .";
mes "Enjoy being God of Rune Midgard!";
close;
vit:
mes "[Wings Man]";
if(countitem(20001) < 1 || countitem(1994) < 1 || Zeny < 0) goto LNotEnough;
delitem 20001,1;
delitem 1994,1;
set Zeny,Zeny-0;
mes "Have a nice day!";
atcommand "@item2 20001 1 1 0 0 1994 0 0 0";
mes ". . . . .";
mes "Enjoy being God of Rune Midgard!";
close;
dex:
mes "[Wings Man]";
if(countitem(20001) < 1 || countitem(1995) < 1 || Zeny < 0) goto LNotEnough;
delitem 20001,1;
delitem 1995,1;
set Zeny,Zeny-0;
mes "Have a nice day!";
atcommand "@item2 20001 1 1 0 0 1995 0 0 0";
mes ". . . . .";
mes "Enjoy being God of Rune Midgard!";
close;
luk:
mes "[Wings Man]";
if(countitem(20001) < 1 || countitem(1996) < 1 || Zeny < 0) goto LNotEnough;
delitem 20001,1;
delitem 1996,1;
set Zeny,Zeny-0;
mes "Have a nice day!";
atcommand "@item2 20001 1 1 0 0 1996 0 0 0";
mes ". . . . .";
mes "Enjoy being God of Rune Midgard!";
close;
LNotEnough:
mes "Bring me a stone and wings!";
close;
LUnfathomable:
mes "[Wings Man]";
mes "Sorry. I can't help you.";
mes "Have a nice day!";
close;
}
Заранее спасибо
-
Добавь чтение из папки data и попробой сменить название папки с краозябрами через UnBollox
Вообщем разобрался со всем, спасибо за помощь
-
Вообщем текстурку добавил, еще и без lua (даже странно)
Путем добавления дерикторий, которые находил в ошибках.
-
Задифил .exe , чтобы показывало ошибки, выдает вот что: http://imgdepo.ru/id/i6332691
Видно, что он запрашивает другую директорию...
Как это исправить?
-
У меня почему то даже картинка итема не ставиться, как я щас разобрался lua только за отображение отвечает предмета на игроке.
Пишу в idnum2itemresnametable ид текстурки и она не отображается (пустое место), хотя стандартные все работают.
С чем это может быть связано?
Может что то в дифе клиента надо сделать?
Я ставил
Enable multiple GRFs
Load Lua Before Lub
Increase Headgear ViewID to 2000
создавал даже grf с текстурками и txt файлами и привязывал через data.ini, всеравно не пашет
может еще что то добавить надо?
-
ACCESSORY_CUSTOM_HAT = 874
1990,alphawings,Alpha Wings,5,,0,10,,10,,0,2147483647,7,2,1,,1,1,1041,{ bonus bAllStats,5; },{},{}
Они должны быть одинаковыми.... вроде...
Переставил на 874, сделал @reloaditemdb
Добавил еще раз итем, пытался перезаходить, всеравно таже шляпа
-
ID,DBName,ScreenName,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Class,Gender,Loc,wLV,eLV,
Refineable,View,{Script},{OnEquip_Script},{OnUnequip_Script}
1990,alphawings,Alpha Wings,5,,0,10,,10,,0,2147483647,7,2,1,,1,1,1041,{ bonus bAllStats,5; },{},{}
Что тут изменить нужно?
-
Вообщем попробовал добавить в lua итем. Сделал вот так.
В accessoryid.lua
ACCESSORY_CUSTOM_HAT = 874
accname.lua
[ACCESSORY_IDs.ACCESSORY_CUSTOM_HAT] = "_AlphaWings"
Потом переделал их в lub
В txt я проставил так.
в idnum2itemdesctable
1990#
Тестовые крылья.
Class :^777777 Wings^000000
Defense :^777777 10^000000
Weight :^777777 10^000000
Applicable Job :^777777 Every Job^000000
#
в idnum2itemdisplaynametable
1990#Alpha Wings#
в idnum2itemresnametable
1990#AlphaWings#
Описание шмотки есть и название поставлено, но сама шмотка прозрачная без спрайта и после её нажатия выкидывает error.
Подскажите может что не так сделал?
(Директории были сделаны правильно, все спрайты и текстуры в папке data)
data/sprite/¾ÆÀÌÅÛ/ далее там спрайты
data/sprite/¾ÆÀÌÅÛ/¿© далее спрайты
data/sprite/¾ÆÀÌÅÛ/³² далее спрайты
data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/Collection/ далее текстуры
data/texture/À¯ÀúÀÎÅÍÆäÀ̽º/item/ далее текстуры
-
Это я так понимаю гайд по добавлению спрайтов через ragexe?
-
Доброго времени суток всем.
Уже долго мучаюсь насчет добавления спрайтов в клиент. Вообщем хочу добавить несколько новых спрайтов для новых итемов, но все они не читаются, либо я делаю что-то не правильно.
Сам использовал Ragexe, версии PACKETVER 20100728 - 2010 07 28a, задифил его, поставил нужную библиотеку lua и все работало идеально. Но к сожалению не разобрался как добавлять спрайты.
Позже узнал, что для добавления спрайтов нужен Xray.exe
Еле нашел xray с которым заходит в игру. Это версия, которую я задифил на 2009-10-13a.
Истинное название - 2009-10-13aRagexeRE X-Ray
Но сам exe выдает куча lua ошибок ( под него библиотеку я не смог подходящую найти ) И когда я захожу в игре после целых туч ошибок у меня нету ни NPC, ни warper зон и на некоторых мапах выходит error.
Вообщем хотел бы узнать:
1.Как правильно добавлять спрайты, желательно без использования xray, к примеру с Ragexe 2010 07 28a версии.
2.Если это невозможно, то как правильно настроить xray, найти к нему нужную библиотеку. т.к все lua библиотеки , что я находил заканчивались на 2010 году. и один 2009, который не подошел. И как правильно с ним добавлять спрайты.
Заранее спасибо, кто разъяснит. Дело в том, что с клиентом я работал не так много и поэтому мне очень сложно разобраться. Разбираюсь уже несколько дней и в итоге модифицировать клиент, мне не удалось.
-
Доброго времени суток всем.
Не могли бы вы мне помочь со скриптом, который повышает level аккаунта ( именно GM level ) , но на определенное количество времени.
на 30, 60, 90 дней.
Сейчас я создаю скрипт, который будет давать ВИП Аккаунт на определенное количество времени.
Сам использую Eathena SVN SQL Trunk.
Заранее спасибо
-
Спасибо, а не подскажите как сделать, чтобы высвечивалось не zeny , а cash points. Чтобы было не видно визуальной скидки у мерчей?
@reloadscriptname
в Помощь в src
Опубликовано
Видимо я дурачок
Спасибо!