zmud script:)) - Delving , 25.11.2003 03:25 MSK
Мад сегдня ночью не работал и от нечего делать ,я занялся всякой ерундой
ДЕло в том что у меня давно (как и у большинства )есть считалка : сколько осталось експы до levelup и тд
Только после каждого gain level мне приходилось в ручную вбивать новое требуемое кол-во експы
Вот я и решил все енто автоматизировать.
Сразу предупрежу , что никому это не навязываю, что уверен , что у многих есть более лучшее решение этой "проблемы"
а второй половине это вообще нафиг не надо и так далее..
Так что не надо меня как всегда бить по почкам ,когда я что-то выкладвваю:)

в zmude 6.16 ( не знаю есть ли в версиях ниже) ,есть оператор выполнения команд из файлов
маунтим файл :
#file 1 test.txt
выполняем 3 строчку из этого файла так как буд-то ввели эту строчку в консоль:
#read 1 3
и если file.txt:
----begin file.txt---
bla
bla
bla
#var exp 1000
bla
-----end file.txt----
то выполнится:
#var exp 1000
посидев часик над http://www.slothmud.org/sloth/experience.shtml
я перелопалил ее в нужный мне вид и так:
-----------begin prime.txt--------------
#var 1exp 1;#var 1gold 0
#var 1exp 2000;#var 1gold 150
#var 1exp 4000;#var 1gold 200
#var 1exp 9000;#var 1gold 250
#var 1exp 15000;#var 1gold 300
#var 1exp 20000;#var 1gold 540
#var 1exp 30000;#var 1gold 780
#var 1exp 40000;#var 1gold 1020
#var 1exp 80000;#var 1gold 1026
#var 1exp 120000;#var 1gold 1500
#var 1exp 150000;#var 1gold 2400
#var 1exp 200000;#var 1gold 3300
#var 1exp 250000;#var 1gold 4200
#var 1exp 300000;#var 1gold 5100
#var 1exp 400000;#var 1gold 6000
#var 1exp 450000;#var 1gold 8400
#var 1exp 500000;#var 1gold 10800
#var 1exp 550000;#var 1gold 13200
#var 1exp 600000;#var 1gold 15600
#var 1exp 700000;#var 1gold 18000
#var 1exp 800000;#var 1gold 21600
#var 1exp 1000000;#var 1gold 25200
#var 1exp 1500000;#var 1gold 28800
#var 1exp 2000000;#var 1gold 32400
#var 1exp 2500000;#var 1gold 36000
#var 1exp 3500000;#var 1gold 43200
#var 1exp 4700000;#var 1gold 50400
#var 1exp 6000000;#var 1gold 57600
#var 1exp 7300000;#var 1gold 64800
#var 1exp 8600000;#var 1gold 72000
#var 1exp 9900000;#var 1gold 100800
#var 1exp 11000000;#var 1gold 129600
#var 1exp 13000000;#var 1gold 158400
#var 1exp 15000000;#var 1gold 187200
#var 1exp 18300000;#var 1gold 216000
#var 1exp 21500000;#var 1gold 302400
#var 1exp 25000000;#var 1gold 388800
#var 1exp 30000000;#var 1gold 475200
#var 1exp 35000000;#var 1gold 561600
#var 1exp 40000000;#var 1gold 648000
----------end prime.txt---------

