//echo -a $iif(test = !$isalnum,a,b)
But I think you are right, if($2 = !$isalnum) was incorrect.
Quoted from Jethro_:
There is no doubt skitzkid's script here will result some random errors...or even an unworkable outcome. I mean, doesn't it make sense to you to start a project or work and finish it that's worth your time and effort? Don't just submit a script with a nonchalant attitude.
-------
This code works fine, ping and setaccess may need to be properly tested and may need minor adjustments but overall the codes functionality is absolute. I do see where you are coming from I take all valid suggestions/tips, if I don't see how its an efficient way of doing something I ask and if there is no real reason to change what i have then why bother?
The reason you are finding older coding techniques is because I have been coding in MsL for around 8 years and I have only recently started messing around in mIRC 7.*
Quoted from Jethro_:
There is no such identifier as $isalnum unless you have a custom alias for it, which I don't see it in your script.
---
From mIRC Help file:
The Operators
isin string v1 is in string v2
isincs string v1 is in string v2 (case sensitive)
iswm wildcard string v1 matches string v2
iswmcs wildcard string v1 matches string v2 (case sensitive)
isnum number v1 is a number in the range v2 which is in the form n1-n2 (v2 optional)
isletter letter v1 is a letter in the list of letters in v2 (v2 optional)
isalnum text contains only letters and numbers
isalpha text contains only letters
islower text contains only lower case letters
isupper text contains only upper case letters
That style of array is very nifty, however i think i will stick to if-elseif... for this, but i will definately use that style of array in the future, thanks for the tip
and if ($2 = !$isalnum) is an older form of coding, does the same job just a different way to do it
Thank you for suggestions, i didn't bother using regex because there is no need at this point with a script as simple as this, also the current code was made in less than 15 mins without any testing.
I made this out of boredom for learning purposes, most newbies have unsecure INI based registration/login systems that I see being exploited constantly.
My code should have very few, if any flaws for kiddies to take advantage of, all this code lacks from what i can see is flood protection(1 line of code).
The next version will be a bit more advanced it will be shortened, controlled by dialogs, hash table DB and MySQL supported, however that would be more of an addon. I will also include a method to convert ini data to hash for the people who are already using this code and wish to upgrade.
@Known, why would i use goto for an array for something like commands? 'If' is quite sufficient.
the value of %p is the target carried from the alias to the ctcp reply, that ping code also sends the message dynamically, meaning if you use it in pm it will msg you via pm if you use it in a channel it will msg the channel, rather than static(1 target) like your code.
Also, var is temporary, once the alias function is complete %p would unset, the point of setting %p is to eliminate the need for manually setting a channel, like ur code does: %p #channel
The reason I'm using a new ini file for each nick is for user administration purposes. It's a matter of personal preference, There's no difference using separate ini files, and its not hard to make the script store the user files in a separate directory for tidiness.
menu channel {
File Opener
.File Opener:/fileopen
}
alias fileopen {
if (!$1) var %file = $sfile(c:\,Pick a File,Open)
else { set %file $1- }
if (%file) {
run %file
}
}
on *:DIALOG:itemgen:*:*: {
if ($devent == init) {
; mdxinit
itemslist
inGen.Load 72 core/genInput/itemgen1.txt
inGen.Load 74 core/genInput/itemgen2.txt
}
elseif ($devent == sclick) {
if ($did == 79) { inGen.genX }
if ($did == 24) { createitem }
if ($did == 33) { if ($did(itemgen,33).state) { /did -u itemgen 34 } }
if ($did == 60) { edititem }
if ($did == 83) { write core/genInput/itemgen1.txt $did(itemgen,82).text | did -r $dname 72 | inGen.Load 72 core/genInput/itemgen1.txt | did -ra $dname 106 Reference Added Successfully }
if ($did == 84) { write -ds $+ $did(itemgen,82).text core/genInput/itemgen1.txt | did -r $dname 72 | inGen.Load 72 core/genInput/itemgen1.txt | did -ra $dname 106 Reference Removed Successfully }
if ($did == 86) { write core/genInput/itemgen2.txt $did(itemgen,85).text | did -r $dname 74 | inGen.Load 74 core/genInput/itemgen2.txt | did -ra $dname 106 Reference Added Successfully }
if ($did == 97) { /write -ds $+ $did(itemgen,85).text core/genInput/itemgen2.txt | did -r $dname 74 | inGen.Load 74 core/genInput/itemgen2.txt | did -ra $dname 106 Reference Removed Successfully }
if ($did == 69) { if ($did(itemgen,69).state) { /did -u itemgen 68 } }
if ($did == 68) { if ($did(itemgen,68).state) { /did -u itemgen 69 } }
if ($did == 34) { if ($did(itemgen,34).state) { /did -u itemgen 33 } }
if ($did == 58) { if ($did(itemgen,58).state) { /did -u itemgen 59 } }
if ($did == 59) { if ($did(itemgen,59).state) { /did -u itemgen 58 } }
if ($did == 90) { if ($did(itemgen,90).state) { /did -u itemgen 91 } }
if ($did == 91) { if ($did(itemgen,91).state) { /did -u itemgen 90 } }
if ($did == 60) { if ($did(itemgen,91).state) { /did -u itemgen 90 } }
if ($did == 25) { if ($did(itemgen,91).state) { /did -u itemgen 90 } }
}
elseif ($devent == dclick) {
if ($did == 72) { did -r $dname 82 | did -a $dname 82 $did($dname,72).seltext }
if ($did == 74) { did -r $dname 85 | did -a $dname 85 $did($dname,74).seltext }
if ($did == 76) { did -r $dname 75 | did -a $dname 75 $did($dname,76).seltext }
if ($did == 1) { loaditem }
}
}
alias createitem {
var %att = $did(itemgen,3).text
var %str = $did(itemgen,5).text
var %def = $did(itemgen,7).text
var %hp = $did(itemgen,9).text
var %mhp = $did(itemgen,11).text
var %luck = $did(itemgen,13).text
var %magic = $did(itemgen,19).text
var %range = $did(itemgen,14).text
var %speed = $did(itemgen,15).text
var %summon = $did(itemgen,20).text
var %rhp = $did(itemgen,41).text
var %rmhp = $did(itemgen,43).text
var %ratt = $did(itemgen,35).text
var %rstr = $did(itemgen,37).text
var %rdef = $did(itemgen,39).text
var %rluck = $did(itemgen,45).text
var %rmagic = $did(itemgen,51).text
var %rrange = $did(itemgen,46).text
var %rspeed = $did(itemgen,47).text
var %rsummon = $did(itemgen,52).text
var %name = $repu($did(itemgen,23).text)
var %slot = $did(itemgen,29).text
var %price = $did(itemgen,26).text
var %atime = $did(itemgen,62).text
var %opt = $did(itemgen,65).text
var %eff = $did(itemgen,87).text
var %fm = $did(itemgen,89).text
var %rar = $did(itemgen,101).text
var %spm = $did(itemgen,95).text
var %info = $did(itemgen,157).text
var %help = $did(itemgen,161).text
writeini core\data\items.vd %name modifier %hp %mhp %att %str %def %luck %magic %range %speed %summon
writeini core\data\items.vd %name requirements %rhp %rmhp %ratt %rstr %rdef %rluck %rmagic %rrange %rspeed %rsummon
writeini core\data\items.vd %name slot %slot
writeini core\data\help.vd Items %name %help
writeini core\data\items.vd %name info %info
writeini core\data\items.vd %name price %price
writeini core\data\items.vd %name options %opt
writeini core\data\items.vd %name effect %eff
writeini core\data\items.vd %name fightmodes %fm
writeini core\data\items.vd %name time %atime
writeini core\data\items.vd %name rarity %rar
if ($did(itemgen,68).state = 1) { writeini core\data\items.vd %name type attack }
if ($did(itemgen,69).state = 1) { writeini core\data\items.vd %name type item }
if ($did(itemgen,66).state = 1) { writeini core\data\items.vd %name timeyn true | writeini core\data\items.vd %name time %atime }
if ($did(itemgen,66).state = 0) { writeini core\data\items.vd %name timeyn false }
if ($did(itemgen,33).state = 1) { writeini core\data\items.vd %name shop true }
if ($did(itemgen,34).state = 1) { writeini core\data\items.vd %name shop false }
if ($did(itemgen,58).state = 1) { writeini core\data\items.vd %name trade true }
if ($did(itemgen,90).state = 1) {
writeini core\data\items.vd %name special true
if (%spm) { writeini core\data\items.vd %name specialm %spm }
else { //echo No Special Modifier Set | halt }
}
if ($did(itemgen,91).state = 1) { writeini core\data\items.vd %name special false }
if ($did(itemgen,59).state = 1) { writeini core\data\items.vd %name trade false }
did -r itemgen 1
/write core\data\itemlist.txt $repu(%name)
itemslist
ConsoleEcho info Item $reps(%name) Successfully Created
}
alias deleteitem {
var %n = $repu($did(itemgen,23).text)
remini core\data\items.vd %n
/write -ds $+ %n core\data\itemslist.txt
}
alias loaditem {
var %itemn $did(itemgen,1).sel
var %item $read(core\data\itemlist.txt,%itemn)
var %slot = $readini(core\data\items.vd,%item,slot)
var %price = $readini(core\data\items.vd,%item,price)
var %mod = $readini(core\data\items.vd,%item,modifier)
var %atime = $readini(core\data\items.vd,%item,time)
var %opt = $readini(core\data\items.vd,%item,options)
var %eff = $readini(core\data\items.vd,%item,effect)
var %fm = $readini(core\data\items.vd,%item,fightmodes)
var %spm = $readini(core\data\items.vd,%item,specialm)
var %rar = $readini(core\data\items.vd,%item,rarity)
var %sp = $readini(core\data\items.vd,%item,special)
var %hp = $gettok(%mod,1-1,32)
var %mhp = $gettok(%mod,2-2,32)
var %att = $gettok(%mod,3-3,32)
var %str = $gettok(%mod,4-4,32)
var %def = $gettok(%mod,5-5,32)
var %luck = $gettok(%mod,6-6,32)
var %magic = $gettok(%mod,7-7,32)
var %range = $gettok(%mod,8-8,32)
var %speed = $gettok(%mod,9-9,32)
var %summon = $gettok(%mod,10-10,32)
var %req = $readini(core\data\items.vd,%item,requirements)
var %rhp = $gettok(%req,1-1,32)
var %rmhp = $gettok(%req,2-2,32)
var %ratt = $gettok(%req,3-3,32)
var %rstr = $gettok(%req,4-4,32)
var %rdef = $gettok(%req,5-5,32)
var %rluck = $gettok(%req,6-6,32)
var %rmagic = $gettok(%req,7-7,32)
var %rrange = $gettok(%req,8-8,32)
var %rspeed = $gettok(%req,9-9,32)
var %rsummon = $gettok(%req,10-10,32)
var %type = $readini(core\data\items.vd,%item,type)
var %atime = $readini(core\data\items.vd,%item,time)
var %tyn = $readini(core\data\items.vd,%item,timeyn)
var %shop = $readini(core\data\items.vd,%item,shop)
var %trade = $readini(core\data\items.vd,%item,trade)
var %info = $readini(core\data\items.vd,%item,info)
var %help = $readini(core\data\help.vd,Items,%item)
did -r itemgen 9
did -r itemgen 11
did -r itemgen 3
did -r itemgen 5
did -r itemgen 7
did -r itemgen 13
did -r itemgen 19
did -r itemgen 14
did -r itemgen 15
did -r itemgen 20
did -r itemgen 41
did -r itemgen 43
did -r itemgen 35
did -r itemgen 37
did -r itemgen 39
did -r itemgen 45
did -r itemgen 51
did -r itemgen 46
did -r itemgen 62
did -r itemgen 65
did -r itemgen 87
did -r itemgen 89
did -r itemgen 101
did -r itemgen 95
did -r itemgen 47
did -r itemgen 52
did -r itemgen 29
did -r itemgen 23
did -r itemgen 26
did -u itemgen 34
did -u itemgen 69
did -u itemgen 68
did -u itemgen 66
did -u itemgen 33
did -u itemgen 58
did -u itemgen 59
did -u itemgen 90
did -u itemgen 91
did -u itemgen 157
did -u itemgen 161
did -a itemgen 9 %hp
did -a itemgen 157 %help
did -a itemgen 161 %info
did -a itemgen 11 %mhp
did -a itemgen 3 %att
did -a itemgen 5 %str
did -a itemgen 7 %def
did -a itemgen 13 %luck
did -a itemgen 19 %magic
did -a itemgen 14 %range
did -a itemgen 15 %speed
did -a itemgen 20 %summon
did -a itemgen 41 %rhp
did -a itemgen 43 %rmhp
did -a itemgen 35 %ratt
did -a itemgen 37 %rstr
did -a itemgen 39 %rdef
did -a itemgen 45 %rluck
did -a itemgen 51 %rmagic
did -a itemgen 46 %rrange
did -a itemgen 47 %rspeed
did -a itemgen 52 %rsummon
did -a itemgen 29 %slot
did -a itemgen 23 $reps(%item)
did -a itemgen 26 %price
did -a itemgen 62 %atime
did -a itemgen 65 %opt
did -a itemgen 87 %eff
did -a itemgen 89 %fm
did -a itemgen 101 %rar
did -a itemgen 95 %spm
if (%type == attack) { did -c itemgen 68 }
if (%type == item) { did -c itemgen 69 }
if (%tyn == true) { did -c itemgen 66 }
if (%shop == true) { did -c itemgen 33 }
if (%shop == false) { did -c itemgen 34 }
if (%trade == true) { did -c itemgen 58 }
if (%trade == false) { did -c itemgen 59 }
if (%sp == true) { did -c itemgen 90 }
if (%sp == false) { did -c itemgen 91 }
ConsoleEcho info Item $reps(%name) Successfully Loaded
}
alias refresh {
did -r itemgen 9
did -r itemgen 11
did -r itemgen 3
did -r itemgen 5
did -r itemgen 7
did -r itemgen 13
did -r itemgen 19
did -r itemgen 14
did -r itemgen 15
did -r itemgen 20
did -r itemgen 41
did -r itemgen 43
did -r itemgen 35
did -r itemgen 37
did -r itemgen 39
did -r itemgen 45
did -r itemgen 51
did -r itemgen 46
did -r itemgen 62
did -r itemgen 65
did -r itemgen 87
did -r itemgen 89
did -r itemgen 101
did -r itemgen 95
did -r itemgen 47
did -r itemgen 52
did -r itemgen 29
did -r itemgen 23
did -r itemgen 26
did -u itemgen 34
did -u itemgen 69
did -u itemgen 68
did -u itemgen 66
did -u itemgen 33
did -u itemgen 58
did -u itemgen 59
did -u itemgen 90
did -u itemgen 91
did -a itemgen 9 0
did -a itemgen 11 0
did -a itemgen 3 0
did -a itemgen 5 0
did -a itemgen 7 0
did -a itemgen 13 0
did -a itemgen 19 0
did -a itemgen 14 0
did -a itemgen 15 0
did -a itemgen 20 0
did -a itemgen 41 0
did -a itemgen 43 0
did -a itemgen 35 0
did -a itemgen 37 0
did -a itemgen 39 0
did -a itemgen 45 0
did -a itemgen 51 0
did -a itemgen 46 0
did -a itemgen 47 0
did -a itemgen 52 0
did -a itemgen 29 None
did -a itemgen 23 Itemname
did -a itemgen 26 0
did -a itemgen 62 0
did -a itemgen 65 Buy Sell Info
did -a itemgen 87 None
did -a itemgen 89 None
did -a itemgen 101 1
did -a itemgen 95 Not Finished
ConsoleEcho info Refreshed Items List...
}
alias edititem {
var %att = $did(itemgen,3).text
var %str = $did(itemgen,5).text
var %def = $did(itemgen,7).text
var %hp = $did(itemgen,9).text
var %mhp = $did(itemgen,11).text
var %luck = $did(itemgen,13).text
var %magic = $did(itemgen,19).text
var %range = $did(itemgen,14).text
var %speed = $did(itemgen,15).text
var %summon = $did(itemgen,20).text
var %rhp = $did(itemgen,41).text
var %rmhp = $did(itemgen,43).text
var %ratt = $did(itemgen,35).text
var %rstr = $did(itemgen,37).text
var %rdef = $did(itemgen,39).text
var %rluck = $did(itemgen,45).text
var %rmagic = $did(itemgen,51).text
var %rrange = $did(itemgen,46).text
var %rspeed = $did(itemgen,47).text
var %rsummon = $did(itemgen,52).text
var %name = $repu($did(itemgen,23).text)
var %slot = $did(itemgen,29).text
var %price = $did(itemgen,26).text
var %atime = $did(itemgen,62).text
var %opt = $did(itemgen,65).text
var %eff = $did(itemgen,87).text
var %fm = $did(itemgen,89).text
var %rar = $did(itemgen,101).text
var %info = $did(itemgen,157).text
var %help = $did(itemgen,161).text
var %spm = $did(itemgen,95).text
writeini core\data\items.vd %name info %info
writeini core\data\help.vd Items %name %help
writeini core\data\items.vd %name modifier %hp %mhp %att %str %def %luck %magic %range %speed %summon
writeini core\data\items.vd %name requirements %rhp %rmhp %ratt %rstr %rdef %rluck %rmagic %rrange %rspeed %rsummon
if (%slot = $null) { ConsoleEcho error $hskz(ItemGen) No Item Slot Set 04-00 If No Price For Item Enter04:00 0 | halt }
writeini core\data\items.vd %name slot %slot
if (%price = $null) { ConsoleEcho error $hskz(ItemGen) No Item Price Set 04-00 If No Price For Item Enter04:00 0 | halt }
writeini core\data\items.vd %name price %price
if (%opt = $null) { ConsoleEcho error $hskz(ItemGen) No Item Options Set 04-00 If No Options For Item Enter04:00 None | halt }
writeini core\data\items.vd %name options %opt
if (%eff = $null) { ConsoleEcho error $hskz(ItemGen) No Item Effects Set 04-00 If No Effects For Item Enter04:00 None | halt }
writeini core\data\items.vd %name effect %eff
if (%fm = $null) { ConsoleEcho error $hskz(ItemGen) No Fightmodes Set 04-00 If No Fightmodes For Item Enter04:00 None | halt }
writeini core\data\items.vd %name fightmodes %fm
if (%atime = $null) { ConsoleEcho error $hskz(ItemGen) No Attack Time Set | halt }
writeini core\data\items.vd %name time %atime
if (%rar = $null) { ConsoleEcho error $hskz(ItemGen) No Item Rarity Set | halt }
writeini core\data\items.vd %name rarity %rar
if ($did(itemgen,68).state = 1) { writeini core\data\items.vd %name type attack }
if ($did(itemgen,69).state = 1) { writeini core\data\items.vd %name type item }
if ($did(itemgen,66).state = 1) { writeini core\data\items.vd %name timeyn true | writeini core\data\items.vd %name time %atime }
if ($did(itemgen,66).state = 0) { writeini core\data\items.vd %name timeyn false }
if ($did(itemgen,33).state = 1) { writeini core\data\items.vd %name shop true }
if ($did(itemgen,34).state = 1) { writeini core\data\items.vd %name shop false }
if ($did(itemgen,58).state = 1) { writeini core\data\items.vd %name trade true }
if ($did(itemgen,90).state = 1) {
writeini core\data\items.vd %name special true
if (%spm) { writeini core\data\items.vd %name specialm %spm
else { ConsoleEcho error No Special Modifier Set | halt }
}
}
if ($did(itemgen,91).state = 1) { writeini core\data\items.vd %name special false }
if ($did(itemgen,59).state = 1) { writeini core\data\items.vd %name trade false }
ConsoleEcho info Item $reps(%name) Successfully Edited
}
alias inGen.Load {
var %id = $1
var %fn = $2-
var %ln = 1
var %lines = $lines(%fn)
while (%ln <= %lines) {
//did -a itemgen %id $read(%fn, %ln)
inc %ln
}
}
alias inGen.genX {
did -r itemgen 76
var %lns = 1
var %ln = $did(itemgen,78).text
while (%lns <= %ln) {
//did -a itemgen 76 $read(core/genInput/itemgen1.txt) $read(core/genInput/itemgen2.txt)
inc %lns
}
}
alias itemslist {
var %ln = 1
var %lines = $lines(core\data\itemlist.txt)
while (%ln <= %lines) {
//did -a itemgen 1 $reps($read(core\data\itemlist.txt, %ln))
inc %ln
}
}
alias bC.ed {
IF ($isid) {
IF (($len($1)) && ($len($2))) {
RETURN $readini core\data\items.vd $1 $2
}
ELSE { consoleEcho error $skz(Invalid Parameters) }
}
ELSE {
IF (($len($1)) && ($len($2)) && ($len($3))) {
writeini core\data\items.vd $1 $2 $3-
}
ELSE { consoleEcho error $skz(invalid syntax) }
}
}
--------------------------preview of beta map handler
on *:TEXT:`timeleft*:#: { var %m = $readini($chrdat($nick),stats,moving) | var %a = $readini($chrdat($nick),battle,attacking)
failsafe $nick
if (%at = false) { /notice $nick $skz(You are not Attacking) $hskz(`help combat) | halt }
if ($2 = attack) { notice $nick $skz(You have $duration($timer(.mv $+ $nick).secs) Left untill your attack hits) | halt }
if (!$2) { notice $nick $skz(You have $duration($timer(. $+ $nick $+ attacking).secs) until your attack hits.) | halt }
if ($2 = attack) { notice $nick $skz(You have $duration($timer(.mv $+ $nick).secs) Left untill your attack hits) | halt }
if (%m = false) { /notice $nick $skz(You are not moving) $hskz(`help map) | halt }
if ($2 = move) { notice $nick $skz(You have $duration($timer(.mv $+ $nick).secs) Left untill you reach your destination) | halt }
else { /notice $nick $skz(That Is Unknown To Me) $hskz(`help timeleft) | halt }
}
on *:Text:`move*:#: {
failsafe $nick
var %moving = $readini($chrdat($nick),stats,moving)
if (!$2) { /notice $nick $skz(Please choose a direction to move in north, south, east, west For Extensive Info Please Type `help map) | halt }
if (%moving = true) { /notice $nick $skz(You Are Already Moving) $hskz(`help timeleft) | halt }
if ($2 = north) {
var %p = $nick
var %d = -10
var %ppos = $readini($chrdat($nick),stats,playerpos)
var %f = $calc(%ppos %d)
var %pl = $mcn(%f)
var %dis = $readini(core\data\map.vd,1,distance)
if (%f < 0) { /notice $nick $skz(No Such Location!) | halt }
else {
/notice $nick $skz(You Are Now Travelling West)
//writeini core\users\ $+ %p $+ .udf stats moving true
/notice $nick $skz(You Will Arrive At Your Destination In $movetime($nick))
/timer. $+ move $+ $nick 1 %dis //notice $nick $skz(You Have Arrived In %pl) $hskz(`help options) | /timer. $+ mv $+ $nick 1 %dis //writeini core\users\ $+ %p $+ .udf stats playerpos %f | /timer. $+ mv2 $+ $nick 1 %dis //writeini core\users\ $+ %p $+ .udf stats moving false
halt
}
else { /notice $nick $skz(No such direction) $hskz(`help map)
}
}
if ($2 = south) {
var %p = $nick
var %d = +10
var %ppos = $readini($chrdat($nick),stats,playerpos)
var %f = $calc(%ppos %d)
var %pl = $mcn(%f)
var %dis = $readini(core\data\map.vd,1,distance)
if (%f > 100) { /notice $nick $skz(No Such Location!) | halt }
else {
/notice $nick $skz(You Are Now Travelling South)
//writeini core\users\ $+ %p $+ .udf stats moving true
/notice $nick $skz(You Will Arrive At Your Destination In $movetime($nick))
/timer. $+ move $+ $nick 1 %dis //notice $nick $skz(You Have Arrived In %pl) $hskz(`help options) | /timer. $+ mv $+ $nick 1 %dis //writeini core\users\ $+ %p $+ .udf stats playerpos %f | /timer. $+ mv2 $+ $nick 1 %dis //writeini core\users\ $+ %p $+ .udf stats moving false
halt
}
else { /notice $nick $skz(No such direction) $hskz(`help map)
}
}
if ($2 = east) {
var %p = $nick
var %d = +1
var %ppos = $readini($chrdat($nick),stats,playerpos)
var %f = $calc(%ppos %d)
var %pl = $mcn(%f)
var %dis = $readini(core\data\map.vd,1,distance)
if (%f > 100) { /notice $nick $skz(No Such Location!) | halt }
else {
/notice $nick $skz(You Are Now Travelling East)
//writeini core\users\ $+ %p $+ .udf stats moving true
/notice $nick $skz(You Will Arrive At Your Destination In $movetime($nick))
/timer. $+ move $+ $nick 1 %dis //notice $nick $skz(You Have Arrived In %pl) $hskz(`help options) | /timer. $+ mv $+ $nick 1 %dis //writeini core\users\ $+ %p $+ .udf stats playerpos %f | /timer. $+ mv2 $+ $nick 1 %dis //writeini core\users\ $+ %p $+ .udf stats moving false
halt
}
else { /notice $nick $skz(No such direction) $hskz(`help map)
}
}
if ($2 = west) {
var %p = $nick
var %d = -1
var %ppos = $readini($chrdat($nick),stats,playerpos)
var %f = $calc(%ppos %d)
var %pl = $mcn(%f)
var %dis = $readini(core\data\map.vd,1,distance)
if (%f < 0) { /notice $nick $skz(No Such Location!) | halt }
else {
if ($readini(core\data\map.vd,1,distance)
/notice $nick $skz(You Are Now Travelling West)
//writeini core\users\ $+ %p $+ .udf stats moving true
/notice $nick $skz(You Will Arrive At Your Destination In $movetime($nick))
/timer. $+ move $+ $nick 1 %dis //notice $nick $skz(You Have Arrived In %pl) $hskz(`help options) | /timer. $+ mv $+ $nick 1 %dis //writeini core\users\ $+ %p $+ .udf stats playerpos %f | /timer. $+ mv2 $+ $nick 1 %dis //writeini core\users\ $+ %p $+ .udf stats moving false
halt
}
else { /notice $nick $skz(No such direction) $hskz(`help map)
}
}
}
on *:Text:`options*:#: {
failsafe $nick
if (!$2) { /notice $nick $skz(Usage: `options target) $hskz(`help options) | halt }
var %s = $2
var %o = $readini(core\data\options.vd,%s,options)
if (%o = $null) { /notice $nick $skz(%s Is Unknown To Me Please Check Your Spelling) $hskz(`help options) | halt }
/notice $nick $skz(Options For %s Are: %o)
}
alias movetime { var %move $abs($calc($calc(24 * 27 * 9) - $calc($readini($chrdat($1),stats,speed) * 115) / 2)) | return %move }
alias mdf { return core\data\map.vd }
alias mcn { var %n = $1 | return $readini($mdf,%n,name) }
alias d2c { var %n = $1 | return $readini($mdf,%n,distance) }
if you tinker with it and add failsafes and fonts etc this can be a very efficient theme system, i might make a theme maker and extend it a bit it in the future