тема создана для обсуждения создания конфигов под jmc. скриптинг на макросах, vbscript, jscript, perl.
Конешно можете по праву считать меня краном но никогда не использовал скрипты. Может ктонить показать хоть какието простейшие основы и объяснить как они ваще пишуццо? А там мож осилю ченить. А то очень давно хочеццо научиться.
я раз писал скрипт чтобы при открывании дверей 2 буквы вводить (против всяких там "earring не является сумкой"): o [направнение]
но он у меня сразу же при втором запуске мада заглючил. может из-за того, что я его не туда сохранил.
может создадим тему "обучение" или в этой кто-нить расскажет?
основы скриптинга на "тинтине" и js расписаны на сайте-нубам
А мну бейсик нравится Он к регистру не чувствителен - это большой плюс для удобства кодинга.
ага, а еще он весь такой расплывчатый и склизкий
жаль С++ нет
Добавлено ([mergetime]1169739082[/mergetime]):
а коментить строки как-то можно?
ГДЕ?
ну в скриптах под жабу
если ты про макросы, то RTFM!!! ##, //, #nop
Здравствуйте!
Много времени провел в поисках хороших скриптов...
Но нашел лишь:несколько вариантов проигрывания *.wav/*.mp3 (к нему же плейлист), ПК лист, перехват теллов, игра в наперстники, запись лог файла (то же самое, что и #log - только добавили время и месяц буквами (что мне даж не очень и понравилось...)), было еще немного скриптов решающих проблемы одиночных пользователей...
Так же я нашел несколько разных туториалов, но все они достаточно однообразны... Хотелось бы чтобы люди выкладывали свои скрипты с целью показать, что они могли сделать, ведь у большого кол-ва персон постоянно возникают вопросы...
А теперь, вопрос ? )
Играя в мад, у меня в конфиге часто используется команда #sub, и при входе в игру, я всегда пишу лог (Персонаж-Дата (Время)). И логи выглядят не очень красиво, хотелось бы чтобы была возможность писать лог с заменами и т.д.
Слышал такое возможно сделать (если нет то извините)...
возможно
строку дропаешь (#logpass)
после чего добавляешь свою строку (#logadd)
Здравствуйте!
У меня вопросы по поводу скриптов...Я не слилен в познании язака...
У меня:
{commonlib.scr}
function variables(That)
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.OpenTextFile("settings//variables.conf",8);
file.WriteLine(""+That+"");
file.Close();
}
{variables_new.conf}
#scri variables ("")
#scri variables ("#nop ------ $DATE ------")
#scri variables ("")
#scri variables ("#variable {Expectationmessage} $Expectationmessage")
#scri variables ("#variable {triggers} $triggers")
#scri variables ("#variable {vomica} $vomica")
#scri variables ("#variable {weapon} $weapon")
#scri variables ("#variable {mmc} $mmc")
#scri variables ("#variable {acthp} $acthp")
#scri variables ("#variable {actmana} $actmana")
#scri variables ("#variable {prevmana} $prevmana")
#scri variables ("#variable {aim} $aim")
#scri variables ("#variable {aim1} $aim1")
#scri variables ("#variable {aim2} $aim2")
#scri variables ("#variable {aim3} $aim3")
#scri variables ("#variable {battleskill} $battleskill")
#scri variables ("#variable {battlespell} $battlespell")
#scri variables ("#variable {cast} $cast")
#scri variables ("#variable {cast1} $cast1")
#scri variables ("#variable {cast2} $cast2")
#scri variables ("#variable {cast3} $cast3")
#scri variables ("#variable {doubleweap} $doubleweap")
#scri variables ("#variable {eld} $eld")
#scri variables ("#variable {exit} $exit")
#scri variables ("#variable {fires} $fires")
#scri variables ("#variable {maxmana} $maxmana")
#scri variables ("#variable {maxrange} $maxrange")
#scri variables ("#variable {minrange} $minrange")
#scri variables ("#variable {nofoll} $nofoll")
#scri variables ("#variable {pass} $pass")
#scri variables ("#variable {ices} $ices")
#scri variables ("#variable {integhp} $integhp")
#scri variables ("#variable {killer} $killer")
#scri variables ("#variable {loyalweap} $loyalweap")
#scri variables ("#variable {poison} $poison")
#scri variables ("#variable {position} $position")
#scri variables ("#variable {prevhp} $prevhp")
#scri variables ("#variable {prompt} $prompt")
#scri variables ("#variable {protect} $protect")
#scri variables ("#variable {secweapon} $secweapon")
#scri variables ("#variable {shake} $shake")
#scri variables ("#variable {shocks} $shocks")
#scri variables ("#variable {stand} $stand")
#scri variables ("#variable {stun} $stun")
#scri variables ("#variable {fleep} $fleep")
#scri variables ("#variable {armor} $armor")
#scri variables ("#variable {pursuit} $pursuit")
#scri variables ("#variable {kill} $kill")
#scri variables ("#variable {satana} $satana")
#scri variables ("#variable {speedwalk} $speedwalk")
#scri variables ("#variable {wear} $wear")
#scri variables ("#variable {request} $request")
#scri variables ("#variable {tims} $tims")
#scri variables ("#variable {sneak} $sneak")
#scri variables ("#variable {hide} $hide")
#scri variables ("#variable {invis} $invis")
#scri variables ("#variable {vomica} $vomica")
{variables.conf}
#nop ------ 28-07-2007 ------
#variable {Expectationmessage} 0
#variable {triggers} War
#variable {vomica} 0
#variable {weapon} Охтара
#variable {mmc} 1
#variable {acthp} 505
#variable {actmana} 887
#variable {prevmana} 887
#variable {aim} Грюнвальд
#variable {aim1} Грюнвальд
#variable {aim2} Хавк
#variable {aim3} Кливен
#variable {battleskill} вглаз
#variable {battlespell} Магнит
#variable {cast} Магнит
#variable {cast1} Магнит
#variable {cast2} Магнит
#variable {cast3} Магнит
#variable {doubleweap} 0
#variable {eld} 0
#variable {exit} enter
#variable {fires} 0
#variable {maxmana} 1385
#variable {maxrange} 36
#variable {minrange} 24
#variable {nofoll} 1
#variable {pass} 0
#variable {ices} 0
#variable {integhp} 0
#variable {killer} Aldaran
#variable {loyalweap} 0
#variable {poison} 0
#variable {position} 0
#variable {prevhp} 505
#variable {prompt} 0
#variable {protect} 0
#variable {secweapon} НЕТ
#variable {shake} shove
#variable {shocks} 0
#variable {stand} 1
#variable {stun} Синего Мага
#variable {fleep} 0
#variable {armor} 0
#variable {pursuit} 0
#variable {kill} Алва
#variable {satana} 0
#variable {speedwalk} osp
#variable {wear} 21-1
#variable {request} 2
#variable {tims} книг
#variable {sneak} 0
#variable {hide} 0
#variable {invis} 0
#variable {vomica} 0
#nop ------ 29-07-2007 ------
#variable {Expectationmessage} 0
#variable {triggers} War
#variable {vomica} 0
#variable {weapon} Охтара
#variable {mmc} 1
#variable {acthp} 505
#variable {actmana} 887
#variable {prevmana} 887
#variable {aim} Грюнвальд
#variable {aim1} Грюнвальд
#variable {aim2} Хавк
#variable {aim3} Кливен
#variable {battleskill} вглаз
#variable {battlespell} Магнит
#variable {cast} Магнит
#variable {cast1} Магнит
#variable {cast2} Магнит
#variable {cast3} Магнит
#variable {doubleweap} 0
#variable {eld} 0
#variable {exit} enter
#variable {fires} 0
#variable {maxmana} 1385
#variable {maxrange} 36
#variable {minrange} 24
#variable {nofoll} 1
#variable {pass} 0
#variable {ices} 0
#variable {integhp} 0
#variable {killer} edelmut
#variable {loyalweap} 0
#variable {poison} 0
#variable {position} 0
#variable {prevhp} 505
#variable {prompt} 0
#variable {protect} 0
#variable {secweapon} НЕТ
#variable {shake} shove
#variable {shocks} 0
#variable {stand} 1
#variable {stun} Синего Мага
#variable {fleep} 0
#variable {armor} 0
#variable {pursuit} 0
#variable {kill} Алва
#variable {satana} 0
#variable {speedwalk} osp
#variable {wear} 21-1
#variable {request} 2
#variable {tims} книг
#variable {sneak} 0
#variable {hide} 0
#variable {invis} 0
#variable {vomica} 0
#nop ------ 30-07-2007 ------
#variable {Expectationmessage} 0
#variable {triggers} War
#variable {vomica} 0
#variable {weapon} Охтара
#variable {mmc} 1
#variable {acthp} 428
#variable {actmana} 1137
#variable {prevmana} 1025
#variable {aim} Грюнвальд
#variable {aim1} Грюнвальд
#variable {aim2} Хавк
#variable {aim3} Кливен
#variable {battleskill} вглаз
#variable {battlespell} Магнит
#variable {cast} Магнит
#variable {cast1} Магнит
#variable {cast2} Магнит
#variable {cast3} Магнит
#variable {doubleweap} 0
#variable {eld} 0
#variable {exit} enter
#variable {fires} 0
#variable {maxmana} 1385
#variable {maxrange} 38
#variable {minrange} 26
#variable {nofoll} 1
#variable {pass} 0
#variable {ices} 0
#variable {integhp} -23
#variable {killer} Aldaran
#variable {loyalweap} 0
#variable {poison} 0
#variable {position} 0
#variable {prevhp} 428
#variable {prompt} 0
#variable {protect} 0
#variable {secweapon} НЕТ
#variable {shake} shove
#variable {shocks} 0
#variable {stand} 0
#variable {stun} Синего Мага
#variable {fleep} 0
#variable {armor} 0
#variable {pursuit} 0
#variable {kill} Алва
#variable {satana} 0
#variable {speedwalk} osp
#variable {wear} 21-1
#variable {request} 2
#variable {tims} книг
#variable {sneak} 0
#variable {hide} 0
#variable {invis} 0
#variable {vomica} 0
{pk.conf}
#action {Подключение.} {#log logs//$killer-[$DATE];#showme {[1\;41m[1\;44m LogFile is '$killer-[$DATE]' [1\;41m[0\;33m[0\;37m}} {setting}
#action {Arda раскрыла свои просторы перед вами, вы в новом мире!} {#scri Write("[1\;30m[[m[1\;31m$DATE [1\;30m- [1m[31m$killer[1\;30m]");#log logs//$killer-[$DATE];#showme {[1\;41m[1\;44m LogFile is '$killer-[$DATE]' [1\;41m[0\;33m[0\;37m}} {setting}
#action {Внезапно ваше зрение затуманилось дымкой, через которую все еще видны очертаниЯ} {#log;#read settings/list.conf;#read settings//variables_new.conf} {setting}
#action {Кто-то подсоединилсЯ под вашим именем!} {#log;#read settings/list.conf;#read settings//variables_new.conf} {setting}
Короч, суть в том что мне приходится постоянно чистить variables.conf, что утомляет...
Хочется чтобы был скрипт, который перед процедурой записи чистил файл...
Подскажите, скрипт, или как это сделать?
Спасибо заранее! Удачи!
я не воткнул до конца для чего скрипт... но судя по всему - чтобы делать дампы переменных. посему посоветую #sos
ну во-первых, надо разбираться в методах FileSystemObject. там явно должен быть метод для очистки.
как перевести этот пример на #sos? очень просто
#sos clear
#sos var Expectationmessage
#sos var triggers
#sos var actmana
#sos var prevmana
#sos var aim
#sos var cast
.....
#sos var vomica
#sos save variables.conf
Всем привет. Как я понял, JMC умеет работать с окнами, но так эту возможность и ниасилил до конца. Хотелось бы получить совет специалиста.
Суть такая - я хочу создать окно, в которое выкидывались бы клановые сообщения (вместо основоного). Если есть такая возможность - объясните, пожалуйста, как ее реализовать. Заранее благодарен.
сначала надо окно подготовить. #wshow 1 show скажем
можно приткнуть окно к границам окна. если хочется, чтоб оно висело - то #wdock 1 disable, #wpos 1 x y
все.
теперь настраиваем выкидыш строк в окно
#act {^[КЛАН]%0} {#woutput 1 [clan] %0}
если хочется, чтобы в основном окне клановые не показывались, то добавляем дроп
#act {^[КЛАН]%0} {#drop;#woutput 1 [clan] %0}
следует отметить, что таким образом сообщения будут выводиться обесцвеченными. для вывода цветных сообщений надо воспользоваться уже скриптовыми средствами
спасибо за разъяснение. учту в разработках. тогда можно еще один вопрос - где можно найти НОРМАЛЬНЫЙ мануал по JMC? ибо ни в оригинальном хелпе, ни в архиве, который на сайте валяется, ничего не сказано ни, к примеру, про "#drop" ни про ^. а я так понимаю - на этом сюрпризы не заканчиваются. хочу все знать, как говорится . буду вдвойне признателен за информацию по внутренним переменным JMC, которые можно использовать в скриптах. спасибо.
#drop в хелпе есть...
^ пришло к нам с ММС.
мануал вообще по хорошему надо переписывать. найду время - сделаю систему аля википедии чтоб всем миром написать его. вот
Добавлено ([mergetime]1187329014[/mergetime]):
а ^ - это не ММС. это символ обозначения начала строки в синтаксисе регулярных выражений
Здравствуйте!
Помогите... )
Раньше было:
function Dizarmdl00()
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
jmc.parse("take $weapon");
jmc.parse("wear $weapon");
}
}
function Dizarmloyal()
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
jmc.parse("wear $weapon");
}
}
function Dizarmdouble()
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
jmc.parse("take $weapon");
jmc.parse("take $secweapon");
jmc.parse("wear $weapon");
jmc.parse("wear $secweapon");
}
}
function Dizarmdoubleloyal10()
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
jmc.parse("take $secweapon");
jmc.parse("wear $weapon");
jmc.parse("wear $secweapon");
}
}
function Dizarmdoubleloyal01()
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
jmc.parse("take $weapon");
jmc.parse("wear $weapon");
jmc.parse("wear $secweapon");
}
}
function Dizarmdoubleloyal11()
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
jmc.parse("wear $weapon");
jmc.parse("wear $secweapon");
}
}
#act {/оружие у вас из рук!$/} {#if {$doubleweap = 0}{#if {$loyalweap1 = 0}{#scri Dizarmdl00()};#if {$loyalweap1 = 1}{#scri Dizarmloyal()}};#if {$doubleweap = 1}{#if {$loyalweap1 = 0}{#if {$loyalweap2 = 0}{#scri Dizarmdouble()};#if {$loyalweap2 = 1}{#scri Dizarmdoubleloyal01()}};#if {$loyalweap1 = 1}{#if {$loyalweap2 = 1}{#scri Dizarmdoubleloyal11()};#if {$loyalweap2 = 1}{#scri Dizarmdoubleloyal10()}}}} {weapons}
Где тут ошибка, хз!
_________________________
#var doubleweap 0
#var loyalweap1 1
#var weapon утрен
wear утрен
ПоселковаЯ учительница выбила оружие у вас из рук! (Работает)
_________________________
#var doubleweap 1
#var weapon утрен
#var secweapon зв
#var loyalweap1 1
#var loyalweap2 1
wear утрен
wear зв
ПоселковаЯ учительница выбила оружие у вас из рук! (Работает)
_________________________
#var doubleweap 1
#var weapon утрен
#var secweapon зв
#var loyalweap1 0
#var loyalweap2 0
_________________________
wear утрен
wear зв
ПоселковаЯ учительница выбила оружие у вас из рук! (Работает)
_________________________
#var doubleweap 1
#var weapon утрен
#var secweapon зв
#var loyalweap1 0
#var loyalweap2 1
take утрен
wear утрен
wear зв
ПоселковаЯ учительница выбила оружие у вас из рук! (Работает)
_________________________
#var doubleweap 1
#var weapon утрен
#var secweapon зв
#var loyalweap1 1
#var loyalweap2 0
take зв
wear утрен
wear зв
ПоселковаЯ учительница выбила оружие у вас из рук! (Работает)
_________________________
#var doubleweap 0
#var weapon утрен
#var loyalweap1 0
Ошибка выполнения Microsoft JScript
Предполагается наличие объекта
Строка:0 Ошибка:0 Scode:800a138f
ПоселковаЯ учительница выбила оружие у вас из рук! (Не работает!)
Искал... искал... плюнул...
сделали:
#act {/оружие у вас из рук!$/} {#scr GlobalDisarm()} {weapons}
function GlobalDisarm()
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
if (jmc.GetVar("doubleweap") == 1)
{
if (jmc.GetVar("loyalweap1") == 1)
{ jmc.parse("wear $weapon1"); } else { jmc.parse("take $weapon1"); jmc.parse("wear $weapon1"); }
if (jmc.GetVar("loyalweap2") == 1)
{ jmc.parse("wear $weapon2"); } else { jmc.parse("take $weapon2"); jmc.parse("wear $weapon2"); }
} else
{
if (jmc.GetVar("loyalweap1") == 1)
{ jmc.parse("wear $weapon1"); } else { jmc.parse("take $weapon1"); jmc.parse("wear $weapon1"); }
}
}
}
И снова это же ошибка, только выдает сразу, без разницы что оружие лояльное или нет...
Думаю, фигня... Сделал:
function Disarm()
{
if(jmc.Event=="/оружие у вас из рук!$/")
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
if(jmc.GetVar("doubleweap") == 0)
{
if(jmc.GetVar("loyalweap1") == 0)
{
jmc.parse("take $weapon");
jmc.parse("wear $weapon");
}
else
{
jmc.parse("wear $weapon");
}
}
else
{
if(jmc.GetVar("loyalweap1") == 0)
{
if(jmc.GetVar("loyalweap2") == 0)
{
jmc.parse("take $weapon");
jmc.parse("take $secweapon");
jmc.parse("wear $weapon");
jmc.parse("wear $secweapon")
}
else
{
jmc.parse("take $weapon");
jmc.parse("wear $weapon");
jmc.parse("wear $secweapon")
}
}
else
{
if(jmc.GetVar("loyalweap2") == 0)
{
jmc.parse("take $secweapon");
jmc.parse("wear $weapon");
jmc.parse("wear $secweapon")
}
else
{
jmc.parse("wear $weapon");
jmc.parse("wear $secweapon")
}
}
}
}
}
}
jmc.RegisterHandler("Incoming","Disarm()");
Снова эта же ошибка, уже даже не знаю что... Мб я ошибся с if(jmc.Event=="/оружие у вас из рук!$/") в этом примере, но делал даже без него просто используя проверку скрипта на цвет, с использованием #action jmc.
Если кто-то поможет, буду очень признателен!
Добавил! Ржу над собой, тока у меня такие длинные посты...
Снова добавил! Кхе-кхе, изменил имя функиции самого первого скрипта, который у меня до этого выдавал ошибку, терь работает...
function Dizarmfs()
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
jmc.parse("take $weapon");
jmc.parse("wear $weapon");
}
}
Зато этого уже для меня не достаточно, не хочу в конфиге много скриптов относящихся к weapons ))) буду делать один!
Удачи!
а зачем на цвет смотреть? Что то я не догнала
Добавлено ([mergetime]1196293047[/mergetime]):
Проще сделать одну скриптовую функцию в которую буду передоваться оружие которое выбили и там одевать его как надо
Ну тут от нехрен делать выложу Вам скрипт для записи логов...
Скажете плагиат?!
Ну есть конешна, тока изменил его... Мне так удобно!
function StartLog(dd)
{
m_date = new Date();
var MonthArr = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12");
var NName;
var Year = m_date.getYear();
var Month = MonthArr[m_date.getMonth()];
var Day = m_date.getDate();
var Hour = m_date.getHours();
var Min = m_date.getMinutes();
Nname = "[" + ((Hour>9) ? "" : "0")+ Hour + ((Min>9) ? "." : ".0")+ Min + "]" + ".log";
fso = new ActiveXObject("Scripting.FileSystemObject");
var fldrtemp="Logs";
if (fso.FolderExists(fldrtemp)) {}
else { var fldr = fso.CreateFolder("Logs"); }
var fldrtemp="Logs\\" + dd;
if (fso.FolderExists(fldrtemp)) {}
else { var fldr = fso.CreateFolder(fldrtemp); }
var fldrtemp="Logs\\" + dd + "\\" + ((Day>9) ? "" : "0]")+Day+"." + Month+"." + Year;
if (fso.FolderExists(fldrtemp)) {}
else { var fldr = fso.CreateFolder(fldrtemp); }
jmc.output('#log "'+'Logs\\' + dd + '\\' + ((Day>9) ? '' : '0]')+ Day+ '.' + Month+'.' + Year+ '\\' + Nname + '"');
jmc.parse('#log "'+'Logs//' + dd + '//' + ((Day>9) ? '' : '0]')+ Day +'.' + Month+'.' + Year+ '//' + Nname + '"');
}
Хотел выразить особую благодарность в поддержке Неревару.
Спасибо Ромка )
Добавил )) Мб кому-то пригодится, содрать и изменить можна любой скрипт под себя. Вот еще один скриптик, он находит Труп ПЕРСОНАЖА из кучи других трупов мобов (В основном тут использовалось: Имя ПЕРСОНАЖА пишется с большой буквы, название моба с маленькой, если же используется имя моба, то с большой):
function act_corpse(corpse,location)
{
if ( (corpse == "Асигода") || (corpse == "Бамбулы") || (corpse == "Беорна") || (corpse == "Грыша") || (corpse == "Варгана") || (corpse == "Белого клоуна") || (corpse == "Хислопа") || (corpse == "Гормадока Барквина") || (corpse == "Ксантаруса") || (corpse == "ЯсенЯ"))
{
return
}
var symb;
symb = corpse.substr(0,1)
if ((symb >= "А") && (symb <= "Я"))
{
jmc.parse("#drop")
jmc.Showme('[0\;33mТруп [1\;31m'+corpse+'[0\;33m в комнате [1\;37m'+location+'[1\;30m.[0m[m');
}
}
Интересна!
Создал weapon1.scr и записал в него ниже преведенный скрипт, загрузил, стало работать, удаляешь этот файл, суешь все с него в weapon.scr: выдает ошибку!
Мб если есть var weapon, то нельзя импользовать и *.scr с таким же названием?
function disarmfswd()
{
var color = jmc.Event.substr(0, 9);
if(color == "[0;1;32m")
{
if (jmc.GetVar("loyalweap1") == 1)
{
jmc.parse("wear $weapon");
}
else
{
jmc.parse("take $weapon");
}
if (jmc.GetVar("doubleweap") == 1)
if (jmc.GetVar("loyalweap2") == 1)
{
jmc.parse("wear $secweapon");
}
else
{
jmc.parse("take $secweapon");
}
if (jmc.GetVar("loyalweap1") == 1)
{
}
else
{
jmc.parse("wear $weapon");
}
if (jmc.GetVar("doubleweap") == 1)
if (jmc.GetVar("loyalweap2") == 1)
{
}
else
{
jmc.parse("wear $secweapon");
}
}
}
Я извиняюсь за этот адский спам...Просто не встречал еще такого!
КРОВЬ! СМЕРТЬ! СОТОНА!
Делимся скриптами, говорим? Ну вот и мои пять копеек:
- Кнопка-Тригер - на одной кнопке висит две операции Сесть и Встать. В маде присутствуют также коврики которые таскаешь с собой и садясь на которые быстрее чёнить регенишь. Соотв-но в скрипт встроено юзание коврика.
(не программер, такшо на структуру не плюваться)
//в конфиге жабы должны быть определены переменные
//sit - определяющая стоите вы(1), сидите(2)
//carp - имя коврика ("леопард", "раковин" или "ковр" )))
//carpis - 0 если нет коврика, 1 есть коврик
//air - "1" если вы под флаем (нужна чтобы при возвращении из сидения вы оказывались "летящим", в статус-окне, а не "стоящим")
//
//также есть переменная showsit - которая выводится в нижние статус-окна и которая показывает ваше положение "сижу", "стою","лечу", "СПЛЮ"
//
//переменная mana_hp определяет на каком из ковриков мы сидим - "мана коврик" или "хп коврик", соответственно нужный и подбирается.
var mana_hp=false;
function frest() //---------------ОТДЫХАТЬ - себе.----------------
{ sit=jmc.GetVar("sit");
carp=jmc.GetVar("carp");
carpetis=jmc.GetVar("carpetis");
if (carpetis==0) //проверка - есть ли вообще коврик
if (sit==0) //проверка - Сижу - стою без коврика
{
jmc.parse("отдыхать");
jmc.SetVar("showsit","сижу");
sit=1;
jmc.SetVar("sit",sit);
mana_hp=false;
}
else if (mana_hp) fmrest()
else {
jmc.parse("встать");
if (air==1) {jmc.SetVar("showsit", "лечу");} else {jmc.SetVar("showsit","стою");}
sit=0;
jmc.SetVar("sit",sit);
}
else
//проверка - Сижу - стою с ковриком
if (sit==0)
{
jmc.parse("бро "+carp+"; отдыхать "+carp);
jmc.SetVar("showsit","сижу");
sit=1;
jmc.SetVar("sit",sit);
mana_hp=false;
}
else
if (mana_hp) fmrest()
else {
jmc.parse("встать; взять все."+carp);
if (air==1) {jmc.SetVar("showsit", "лечу");} else {jmc.SetVar("showsit","стою");}
sit=0;
jmc.SetVar("sit",sit);
};
}
---------------
у меня в промпте выводится постоянно состояние моих денег. СОответственно есть скрипт проверяющий обокрали ли меня или нет
(логично что скрипт ругается при каждой покупке )
#action {<%1hp %2mp %3mv %4.%5 %6>} {#var money1 %4; #var money1s %5; #scri stoling()} {9} {default}
money1=jmc.GetVar("money1"); //кол-во золота
money1s=jmc.GetVar("money1s");//кол-во серебра
function stoling() //проверка на обокраденность
{ money1=jmc.GetVar("money1");
money1s=jmc.GetVar("money1s");
minus=(money1*1+(money1s*0.01))-money*1;
if (minus<0) jmc.showme("***Вас обокрали на "+Math.floor(minus*100)/100+" золота!!!", "yellow");
money=money1*1+money1s*0.01;
minus=0;
}
По подробнее расскажи про коврики (точнее про 'мана коврик' и 'хп коврик'), игрался в несколько мадов, где использовались коврики/панцири и т.д., но не разу не встречал разделения на хп/мана.
Пропущен скрипт fmrest(), которые присутствовал в frest(), но наверняка использовался если mana_hp=true или mana_hp != false. Пропущена переменная air, типа air=jmc.GetVar("air"). У тебя нету вывода в окно статуса положения переменной showsit, как написано выше, ну эт фигня, я не придираюсь.
А почему ты не упростишь скрипт? Например, вместо, sit=0;jmc.SetVar("sit",sit);, можно сделать jmc.SetVar("sit",0);.
Скрипт с проверкой на воровство денег мобами, конешно работать будет, но увеличивать строку приглашения, думаю, не стоит, спама больше, трафика больше (хотя мелоч), да и крадут мобы не так много...
А так все же спасибо за то что, хоть кто-то делится скриптами, важнее не сами скрипты, а внимание и идеи, которые можно использовать.
Кстати, по поводу производительности скрипта:
Проверка триггером (грубо говоря, точный триггер на имя моба) работает быстрее, нежели проверка JS (сравнивая переменную с именами мобов). тест 500 строк, результаты отличались на 1 секунду из 13.
Так-же сравнивал просто много триггеров и один общий триггер. В рамках 500 строк результат был одинаков. Вывод: в жабе достаточно хорошо написан парсер строки для триггеров, и предпочтительнее использовать внутренний язык жабы, без вкроек на JS.
Так-же сравнивал предельно точные триггеры (со знаками начала и конца строки^$) с обрезками (со знаком только начала строки ^), 500 строк, точные ведут 11:10.
Да можно просто исключать из обработки все серые строки, в чем проблема. Ну или в начало серой строки добавлять признак, который исключит эту строку из обработок.
Ты все-таки не ответил на вопрос: ты все флаги и параметры вручную заполняешь? Ну, хоткеями, алиасом, но вручную?
не могу тебе написать ПМ. Не знаю почему, может акк не активирован...
В общем, если хочешь - я кину тебе в асю пару строк скрипта, который точно по экипировке определяет точное название оружия. И по состоянию переменных определяет - нужно поднимать 2 оружия или одно. Вручную можно дописать JS функцию, натравливать ее на название оружие, и по совпадениям устанавливать флаг лояльности/проклятости оружия.
В общем, чтобы все было автоматически.
icq
Спасибо за предложение. Скрипт, я могу и сам написать, но у меня нет идей написания...
первый Скрипт который одному хоткею вешает 2 действия - одеть вещь дающую флай, и снять. Неудобство - ручками приходится менять в конфиге название флаевской и сменной шмоток, если они поменялись.
второй Скрипт - на одном хоткее смена 2-х видов промпта: с экспой и с названиями комнаты.
function fair()
//------------Лечу-Стою-------------
{
if (air==0)
{
jmc.parse("од змей");
jmc.SetVar("showsit", "лечу");
}
else
{
jmc.parse("од тускл");
jmc.SetVar("showsit", "стою");
}
air=1-air;
jmc.SetVar("air",air);
}
------------------------------
function fprompt() //смена промпта для получения инфо об экспе
{ var textsend="";
textsend=((activp==1) ? "PROMPT <{R%h/%Hhp{x {M%m/%Mmp{x %vmv {Y%g.%s{x %X {M%t{x>" : "PROMPT <{R%hhp{x {M%mmp{x %vmv {Y%g.%s{x {C[%r]{x {M%t{x>");
activp=1-activp;
jmc.parse(textsend);
}
Детский скрипт автоматизирующий обмен серебра на золото
#alias {_мм} {#scri changemoney()} {default}
function changemoney() //серебро на золото
{
jmc.send("дать "+money1s+" монет меняла");
}
Скрипты на присвоение переменных ... ничего особенного.
function fnodog() //-----------очара мертва-------------
{ dog="--";
dogis=0;
dogsleep=0;
jmc.SetVar("dog",dog);
jmc.SetVar("dogis",dogis);
jmc.SetVar("dogsleep",dogsleep);
}
function fnodogcarp() //нет коврика для очары
{ dogcarp="--";
dogcarpis=0;
jmc.SetVar("dogcarp",dogcarp);
jmc.SetVar("dogcarpis",dogcarpis);
}
//т.к. на ковриках могут спать и очары, то и для нее отдельный коврик
function fdogcarp(dogcarp) //есть коврик для очары
{ dogcarpis=1;
jmc.SetVar("dogcarp",dogcarp);
jmc.SetVar("dogcarpis",dogcarpis);
}
Добавлено ([mergetime]1212580587[/mergetime]):
Добавочка:
#alias {слуга} {#var dog %1« #var dogis 1« статпок3} {default}
#alias {слуга0} {#scri fnodog()« статпок3} {default}
#alias {статпок3} {#scr jmc.SetStatus(1, "$dog $dogcarp" , "light red")} {default}
#alias {статпок} {#scr jmc.SetStatus(1, "$food $space $cont $light", "white")« #scr jmc.SetStatus(2, "$carp $mcarp $showsit F=$fight", "light blue")« #scr jmc.SetStatus(3, " $speak1, $speak2, $speak3", "b green")} {default}
Форум Invision Power Board (http://nulled.cc)
© Invision Power Services (http://nulled.cc)