----------begin secondary.txt-------
#var 2exp 4;#var 2gold 200
#var 2exp 8000;#var 2gold 300
#var 2exp 16000;#var 2gold 400
#var 2exp 32000;#var 2gold 500
#var 2exp 45000;#var 2gold 600
#var 2exp 70000;#var 2gold 1200
#var 2exp 100000;#var 2gold 1800
#var 2exp 140000;#var 2gold 2040
#var 2exp 280000;#var 2gold 2520
#var 2exp 360000;#var 2gold 3000
#var 2exp 550000;#var 2gold 4800
#var 2exp 800000;#var 2gold 6600
#var 2exp 1000000;#var 2gold 8400
#var 2exp 1200000;#var 2gold 10200
#var 2exp 1600000;#var 2gold 12000
#var 2exp 1800000;#var 2gold 16800
#var 2exp 2000000;#var 2gold 21660
#var 2exp 2200000;#var 2gold 26400
#var 2exp 2400000;#var 2gold 31200
#var 2exp 2800000;#var 2gold 36000
#var 2exp 3200000;#var 2gold 43200
#var 2exp 4000000;#var 2gold 50400
#var 2exp 6000000;#var 2gold 57600
#var 2exp 8000000;#var 2gold 64800
#var 2exp 10000000;#var 2gold 72000
#var 2exp 12000000;#var 2gold 86400
#var 2exp 14800000;#var 2gold 100800
#var 2exp 18000000;#var 2gold 115200
#var 2exp 21000000;#var 2gold 129600
#var 2exp 28000000;#var 2gold 144000
#var 2exp 32000000;#var 2gold 201600
#var 2exp 36000000;#var 2gold 259200
#var 2exp 39000000;#var 2gold 316800
#var 2exp 45000000;#var 2gold 374400
#var 2exp 50800000;#var 2gold 432000
#var 2exp 60500000;#var 2gold 604800
#var 2exp 65000000;#var 2gold 777600
#var 2exp 70000000;#var 2gold 950400
#var 2exp 85000000;#var 2gold 1123200
#var 2exp 90000000;#var 2gold 1296000
------end secondary.txt-------

-------begin tertiary.txt-------
#var 3exp 12000;#var 3gold 300
#var 3exp 24000;#var 3gold 450
#var 3exp 48000;#var 3gold 600
#var 3exp 96000;#var 3gold 750
#var 3exp 135000;#var 3gold 900
#var 3exp 210000;#var 3gold 1620
#var 3exp 300000;#var 3gold 2340
#var 3exp 420000;#var 3gold 3060
#var 3exp 840000;#var 3gold 3780
#var 3exp 1080000;#var 3gold 4500
#var 3exp 1650000;#var 3gold 9600
#var 3exp 2400000;#var 3gold 13200
#var 3exp 3000000;#var 3gold 12600
#var 3exp 3600000;#var 3gold 15300
#var 3exp 4800000;#var 3gold 18000
#var 3exp 5400000;#var 3gold 25500
#var 3exp 6000000;#var 3gold 32400
#var 3exp 6600000;#var 3gold 39600
#var 3exp 7200000;#var 3gold 46800
#var 3exp 8400000;#var 3gold 54000
#var 3exp 9600000;#var 3gold 64800
#var 3exp 12000000;#var 3gold 75600
#var 3exp 18000000;#var 3gold 86400
#var 3exp 24000000;#var 3gold 97200
#var 3exp 30000000;#var 3gold 108000
#var 3exp 36000000;#var 3gold 129600
#var 3exp 44400000;#var 3gold 151200
#var 3exp 54000000;#var 3gold 172800
#var 3exp 63000000;#var 3gold 194400
#var 3exp 84000000;#var 3gold 216000
#var 3exp 96000000;#var 3gold 302400
#var 3exp 108000000;#var 3gold 388800
#var 3exp 117000000;#var 3gold 475200
#var 3exp 135000000;#var 3gold 561600
#var 3exp 152400000;#var 3gold 648000
#var 3exp 181500000;#var 3gold 907200
#var 3exp 195000000;#var 3gold 1166400
#var 3exp 210000000;#var 3gold 1425600
#var 3exp 255000000;#var 3gold 1684800
#var 3exp 270000000;#var 3gold 1944000
-------end tertiary.txt--------

