Автор: Kill Spirit: Дата: 12.08.2010
Реализация: Kill Spirit
ВНИМАНИЕ!!! Кастомные айди.
prontera,164,163,3 script Аренда вещей 86,{
set .@npc1Name$,"[^0000FF Аренда вещей ^000000]";
mes .@npc1Name$;
mes "Приветствую вас!";
next;
if (getgmlevel()>=99) {
mes .@npc1Name$;
mes "Здраствуйте администратор";
switch(select("Обычное меню:Бесплатное меню:Сделать аренду бесплатной:Выйти")){
case 1:
goto L_MAINMENU;
case 2:
goto L_MAINMENU2;
case 3:
mes .@npc1Name$;
mes "Точно?";
if(select("Да:Нет")==2){close;}
next;
if($arendasellno==1){mes .@npc1Name$; mes "Бесплатная аренда уже включена, выключить?"; if(select("Да:Нет")==2){close;} next; set $arendasellno,0; close;}
set $arendasellno,1;
mes .@npc1Name$;
mes "Сделано";
close;
case 4:
mes .@npc1Name$;
mes "Удачного дня!";
close;
}
}
if($arendasellno==1){goto L_MAINMENU2;}
L_MAINMENU:
mes .@npc1Name$;
mes "У меня можно арендовать некоторые вещи на 48 часов.";
mes "";
mes "* Время продолжает идти, даже если вы не играете персонажем.";
next;
mes .@npc1Name$;
mes "Стоимость Ring Of Power: 300кк Zeny За 1 шт.";
mes "";
mes "Стоимость Sleipnirs: 150кк Zeny За 1 шт.";
mes "";
mes "Стоимость Holy Guard: 400кк Zeny За 1 шт.";
if(select("Просмотр списка:Пройти мимо")==2){close;}
next;
mes .@npc1Name$;
mes "Хорошо, но сначало ознакомтесь с правилами аренды, чтобы потом не было вопросов к администрации.";
next;
mes .@npc1Name$;
mes "Вещь нельзя перекинуть на другого персонажа.";
mes "";
mes "А тоесть..если вы арендовали вещь этим персонажем, то передать на другого, у вас уже не получится.";
next;
mes .@npc1Name$;
mes "По истечению срока, вещь удаляется автоматически.";
next;
mes .@npc1Name$;
mes "Вы согласны на данные условия?";
if(select("Да:Нет")==2){close;}
switch(select("Megingjard:Ring Of Vitality:Ring Of Dexterity:Ring Of Intelligence:Sleipnirs:Holy Guard:Выйти")){
case 1:
if(Zeny<300000000){mes .@npc1Name$; mes "У вас нету, необходимой суммы"; close;}
set Zeny,Zeny-300000000;
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28000,172800;
close;
case 2:
if(Zeny<300000000){mes .@npc1Name$; mes "У вас нету, необходимой суммы"; close;}
set Zeny,Zeny-300000000;
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28003,172800;
close;
case 3:
if(Zeny<300000000){mes .@npc1Name$; mes "У вас нету, необходимой суммы"; close;}
set Zeny,Zeny-300000000;
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28004,172800;
close;
case 4:
if(Zeny<300000000){mes .@npc1Name$; mes "У вас нету, необходимой суммы"; close;}
set Zeny,Zeny-300000000;
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28005,172800;
close;
case 5:
if(Zeny<150000000){mes .@npc1Name$; mes "У вас нету, необходимой суммы"; close;}
set Zeny,Zeny-150000000;
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28001,172800;
close;
case 6:
if(Zeny<400000000){mes .@npc1Name$; mes "У вас нету, необходимой суммы"; close;}
set Zeny,Zeny-400000000;
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28002,172800;
close;
case 7:
mes .@npc1Name$;
mes "Удачного дня!";
close;
}
L_MAINMENU2:
mes .@npc1Name$;
mes "У меня можно арендовать некоторые вещи на 48 часов.";
mes "";
mes "* Время продолжает идти, даже если вы не играете персонажем.";
next;
mes .@npc1Name$;
mes "Стоимость Аренды: Бесплатно";
if(select("Просмотр списка:Пройти мимо")==2){close;}
next;
mes .@npc1Name$;
mes "Хорошо, но сначало ознакомтесь с правилами аренды, чтобы потом не было вопросов к администрации.";
next;
mes .@npc1Name$;
mes "Вещь нельзя перекинуть на другого персонажа.";
mes "";
mes "А тоесть..если вы арендовали вещь этим персонажем, то передать на другого, у вас уже не получится.";
next;
mes .@npc1Name$;
mes "По истечению срока, вещь удаляется автоматически.";
next;
mes .@npc1Name$;
mes "Вы согласны на данные условия?";
if(select("Да:Нет")==2){close;}
switch(select("Megingjard:Ring Of Vitality:Ring Of Dexterity:Ring Of Intelligence:Sleipnirs:Holy Guard:Выйти")){
case 1:
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28000,86400;
close;
case 2:
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28003,86400;
close;
case 3:
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28004,86400;
close;
case 4:
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28005,86400;
close;
case 5:
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28001,86400;
close;
case 6:
mes .@npc1Name$;
mes "Удачного дня!";
rentitem 28002,86400;
close;
case 7:
mes .@npc1Name$;
mes "Удачного дня!";
close;
}
}
Автор: Alort: Дата: 01.15.2011
[Error]: npc_parsesrcfile: Unknown syntax in file 'npc/custom/arenda_npc.txt', l
ine '3'. Stopping...
* w1=prontera,164,163,3 script └Ёхэфр тх∙хщ 86,{
* w2=
* w3=
* w4=
Вот такая ошибка вылезает в мап сервере при попыике загрузить этот скрипт, в чем проблема?
Автор: DiS[IP]: Дата: 01.15.2011
[FONT=Lucida Console]Табы поставь.[/FONT]
Автор: Alort: Дата: 01.15.2011
А по какому принцыпу их ставить?
Автор: Renegade: Дата: 01.15.2011
prontera,164,163,3[TAB]script[TAB]Аренда вещей[TAB]86,{
Автор: MaXi: Дата: 01.15.2011
Цитата Alort;30399]А по какому принцыпу их ставить?
Автор: Alort: Дата: 01.15.2011
Но неплохо бы ссылочку где можно про это прочитать или типо того, что бы не надоедать с табами)
Автор: MaXi: Дата: 01.15.2011
Dis[IP] не мог бы сделать скрипт не за зени а за Кэш деньги? буду очень тебе блпгодарен!
Alort не понял вопроса! про табы почитать?Оо
Автор: Alort: Дата: 01.15.2011
Цитата MaXi;30403]Dis[IP:
Alort не понял вопроса! про табы почитать?Оо
Автор: defo: Дата: 01.16.2011
Cмотрим: prontera,164,163,3 [tab] script [tab] Аренда вещей [tab] 86,{
в нашем случае здесь нужно 3 таба(кнопка под буквой "Ё").
берём, удаляем надписи [tab] и пространство между 164,163,3 и script, что бы символы получились слитно, дальше наводим курсор меджу 3 и s, нажимаем, и ставим TAB, надеюсь так то понятно?
Автор: Alort: Дата: 01.16.2011
Цитата defo;30412]Cмотрим: prontera,164,163,3 [tab] script [tab] Аренда вещей [tab:
86,{
в нашем случае здесь нужно 3 таба(кнопка под буквой "Ё").
берём, удаляем надписи [tab] и пространство между 164,163,3 и script, что бы символы получились слитно, дальше наводим курсор меджу 3 и s, нажимаем, и ставим TAB, надеюсь так то понятно?
Автор: MaXi: Дата: 01.16.2011
Цитата Alort;30457:
Понятно, что ничего не понятно :D
Автор: Alort: Дата: 01.16.2011
Цитата MaXi;30468:
Короче говоря тоже самый что и space только таб специальный)
Автор: Kill Spirit: Дата: 01.16.2011
Найди на клавиатуре кнопку TAB, она под буквой Ё
Выдели область между prontera,164,163,3scriptАренда вещей86 (отмечено красным) и нажми между ними кнопочку таб.
Автор: Ragen: Дата: 01.17.2011
Информация из ea\doc\script_commands.txt
Сдесь описание в каких случаях и как ставить Tabы
Немного не по русски но все впринципе понятно
Script loading structure
------------------------
Scripts are loaded by the map server as referenced in the 'conf/map_athena.conf'
configuration file, but in the default configuration, it doesn't load any script
files itself. Instead, it loads the file 'npc/scripts_main.conf' which itself
contains references to other files. The actual scripts are loaded from txt
files, which are linked up like this:
npc:
Any line like this, invoked, ultimately, by 'map_athena.conf' will load up the
script contained in this file, which will make the script available. No file
will get loaded twice, to prevent possible errors.
Another configuration file option of relevance is:
delnpc:
This will unload a specifiled script filename from memory, which, while
seemingly useless, may sometimes be required.
Whenever '//' is encountered in a line upon reading, everything beyond this on
that line is considered to be a comment and is ignored. This works wherever you
place it.
Upon loading all the files, the server will execute all the top-level commands
in them. No variables exist yet at this point, no commands can be called other
than those given in this section. These commands set up the basic server script
structure - create NPC objects, spawn monster objects, set map flags, etc. No
code is actually executed at this point except them. The top-level commands the
scripting are pretty confusing, since they aren't structured like you would
expect commands, command name first, but rather, normally start with a map name.
What's more confusing about the top-level commands is that most of them use a
tab symbol to divide their arguments.
To prevent problems and confusion, the tab symbols are written as '%TAB%'
throughout this document, even though this makes the text a bit less readable.
Using an invisible symbol to denote arguments is one of the bad things about
this language, but we're stuck with it for now. :)
Here is a list of valid top-level commands:
** Set a map flag:
Автор: Alort: Дата: 01.17.2011
Вот, Regen респект, именно это я и хотел, то что нужно!
Автор: Asuma: Дата: 01.17.2011
Цитата Dis[IP];27228:
[FONT=Lucida Console]Крутой говнокод...:lol:
Надо писать код так,чтобы люди читающие его могли разобраться в нем.Вместо твоих 184 строк вышло 87.Думаю разницу ты заметишь сразу.
Вот так этот скрипт лучше смотрится:[/FONT]
// Основа и идея скрипта by Kill Spirit
// Нормальный человечный код by DiS[IP]
prontera,164,163,3 script Аренда вещей 86,{
set .@npc$,"[^0000FF Аренда вещей ^000000]";
if(getgmlevel()==99){
mes .@npc$;
mes "Привет,администратор!";
switch(select("Обычное меню:Сделать аренду бесплатной:Выход")){
case 1:
goto L_menu;
case 2:
mes .@npc$;
mes "Вы уверены?";
if(select("Да:Нет")==2){ close; }
next;
if($arenda==1){mes .@npc$; mes "Бесплатная аренда уже включена, выключить?"; if(select("Да:Нет")==2){ close; } set $arenda,0; close; }
mes .@npc$;
mes "Готово";
set $arenda,1;
close;
case 3:
close;
}
}
mes .@npc$;
mes "Привет,"+strcharinfo(0)+"!";
next;
goto L_menu;
L_menu:
mes .@npc$;
mes "У меня можно арендовать некоторые вещи на 48 часов.";
mes "*Время продолжает идти,даже если вы не играете персонажем.";
next;
if($arenda==0){
mes .@npc$;
mes "Стоимость Ring Of Power: 300кк Zeny За 1 шт.";
mes "Стоимость Sleipnirs: 150кк Zeny За 1 шт.";
mes "Стоимость Holy Guard: 400кк Zeny За 1 шт.";
} else { mes "Стоимость Аренды: Бесплатно"; }
next;
mes .@npc$;
mes "Ознакомтесь с правилами аренды, чтобы потом не было вопросов к администрации.";
next;
mes .@npc$;
mes "Вещь нельзя перекинуть на другого персонажа.";
mes "А то есть..если вы арендовали вещь этим персонажем,то передать на другого,у вас уже не получится.";;
mes "По истечению срока,вещь удаляется автоматически.";
next;
mes .@npc$;
mes "Вы согласны на данные условия?";
if(select("Да:Нет")==2){ close; }
mes "Какую вещь хотите взять в аренду?";
set @disip,select("Megingjard",
"Ring Of Vitality",
"Ring Of Dexterity",
"Ring Of Intelligence",
"Sleipnirs",
"Holy Guard");
setarray @DISID[0],20800,300000000,
20803,300000000,
20804,300000000,
28005,300000000,
28001,150000000,
28002,400000000;
setarray @DISIPID[0],20800,0,
20803,0,
20804,0,
28005,0,
28001,0,
28002,0;
set @disip,@disip - 1;
next;
mes .@npc$;
mes "Вы уверены что хотите взять эту вещь в аренду?";
if(select("Да:Нет")==2){ close; }
if($arenda==0){
if(Zeny<@DISID[@disip*2+1]){ next; mes .@npc$; mes "А где деньги?Приходи когда будут!"; close; }
mes .@npc$;
mes "Удачного дня!";
set Zeny,Zeny-@DISID[@disip*2+1];
rentitem @DISID[@disip*2],172800;
close;
} else {
mes .@npc$;
mes "Удачного дня!";
rentitem @DISIPID[@disip*2],86400;
close;
}
}
Автор: Cole McCormick: Дата: 01.17.2011
Сможешь лучше?:)
Автор: Asuma: Дата: 01.17.2011
Цитата Naota;30551:
Сможешь лучше?:)