Currently, the code of the armor generation is as follows:
I'm not quite at peace with the distribution of values yet, he's still rolling too high for me.
Another problem what I have if the player rises a level how do I increase the values? the level is put out with $get.level($nick). So I have it At the moment there are now 3 queries: Vllt you have suggestions for improvement to code optimization etc.

Code
on 1:text:!!aug*:#: { 

  ;; check if $2 is a player in the game or not, if not do nothing
  if ($isfile($char($2)) != $true) { msg # sorry $2 is not a player in this game }

  ;;;;;;;define the augments that stored in a file.
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  var %aug1 $lines($lstfile(augments.lst))
  set %augline $rand(1,%aug1)  
  while (%aug1 >= 1) {
    %augs = $addtok(%augs, $read($lstfile(augments.lst), %aug1), 46)
    dec %aug1
    ;echo Zufälliges Augment %augs
  }

  ;;;;select 3 Random Augments and set it
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  set %current.aug $numtok(%augs,46)
  var %x 3
  while (%x >= 1) {
    %augments = $addtok(%augments,$gettok(%augs,$rand(1,%current.aug), 46), 46)
    dec %x
  }

  ;;;;;;;;;;;;;generate an itemname
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  $set_item_names

  ;;;;;;;;;;;;;;;;;;;;check if the item exists if not write the data to the file
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  if (%equipmentprefix isin $read($lstfile(armor_body.lst), w, * $+ %equipmentprefix $+ *)) || (%equipmentprefix isin $read($lstfile(armor_head.lst), w, * $+ %equipmentprefix $+ *)) || (%equipmentprefix isin $read($lstfile(armor_feet.lst), w, * $+ %equipmentprefix $+ *)) || (%equipmentprefix isin $read($lstfile(armor_legs.lst), w, * $+ %equipmentprefix $+ *)) || (%equipmentprefix isin $read($lstfile(armor_hands.lst), w, * $+ %equipmentprefix $+ *)) && ($readini($dbfile(equipment.db), %equipmentprefix, Name) != $null) { 

    msg $chan rüstung existiert bereits kann nicht erstellt werden.
  }
  if (%equipmentprefix !isin $read($lstfile(armor_body.lst), w, * $+ %equipmentprefix $+ *)) || (%equipmentprefix !isin $read($lstfile(armor_head.lst), w, * $+ %equipmentprefix $+ *)) || (%equipmentprefix !isin $read($lstfile(armor_feet.lst), w, * $+ %equipmentprefix $+ *)) || (%equipmentprefix !isin $read($lstfile(armor_legs.lst), w, * $+ %equipmentprefix $+ *)) || (%equipmentprefix !isin $read($lstfile(armor_hands.lst), w, * $+ %equipmentprefix $+ *)) && ($readini($dbfile(equipment.db), %equipmentprefix, Name) == $null) { 

    msg $chan %equipmentprefix does not exist and can be created
    $generate_armor($2)
    msg $chan Armor %equipmentprefix was successfully generated.
  }
}

alias generate_armor {
  var %validequiplocations head.body.legs.feet.hands
  set %random.location $rand(1, $numtok(%validequiplocations,46))
  set %location-a $gettok(%validequiplocations, %random.location, 46)
  var %armorname %equipmentprefix
  set %ahp $randnow2(1,450, 1,900, 60)
  set %atp $randnow2(1,50, 1,200, 60)
  set %aDef $randnow2(1,$rand(1,2500), 1,$rand(1,5000), 60)
  set %aint $randnow2(1,$rand(1,2500), 1,$rand(1,5000), 60)
  set %aspd $randnow2(1,$rand(1,2500), 1,$rand(1,5000), 60)
  set %astr $randnow2(1,$rand(1,2500), 1,$rand(1,5000), 60)
  $get.mid.vert($1)
  var %augment %augments
  var %location %location-a
  var %cost 0
  set %aSellprice $randnow2(1,2500, 1, 5000, 60)
  set %aLevel $randnow2(1,10500, 1, 21000, 60)
  ;set %aLevel $calc($get.level($nick) + 1)
  set %protection-a $calc($rand(1,10) / 10)
  set %mid.vert.new.eq $round($calc(%ahp + %atp + %astr + %int + %adef + %aspd / 6),0)
  if (%mid.vert.current.eq < %mid.vert.new.eq) {
    ;write $lstfile(armor_ $+ %location-a $+ .lst) %armorname
    ;writeini $dbfile(Equipment.db) %equipmentprefix Name %armorname
    ;writeini $dbfile(Equipment.db) %equipmentprefix Hp %ahp
    ;writeini $dbfile(Equipment.db) %equipmentprefix Tp %atp
    ;writeini $dbfile(Equipment.db) %equipmentprefix Str %astr
    ;writeini $dbfile(Equipment.db) %equipmentprefix Def %adef
    ;writeini $dbfile(Equipment.db) %equipmentprefix Int %aint
    ;writeini $dbfile(Equipment.db) %equipmentprefix Spd %aspd
    ;writeini $dbfile(Equipment.db) %equipmentprefix Augment %augments
    ;writeini $dbfile(Equipment.db) %equipmentprefix EquipLocation %location
    ;writeini $dbfile(Equipment.db) %equipmentprefix Cost 0
    ;writeini $dbfile(Equipment.db) %equipmentprefix SellPrice %aSellprice
    ;writeini $dbfile(Equipment.db) %equipmentprefix LevelRequirement %aLevel
    ;writeini $dbfile(Equipment.db) %equipmentprefix Protection %protection-a
    msg $chan $1 Gets the following armor: %equipmentprefix $+ . with this Attributes HP: %ahp TP: %atp STR: %astr DEF: %adef INT: %aint SPD: %aspd Level: %alevel -> Location: %location -> Augments: %augments
    unset %augments | unset %augs | unset %location-a | unset %random.location | unset %protection-a | unset %equipmentprefix
  }
}

alias get.mid.vert {
  set %current.equipped $readini($char($1), equipment, %location-a)
  set %eq-hp $readini($dbfile(equipment.db), %current.equipped, hp)
  set %eq-tp $readini($dbfile(equipment.db), %current.equipped, tp)
  set %eq-str $readini($dbfile(equipment.db), %current.equipped, str)
  set %eq-def $readini($dbfile(equipment.db), %current.equipped, def)
  set %eq-int $readini($dbfile(equipment.db), %current.equipped, int)
  set %eq-spd $readini($dbfile(equipment.db), %current.equipped, spd)
  set %mid.vert.current.eq $round($calc(%eq-hp + %eq-tp + %eq-str + %eq-def + %eq-int + %eq-spd / 6),0)
  msg #AiroRPG The Mid value of $1 Armor is: %mid.vert.current.eq
  return %mid.vert.current.eq
}

alias set_item_names {
  var %prefixline $lines(prefix.txt)
  var %suffixline $lines(suffix.txt)
  set %equipmentprefix $replace($read(suffix.txt, $rand(1,%suffixline)),$chr(32),_) $+ _ $+ $replace($read(prefix.txt, $rand(1,%prefixline)),$chr(32),_)
  var %equipmentprefix
}