------begin quad.txt---------
#var 4exp 40000;#var 4gold 400
#var 4exp 80000;#var 4gold 600
#var 4exp 160000;#var 4gold 800
#var 4exp 320000;#var 4gold 1000
#var 4exp 450000;#var 4gold 1200
#var 4exp 700000;#var 4gold 2160
#var 4exp 1000000;#var 4gold 3120
#var 4exp 1400000;#var 4gold 4080
#var 4exp 2800000;#var 4gold 5040
#var 4exp 3600000;#var 4gold 6000
#var 4exp 5500000;#var 4gold 9600
#var 4exp 8000000;#var 4gold 13200
#var 4exp 10000000;#var 4gold 16800
#var 4exp 12000000;#var 4gold 20400
#var 4exp 16000000;#var 4gold 24000
#var 4exp 18000000;#var 4gold 33600
#var 4exp 20000000;#var 4gold 43200
#var 4exp 22000000;#var 4gold 52800
#var 4exp 24000000;#var 4gold 62400
#var 4exp 28000000;#var 4gold 72000
#var 4exp 32000000;#var 4gold 86400
#var 4exp 40000000;#var 4gold 100800
#var 4exp 60000000;#var 4gold 115200
#var 4exp 80000000;#var 4gold 129600
#var 4exp 100000000;#var 4gold 144000
#var 4exp 120000000;#var 4gold 172800
#var 4exp 148000000;#var 4gold 201600
#var 4exp 180000000;#var 4gold 230400
#var 4exp 210000000;#var 4gold 259200
#var 4exp 280000000;#var 4gold 288000
#var 4exp 320000000;#var 4gold 403200
#var 4exp 360000000;#var 4gold 518400
#var 4exp 390000000;#var 4gold 633600
#var 4exp 450000000;#var 4gold 748800
#var 4exp 508000000;#var 4gold 864000
#var 4exp 605000000;#var 4gold 1209600
#var 4exp 650000000;#var 4gold 1555200
#var 4exp 700000000;#var 4gold 1900800
#var 4exp 850000000;#var 4gold 2246400
#var 4exp 900000000;#var 4gold 2592000
----end quad.txt---------

аватаров опустим,сорьки..

эти 4 файла нужно кинуть в директорию zmud'а

теперь алиас с помощью которого мождно будет работать с этой "базой данных:)"

#ALIAS level {#pr primelevel "enter your prime level";#pr secondarylevel "enter your secondary level";#pr tertiarylevel "enter your tertiary level";#pr quadlevel "enter your quad level";#FILE 1 prime.txt;#FILE 2 secondary.txt;#FILE 3 tertiary.txt;#FILE 4 quad.txt;#READ 1 @primelevel+1;#READ 2 @secondarylevel+1;#READ 3 @tertiarylevel+1;#READ 4 @quadlevel+1}

теперь набрал в консоли level , в соответствующие переменные запишется необходимыо кол-во експы м денег для всех
классов на данный момент игры.
(т.е получил новый уровень операцию level стоит повторить)

тперь триггер, который будет считать сколько денег и експы реально не хватат до следующих уровней:
#TRIGGER {^You have &exp unused experience points.} {#math 1needexp @1exp-@exp;#math 2needexp @2exp-@exp;#math 3needexp @3exp-@exp;#math 4needexp @4exp-@exp;#math 1needgold @1gold-@allcoins;#math 2needgold @2gold-@allcoins;#math 3needgold @3gold-@allcoins;#math 4needgold @4gold-@allcoins}


таким образом в переменной 1needexp записано кол-во експы необходирмой для следующего уровня. в переменной 1needgold - золото и так делее


переменная @allcoins - это общее кол-во денег у чара

лично я подсчитываю ее так:

#CLASS {bank}
#ALIAS dep {deposit %1;#math coins @coins-%1;#math bank @bank+%1}
#ALIAS with {withdraw %1;#math coins @coins+%1;#math bank @bank-%1}
#TRIGGER {^You have &coins gold coins.} {#math allcoins @bank+@coins}
#TRIGGER {^The teller tells you, 'You have &bank coins in the bank.'} {}
#TRIGGER {^You keep %1 coins.} {#math coins @coins+%1;#math allcoins @bank+@coins}
#TRIGGER {^Your share is %1 coins.} {#math coins @coins+%1;#math allcoins @bank+@coins}
#CLASS 0







   zmud script:)) - Delving , 25.11.2003 03:25 MSK