home *** CD-ROM | disk | FTP | other *** search
/ PC Zone 125 / DPPCZ0203B.7z / DPPCZ0203B.ISO / Demos / Neverwinter / data1.cab / override / nw_o2_classweap.nss < prev    next >
Text File  |  2002-09-10  |  93KB  |  2,820 lines

  1. //::///////////////////////////////////////////////
  2. //:: Weapon Spawn Script for Martial Classes
  3. //:: Copyright (c) 2001 Bioware Corp.
  4. //:://////////////////////////////////////////////
  5. /*
  6.     Spawns in a magical SPECIFIC weapon suited for that class.
  7.     Will spawn in either a generic or specific, depending on the
  8.     value.
  9.  
  10.     NOTE: Only works on containers
  11. */
  12. //:://////////////////////////////////////////////
  13. //:: Created By:   Andrew, Brent
  14. //:: Created On:   February 2002
  15. //:://////////////////////////////////////////////
  16.  
  17. #include "NW_O2_CONINCLUDE"
  18.  
  19.  
  20.  
  21. void CreateBastardSword(object oTarget, object oAdventurer)
  22. {
  23.         string sItem = "";
  24.         int nHD = GetHitDice(oAdventurer);
  25.  
  26.         if (GetRange(1, nHD))    // * 800
  27.         {
  28.                   int nRandom = Random(1) + 1;
  29.                   switch (nRandom)
  30.                   {
  31.                        case 1: sItem = "nw_wswmbs002"; break;
  32.                    }
  33.         }
  34.         else if (GetRange(2, nHD))   // * 200 - 2500
  35.         {
  36.                   int nRandom = Random(1) + 1;
  37.                   switch (nRandom)
  38.                   {
  39.                        case 1: sItem = "nw_wswmbs002"; break;
  40.                    }
  41.         }
  42.         else if (GetRange(3, nHD))   // * 800 - 10000
  43.         {
  44.                   int nRandom = Random(2) + 1;
  45.                   switch (nRandom)
  46.                   {
  47.                        case 1: sItem = "nw_wswmbs002"; break;
  48.                        case 2: sItem = "nw_wswmbs009"; break;
  49.                    }
  50.  
  51.         }
  52.         else if (GetRange(4, nHD))   // * 2500 - 16500
  53.         {
  54.                   int nRandom = Random(2) + 1;
  55.                   switch (nRandom)
  56.                   {
  57.                        case 1: sItem = "nw_wswmbs009"; break;
  58.                        case 2: sItem = "nw_wswmbs005"; break;
  59.                    }
  60.  
  61.         }
  62.         else if (GetRange(5, nHD))   // * 8000 - 25000
  63.         {
  64.                    int nRandom = Random(3) + 1;
  65.                   switch (nRandom)
  66.                   {
  67.                        case 1: sItem = "nw_wswmbs005"; break;
  68.                        case 2: sItem = "nw_wswmbs010"; break;
  69.                        case 3: sItem = "nw_wswmbs006"; break;
  70.                    }
  71.  
  72.         }
  73.         else if (GetRange(6, nHD))   // * 16000 and up
  74.         {
  75.                   int nRandom = Random(5) + 1;
  76.                   switch (nRandom)
  77.                   {
  78.                        case 1: sItem = "nw_wswmbs010"; break;
  79.                        case 2: sItem = "nw_wswmbs006"; break;
  80.                        case 3: sItem = "nw_wswmbs007"; break;
  81.                        case 4: sItem = "nw_wswmbs003"; break;
  82.                        case 5: sItem = "nw_wswmbs004"; break;
  83.                    }
  84.         }
  85.         if (sItem != "")
  86.           dbCreateItemOnObject(sItem, oTarget, 1);
  87. }
  88. void CreateBattleAxe(object oTarget, object oAdventurer)
  89. {
  90.  
  91.         string sItem = "";
  92.         int nHD = GetHitDice(oAdventurer);
  93.  
  94.         if (GetRange(1, nHD))    // * 800
  95.         {
  96.                   int nRandom = Random(1) + 1;
  97.                   switch (nRandom)
  98.                   {
  99.                        case 1: sItem = "nw_waxmbt002"; break;
  100.                   }
  101.  
  102.         }
  103.         else if (GetRange(2, nHD))   // * 200 - 2500
  104.         {
  105.                   int nRandom = Random(1) + 1;
  106.                   switch (nRandom)
  107.                   {
  108.                        case 1: sItem = "nw_waxmbt002"; break;
  109.                    }
  110.  
  111.         }
  112.         else if (GetRange(3, nHD))   // * 800 - 10000
  113.         {
  114.                   int nRandom = Random(2) + 1;
  115.                   switch (nRandom)
  116.                   {
  117.                        case 1: sItem = "nw_waxmbt002"; break;
  118.                        case 2: sItem = "nw_waxmbt010"; break;
  119.                    }
  120.  
  121.         }
  122.         else if (GetRange(4, nHD))   // * 2500 - 16500
  123.         {
  124.                   int nRandom = Random(2) + 1;
  125.                   switch (nRandom)
  126.                   {
  127.                        case 1: sItem = "nw_waxmbt010"; break;
  128.                        case 2: sItem = "nw_waxmbt011"; break;
  129.                    }
  130.  
  131.         }
  132.         else if (GetRange(5, nHD))   // * 8000 - 25000
  133.         {
  134.                   int nRandom = Random(2) + 1;
  135.                   switch (nRandom)
  136.                   {
  137.                        case 1: sItem = "nw_waxmbt011"; break;
  138.                        case 2: sItem = "nw_waxmbt006"; break;
  139.                    }
  140.  
  141.         }
  142.         else if (GetRange(6, nHD))   // * 16000 and up
  143.         {
  144.                    int nRandom = Random(5) + 1;
  145.                   switch (nRandom)
  146.                   {
  147.                        case 1: sItem = "nw_waxmbt011"; break;
  148.                        case 2: sItem = "nw_waxmbt006"; break;
  149.                        case 3: sItem = "nw_waxmbt003"; break;
  150.                        case 4: sItem = "nw_waxmbt004"; break;
  151.                        case 5: sItem = "nw_waxmbt005"; break;
  152.                    }
  153.  
  154.         }
  155.         if (sItem != "")
  156.           dbCreateItemOnObject(sItem, oTarget, 1);
  157. }
  158. void CreateClub(object oTarget, object oAdventurer)
  159. {
  160.  
  161.         string sItem = "";
  162.         int nHD = GetHitDice(oAdventurer);
  163.  
  164.         if (GetRange(1, nHD))    // * 800
  165.         {
  166.                   int nRandom = Random(1) + 1;
  167.                   switch (nRandom)
  168.                   {
  169.                        case 1: sItem = "nw_wblmcl002"; break;
  170.                    }
  171.  
  172.         }
  173.         else if (GetRange(2, nHD))   // * 200 - 2500
  174.         {
  175.                     int nRandom = Random(1) + 1;
  176.                   switch (nRandom)
  177.                   {
  178.                        case 1: sItem = "nw_wblmcl002"; break;
  179.                    }
  180.  
  181.         }
  182.         else if (GetRange(3, nHD))   // * 800 - 10000
  183.         {
  184.                   int nRandom = Random(2) + 1;
  185.                   switch (nRandom)
  186.                   {
  187.                        case 1: sItem = "nw_wblmcl002"; break;
  188.                        case 2: sItem = "nw_wblmcl010"; break;
  189.                    }
  190.  
  191.         }
  192.         else if (GetRange(4, nHD))   // * 2500 - 16500
  193.         {
  194.                    int nRandom = Random(3) + 1;
  195.                   switch (nRandom)
  196.                   {
  197.                        case 1: sItem = "nw_wblmcl010"; break;
  198.                        case 2: sItem = "nw_wblmcl004"; break;
  199.                        case 3: sItem = "nw_wblmcl003"; break;
  200.                    }
  201.  
  202.         }
  203.         else if (GetRange(5, nHD))   // * 8000 - 25000
  204.         {
  205.                   int nRandom = Random(4) + 1;
  206.                   switch (nRandom)
  207.                   {
  208.                        case 1: sItem = "nw_wblmcl004"; break;
  209.                        case 2: sItem = "nw_wblmcl003"; break;
  210.                        case 3: sItem = "nw_wblmcl011"; break;
  211.                        case 4: sItem = "nw_wblmcl005"; break;
  212.                    }
  213.  
  214.         }
  215.         else if (GetRange(6, nHD))   // * 16000 and up
  216.         {
  217.                   int nRandom = Random(3) + 1;
  218.                   switch (nRandom)
  219.                   {
  220.                        case 1: sItem = "nw_wblmcl011"; break;
  221.                        case 2: sItem = "nw_wblmcl005"; break;
  222.                        case 3: sItem = "nw_wblmcl006"; break;
  223.                    }
  224.  
  225.         }
  226.         if (sItem != "")
  227.           dbCreateItemOnObject(sItem, oTarget, 1);
  228. }
  229.  
  230. void CreateDagger(object oTarget, object oAdventurer)
  231. {
  232.  
  233.         string sItem = "";
  234.         int nHD = GetHitDice(oAdventurer);
  235.  
  236.         if (GetRange(1, nHD))    // * 800
  237.         {
  238.                   int nRandom = Random(1) + 1;
  239.                   switch (nRandom)
  240.                   {
  241.                        case 1: sItem = "nw_wswmdg002"; break;
  242.                    }
  243.  
  244.         }
  245.         else if (GetRange(2, nHD))   // * 200 - 2500
  246.         {
  247.  
  248.                   int nRandom = Random(1) + 1;
  249.                   switch (nRandom)
  250.                   {
  251.                        case 1: sItem = "nw_wswmdg002"; break;
  252.                    }
  253.         }
  254.         else if (GetRange(3, nHD))   // * 800 - 10000
  255.         {
  256.                   int nRandom = Random(3) + 1;
  257.                   switch (nRandom)
  258.                   {
  259.                        case 1: sItem = "nw_wswmdg002"; break;
  260.                        case 2: sItem = "nw_wswmdg008"; break;
  261.                        case 3: sItem = "nw_wswmdg006"; break;
  262.                    }
  263.  
  264.         }
  265.         else if (GetRange(4, nHD))   // * 2500 - 16500
  266.         {
  267.                   int nRandom = Random(3) + 1;
  268.                   switch (nRandom)
  269.                   {
  270.                        case 1: sItem = "nw_wswmdg008"; break;
  271.                        case 2: sItem = "nw_wswmdg006"; break;
  272.                        case 3: sItem = "nw_wswmdg009"; break;
  273.                    }
  274.  
  275.         }
  276.         else if (GetRange(5, nHD))   // * 8000 - 25000
  277.         {
  278.                   int nRandom = Random(2) + 1;
  279.                   switch (nRandom)
  280.                   {
  281.                        case 1: sItem = "nw_wswmdg009"; break;
  282.                        case 2: sItem = "nw_wswmdg004"; break;
  283.                    }
  284.  
  285.         }
  286.         else if (GetRange(6, nHD))   // * 16000 and up
  287.         {
  288.                   int nRandom = Random(5) + 1;
  289.                   switch (nRandom)
  290.                   {
  291.                        case 1: sItem = "nw_wswmdg009"; break;
  292.                        case 2: sItem = "nw_wswmdg004"; break;
  293.                        case 3: sItem = "nw_wswmdg003"; break;
  294.                        case 4: sItem = "nw_wswmdg007"; break;
  295.                        case 5: sItem = "nw_wswmdg005"; break;
  296.                    }
  297.  
  298.         }
  299.         if (sItem != "")
  300.           dbCreateItemOnObject(sItem, oTarget, 1);
  301. }
  302. void CreateDart(object oTarget, object oAdventurer)
  303. {
  304.  
  305.         string sItem = "";
  306.         int nHD = GetHitDice(oAdventurer);
  307.  
  308.         if (GetRange(1, nHD))    // * 800
  309.         {
  310.                   int nRandom = Random(3) + 1;
  311.                   switch (nRandom)
  312.                   {
  313.                        case 1: sItem = "nw_wthmdt002"; break;
  314.                        case 2: sItem = "nw_wthmdt002"; break;
  315.                        case 3: sItem = "nw_wthmdt008"; break;
  316.                    }
  317.  
  318.         }
  319.         else if (GetRange(2, nHD))   // * 200 - 2500
  320.         {
  321.                   int nRandom = Random(3) + 1;
  322.                   switch (nRandom)
  323.                   {
  324.                        case 1: sItem = "nw_wthmdt008"; break;
  325.                        case 2: sItem = "nw_wthmdt009"; break;
  326.                        case 3: sItem = "nw_wthmdt003"; break;
  327.                    }
  328.  
  329.         }
  330.         else
  331.         {
  332.                   int nRandom = Random(3) + 1;
  333.                   switch (nRandom)
  334.                   {
  335.                        case 1: sItem = "nw_wthmdt009"; break;
  336.                        case 2: sItem = "nw_wthmdt003"; break;
  337.                        case 3: sItem = "nw_wthmdt007"; break;
  338.                    }
  339.  
  340.         }
  341.  
  342.         if (sItem != "")
  343.           dbCreateItemOnObject(sItem, oTarget, Random(40) + 1);
  344. }
  345. void CreateDireMace(object oTarget, object oAdventurer)
  346. {
  347.  
  348.         string sItem = "";
  349.         int nHD = GetHitDice(oAdventurer);
  350.  
  351.         if (GetRange(1, nHD))    // * 800
  352.         {
  353.                   int nRandom = Random(1) + 1;
  354.                   switch (nRandom)
  355.                   {
  356.                        case 1: sItem = "nw_wdbmma002"; break;
  357.                    }
  358.  
  359.         }
  360.         else if (GetRange(2, nHD))   // * 200 - 2500
  361.         {
  362.                   int nRandom = Random(1) + 1;
  363.                   switch (nRandom)
  364.                   {
  365.                        case 1: sItem = "nw_wdbmma002"; break;
  366.                    }
  367.  
  368.         }
  369.         else if (GetRange(3, nHD))   // * 800 - 10000
  370.         {
  371.                   int nRandom = Random(3) + 1;
  372.                   switch (nRandom)
  373.                   {
  374.                        case 1: sItem = "nw_wdbmma002"; break;
  375.                        case 2: sItem = "nw_wdbmma003"; break;
  376.                        case 3: sItem = "nw_wdbmma010"; break;
  377.                    }
  378.  
  379.         }
  380.         else if (GetRange(4, nHD))   // * 2500 - 16500
  381.         {
  382.                   int nRandom = Random(3) + 1;
  383.                   switch (nRandom)
  384.                   {
  385.                        case 1: sItem = "nw_wdbmma003"; break;
  386.                        case 2: sItem = "nw_wdbmma010"; break;
  387.                        case 3: sItem = "nw_wdbmma005"; break;
  388.                    }
  389.  
  390.         }
  391.         else if (GetRange(5, nHD))   // * 8000 - 25000
  392.         {
  393.                   int nRandom = Random(4) + 1;
  394.                   switch (nRandom)
  395.                   {
  396.                        case 1: sItem = "nw_wdbmma005"; break;
  397.                        case 2: sItem = "nw_wdbmma011"; break;
  398.                        case 3: sItem = "nw_wdbmma004"; break;
  399.                        case 4: sItem = "nw_wdbmma006"; break;
  400.                    }
  401.  
  402.         }
  403.         else if (GetRange(6, nHD))   // * 16000 and up
  404.         {
  405.                   int nRandom = Random(4) + 1;
  406.                   switch (nRandom)
  407.                   {
  408.                        case 1: sItem = "nw_wdbmma005"; break;
  409.                        case 2: sItem = "nw_wdbmma011"; break;
  410.                        case 3: sItem = "nw_wdbmma004"; break;
  411.                        case 4: sItem = "nw_wdbmma006"; break;
  412.                    }
  413.  
  414.         }
  415.         if (sItem != "")
  416.           dbCreateItemOnObject(sItem, oTarget, 1);
  417. }
  418. void CreateDoubleAxe(object oTarget, object oAdventurer)
  419. {
  420.  
  421.         string sItem = "";
  422.         int nHD = GetHitDice(oAdventurer);
  423.  
  424.         if (GetRange(1, nHD))    // * 800
  425.         {
  426.                   int nRandom = Random(1) + 1;
  427.                   switch (nRandom)
  428.                   {
  429.                        case 1: sItem = "nw_wdbmax002"; break;
  430.                    }
  431.  
  432.         }
  433.         else if (GetRange(2, nHD))   // * 200 - 2500
  434.         {
  435.                   int nRandom = Random(1) + 1;
  436.                   switch (nRandom)
  437.                   {
  438.                        case 1: sItem = "nw_wdbmax002"; break;
  439.                    }
  440.  
  441.         }
  442.         else if (GetRange(3, nHD))   // * 800 - 10000
  443.         {
  444.                   int nRandom = Random(3) + 1;
  445.                   switch (nRandom)
  446.                   {
  447.                        case 1: sItem = "nw_wdbmax002"; break;
  448.                        case 2: sItem = "nw_wdbmax010"; break;
  449.                        case 3: sItem = "nw_wdbmax006"; break;
  450.                    }
  451.  
  452.         }
  453.         else if (GetRange(4, nHD))   // * 2500 - 16500
  454.         {
  455.                   int nRandom = Random(3) + 1;
  456.                   switch (nRandom)
  457.                   {
  458.                        case 1: sItem = "nw_wdbmax010"; break;
  459.                        case 2: sItem = "nw_wdbmax006"; break;
  460.                        case 3: sItem = "nw_wdbmax005"; break;
  461.                    }
  462.  
  463.         }
  464.         else  if (GetRange(5, nHD))
  465.         {
  466.                   int nRandom = Random(4) + 1;
  467.                   switch (nRandom)
  468.                   {
  469.                        case 1: sItem = "nw_wdbmax005"; break;
  470.                        case 2: sItem = "nw_wdbmax011"; break;
  471.                        case 3: sItem = "nw_wdbmax004"; break;
  472.                        case 4: sItem = "nw_wdbmax007"; break;
  473.                    }
  474.  
  475.         }
  476.         else if (GetRange(6, nHD))   // * 16000 and up
  477.         {
  478.                   int nRandom = Random(3) + 1;
  479.                   switch (nRandom)
  480.                   {
  481.                        case 1: sItem = "nw_wdbmax011"; break;
  482.                        case 2: sItem = "nw_wdbmax004"; break;
  483.                        case 3: sItem = "nw_wdbmax007"; break;
  484.                    }
  485.  
  486.         }
  487.         if (sItem != "")
  488.           dbCreateItemOnObject(sItem, oTarget, 1);
  489. }
  490. void CreateGreatAxe(object oTarget, object oAdventurer)
  491. {
  492.  
  493.         string sItem = "";
  494.         int nHD = GetHitDice(oAdventurer);
  495.  
  496.         if (GetRange(1, nHD))    // * 800
  497.         {
  498.                   int nRandom = Random(1) + 1;
  499.                   switch (nRandom)
  500.                   {
  501.                        case 1: sItem = "nw_waxmgr002"; break;
  502.                    }
  503.  
  504.         }
  505.         else if (GetRange(2, nHD))   // * 200 - 2500
  506.         {
  507.                   int nRandom = Random(1) + 1;
  508.                   switch (nRandom)
  509.                   {
  510.                        case 1: sItem = "nw_waxmgr002"; break;
  511.                    }
  512.  
  513.         }
  514.         else if (GetRange(3, nHD))   // * 800 - 10000
  515.         {
  516.                   int nRandom = Random(2) + 1;
  517.                   switch (nRandom)
  518.                   {
  519.                        case 1: sItem = "nw_waxmgr002"; break;
  520.                        case 2: sItem = "nw_waxmgr009"; break;
  521.                    }
  522.  
  523.         }
  524.         else if (GetRange(4, nHD))   // * 2500 - 16500
  525.         {
  526.                   int nRandom = Random(4) + 1;
  527.                   switch (nRandom)
  528.                   {
  529.                        case 1: sItem = "nw_waxmgr002"; break;
  530.                        case 2: sItem = "nw_waxmgr009"; break;
  531.                        case 3: sItem = "nw_waxmgr003"; break;
  532.                        case 4: sItem = "nw_waxmgr006"; break;
  533.                    }
  534.  
  535.         }
  536.         else if (GetRange(5, nHD))   // * 8000 - 25000
  537.         {
  538.  
  539.                   int nRandom = Random(3) + 1;
  540.                   switch (nRandom)
  541.                   {
  542.                        case 1: sItem = "nw_waxmgr003"; break;
  543.                        case 2: sItem = "nw_waxmgr006"; break;
  544.                        case 3: sItem = "nw_waxmgr011"; break;
  545.                    }
  546.         }
  547.         else if (GetRange(6, nHD))   // * 16000 and up
  548.         {
  549.                   int nRandom = Random(3) + 1;
  550.                   switch (nRandom)
  551.                   {
  552.                        case 1: sItem = "nw_waxmgr011"; break;
  553.                        case 2: sItem = "nw_waxmgr005"; break;
  554.                        case 3: sItem = "nw_waxmgr004"; break;
  555.                    }
  556.  
  557.         }
  558.         if (sItem != "")
  559.           dbCreateItemOnObject(sItem, oTarget, 1);
  560. }
  561. void CreateGreatSword(object oTarget, object oAdventurer)
  562. {
  563.  
  564.         string sItem = "";
  565.         int nHD = GetHitDice(oAdventurer);
  566.  
  567.         if (GetRange(1, nHD))    // * 800
  568.         {
  569.                   int nRandom = Random(1) + 1;
  570.                   switch (nRandom)
  571.                   {
  572.                        case 1: sItem = "nw_wswmgs002"; break;
  573.                    }
  574.  
  575.         }
  576.         else if (GetRange(2, nHD))   // * 200 - 2500
  577.         {
  578.                   int nRandom = Random(1) + 1;
  579.                   switch (nRandom)
  580.                   {
  581.                        case 1: sItem = "nw_wswmgs002"; break;
  582.                    }
  583.  
  584.         }
  585.         else if (GetRange(3, nHD))   // * 800 - 10000
  586.         {
  587.                   int nRandom = Random(2) + 1;
  588.                   switch (nRandom)
  589.                   {
  590.                        case 1: sItem = "nw_wswmgs002"; break;
  591.                        case 2: sItem = "nw_wswmgs011"; break;
  592.                    }
  593.  
  594.         }
  595.         else if (GetRange(4, nHD))   // * 2500 - 16500
  596.         {
  597.                   int nRandom = Random(3) + 1;
  598.                   switch (nRandom)
  599.                   {
  600.                        case 1: sItem = "nw_wswmgs011"; break;
  601.                        case 2: sItem = "nw_wswmgs006"; break;
  602.                        case 3: sItem = "nw_wswmgs004"; break;
  603.                    }
  604.  
  605.         }
  606.         else if (GetRange(5, nHD))   // * 8000 - 25000
  607.         {
  608.                   int nRandom = Random(4) + 1;
  609.                   switch (nRandom)
  610.                   {
  611.                        case 1: sItem = "nw_wswmgs006"; break;
  612.                        case 2: sItem = "nw_wswmgs004"; break;
  613.                        case 3: sItem = "nw_wswmgs012"; break;
  614.                        case 4: sItem = "nw_wswmgs005"; break;
  615.                    }
  616.  
  617.         }
  618.         else if (GetRange(6, nHD))   // * 16000 and up
  619.         {
  620.  
  621.                   int nRandom = Random(3) + 1;
  622.                   switch (nRandom)
  623.                   {
  624.                        case 1: sItem = "nw_wswmgs012"; break;
  625.                        case 2: sItem = "nw_wswmgs005"; break;
  626.                        case 3: sItem = "nw_wswmgs003"; break;
  627.                    }
  628.         }
  629.         if (sItem != "")
  630.           dbCreateItemOnObject(sItem, oTarget, 1);
  631. }
  632. void CreateHalberd(object oTarget, object oAdventurer)
  633. {
  634.  
  635.         string sItem = "";
  636.         int nHD = GetHitDice(oAdventurer);
  637.  
  638.         if (GetRange(1, nHD))    // * 800
  639.         {
  640.                   int nRandom = Random(1) + 1;
  641.                   switch (nRandom)
  642.                   {
  643.                        case 1: sItem = "nw_wplmhb002"; break;
  644.                    }
  645.  
  646.         }
  647.         else if (GetRange(2, nHD))   // * 200 - 2500
  648.         {
  649.                   int nRandom = Random(1) + 1;
  650.                   switch (nRandom)
  651.                   {
  652.                        case 1: sItem = "nw_wplmhb002"; break;
  653.                    }
  654.  
  655.         }
  656.         else if (GetRange(3, nHD))   // * 800 - 10000
  657.         {
  658.                   int nRandom = Random(2) + 1;
  659.                   switch (nRandom)
  660.                   {
  661.                        case 1: sItem = "nw_wplmhb002"; break;
  662.                        case 2: sItem = "nw_wplmhb010"; break;
  663.                    }
  664.  
  665.         }
  666.         else if (GetRange(4, nHD))   // * 2500 - 16500
  667.         {
  668.                   int nRandom = Random(2) + 1;
  669.                   switch (nRandom)
  670.                   {
  671.                        case 1: sItem = "nw_wplmhb010"; break;
  672.                        case 2: sItem = "nw_wplmhb004"; break;
  673.                    }
  674.  
  675.         }
  676.         else if (GetRange(5, nHD))   // * 8000 - 25000
  677.         {
  678.                   int nRandom = Random(3) + 1;
  679.                   switch (nRandom)
  680.                   {
  681.                        case 1: sItem = "nw_wplmhb004"; break;
  682.                        case 2: sItem = "nw_wplmhb011"; break;
  683.                        case 3: sItem = "nw_wplmhb003"; break;
  684.                    }
  685.  
  686.         }
  687.         else if (GetRange(6, nHD))   // * 16000 and up
  688.         {
  689.                   int nRandom = Random(4) + 1;
  690.                   switch (nRandom)
  691.                   {
  692.                        case 1: sItem = "nw_wplmhb011"; break;
  693.                        case 2: sItem = "nw_wplmhb003"; break;
  694.                        case 3: sItem = "nw_wplmhb007"; break;
  695.                        case 4: sItem = "nw_wplmhb006"; break;
  696.                    }
  697.  
  698.         }
  699.         if (sItem != "")
  700.           dbCreateItemOnObject(sItem, oTarget, 1);
  701. }
  702. void CreateHandAxe(object oTarget, object oAdventurer)
  703. {
  704.  
  705.         string sItem = "";
  706.         int nHD = GetHitDice(oAdventurer);
  707.  
  708.         if (GetRange(1, nHD))    // * 800
  709.         {
  710.                   int nRandom = Random(1) + 1;
  711.                   switch (nRandom)
  712.                   {
  713.                        case 1: sItem = "nw_waxmhn002"; break;
  714.                    }
  715.  
  716.         }
  717.         else if (GetRange(2, nHD))   // * 200 - 2500
  718.         {
  719.                   int nRandom = Random(1) + 1;
  720.                   switch (nRandom)
  721.                   {
  722.                        case 1: sItem = "nw_waxmhn002"; break;
  723.                    }
  724.  
  725.         }
  726.         else if (GetRange(3, nHD))   // * 800 - 10000
  727.         {
  728.                   int nRandom = Random(2) + 1;
  729.                   switch (nRandom)
  730.                   {
  731.                        case 1: sItem = "nw_waxmhn002"; break;
  732.                        case 2: sItem = "nw_waxmhn010"; break;
  733.                    }
  734.  
  735.         }
  736.         else if (GetRange(4, nHD))   // * 2500 - 16500
  737.         {
  738.                   int nRandom = Random(2) + 1;
  739.                   switch (nRandom)
  740.                   {
  741.                        case 1: sItem = "nw_waxmhn010"; break;
  742.                        case 2: sItem = "nw_waxmhn004"; break;
  743.                    }
  744.  
  745.         }
  746.         else if (GetRange(5, nHD))   // * 8000 - 25000
  747.         {
  748.                   int nRandom = Random(4) + 1;
  749.                   switch (nRandom)
  750.                   {
  751.                        case 1: sItem = "nw_waxmhn004"; break;
  752.                        case 2: sItem = "nw_waxmhn011"; break;
  753.                        case 3: sItem = "nw_waxmhn003"; break;
  754.                        case 4: sItem = "nw_waxmhn005"; break;
  755.                    }
  756.  
  757.         }
  758.         else if (GetRange(6, nHD))   // * 16000 and up
  759.         {
  760.                   int nRandom = Random(4) + 1;
  761.                   switch (nRandom)
  762.                   {
  763.                        case 1: sItem = "nw_waxmhn011"; break;
  764.                        case 2: sItem = "nw_waxmhn003"; break;
  765.                        case 3: sItem = "nw_waxmhn005"; break;
  766.                        case 4: sItem = "nw_waxmhn006"; break;
  767.                    }
  768.  
  769.         }
  770.         if (sItem != "")
  771.           dbCreateItemOnObject(sItem, oTarget, 1);
  772. }
  773. void CreateHeavyCrossbow(object oTarget, object oAdventurer)
  774. {
  775.  
  776.         string sItem = "";
  777.         int nHD = GetHitDice(oAdventurer);
  778.  
  779.         if (GetRange(1, nHD))    // * 800
  780.         {
  781.                   int nRandom = Random(2) + 1;
  782.                   switch (nRandom)
  783.                   {
  784.                        case 1: sItem = "nw_wbwmxh002"; break;
  785.                        case 2: sItem = "nw_wbwmxh002"; break;
  786.                    }
  787.  
  788.         }
  789.         else if (GetRange(2, nHD))   // * 200 - 2500
  790.         {
  791.                   int nRandom = Random(2) + 1;
  792.                   switch (nRandom)
  793.                   {
  794.                        case 1: sItem = "nw_wbwmxh002"; break;
  795.                        case 2: sItem = "nw_wbwmxh008"; break;
  796.                    }
  797.  
  798.         }
  799.         else if (GetRange(3, nHD))   // * 800 - 10000
  800.         {
  801.                   int nRandom = Random(4) + 1;
  802.                   switch (nRandom)
  803.                   {
  804.                        case 1: sItem = "nw_wbwmxh002"; break;
  805.                        case 2: sItem = "nw_wbwmxh008"; break;
  806.                        case 3: sItem = "nw_wbwmxh009"; break;
  807.                        case 4: sItem = "nw_wbwmxh005"; break;
  808.                    }
  809.  
  810.         }
  811.         else if (GetRange(4, nHD))   // * 2500 - 16500
  812.         {
  813.                   int nRandom = Random(3) + 1;
  814.                   switch (nRandom)
  815.                   {
  816.                        case 1: sItem = "nw_wbwmxh009"; break;
  817.                        case 2: sItem = "nw_wbwmxh005"; break;
  818.                        case 3: sItem = "nw_wbwmxh003"; break;
  819.                    }
  820.  
  821.         }
  822.         else if (GetRange(5, nHD))   // * 8000 - 25000
  823.         {
  824.                   int nRandom = Random(2) + 1;
  825.                   switch (nRandom)
  826.                   {
  827.                        case 1: sItem = "nw_wbwmxh003"; break;
  828.                        case 2: sItem = "nw_wbwmxh004"; break;
  829.                    }
  830.  
  831.         }
  832.         else if (GetRange(6, nHD))   // * 16000 and up
  833.         {
  834.                   int nRandom = Random(3) + 1;
  835.                   switch (nRandom)
  836.                   {
  837.                        case 1: sItem = "nw_wbwmxh004"; break;
  838.                        case 2: sItem = "nw_wbwmxh007"; break;
  839.                        case 3: sItem = "nw_wbwmxh006"; break;
  840.                    }
  841.  
  842.         }
  843.         if (sItem != "")
  844.           dbCreateItemOnObject(sItem, oTarget, 1);
  845. }
  846. void CreateHeavyFlail(object oTarget, object oAdventurer)
  847. {
  848.  
  849.         string sItem = "";
  850.         int nHD = GetHitDice(oAdventurer);
  851.  
  852.         if (GetRange(1, nHD))    // * 800
  853.         {
  854.                   int nRandom = Random(1) + 1;
  855.                   switch (nRandom)
  856.                   {
  857.                        case 1: sItem = "nw_wblmfh002"; break;
  858.                    }
  859.  
  860.         }
  861.         else if (GetRange(2, nHD))   // * 200 - 2500
  862.         {
  863.                   int nRandom = Random(1) + 1;
  864.                   switch (nRandom)
  865.                   {
  866.                        case 1: sItem = "nw_wblmfh002"; break;
  867.                    }
  868.  
  869.         }
  870.         else if (GetRange(3, nHD))   // * 800 - 10000
  871.         {
  872.                   int nRandom = Random(3) + 1;
  873.                   switch (nRandom)
  874.                   {
  875.                        case 1: sItem = "nw_wblmfh002"; break;
  876.                        case 2: sItem = "nw_wblmfh007"; break;
  877.                        case 3: sItem = "nw_wblmfh010"; break;
  878.                    }
  879.  
  880.         }
  881.         else if (GetRange(4, nHD))   // * 2500 - 16500
  882.         {
  883.                   int nRandom = Random(5) + 1;
  884.                   switch (nRandom)
  885.                   {
  886.                        case 1: sItem = "nw_wblmfh002"; break;
  887.                        case 2: sItem = "nw_wblmfh007"; break;
  888.                        case 3: sItem = "nw_wblmfh010"; break;
  889.                        case 4: sItem = "nw_wblmfh004"; break;
  890.                        case 5: sItem = "nw_wblmfh008"; break;
  891.                    }
  892.  
  893.         }
  894.         else if (GetRange(5, nHD))   // * 8000 - 25000
  895.         {
  896.                   int nRandom = Random(5) + 1;
  897.                   switch (nRandom)
  898.                   {
  899.                        case 1: sItem = "nw_wblmfh004"; break;
  900.                        case 2: sItem = "nw_wblmfh008"; break;
  901.                        case 3: sItem = "nw_wblmfh011"; break;
  902.                        case 4: sItem = "nw_wblmfh006"; break;
  903.                        case 5: sItem = "nw_wblmfh003"; break;
  904.                    }
  905.  
  906.         }
  907.         else if (GetRange(6, nHD))   // * 16000 and up
  908.         {
  909.                    int nRandom = Random(4) + 1;
  910.                   switch (nRandom)
  911.                   {
  912.                        case 1: sItem = "nw_wblmfh011"; break;
  913.                        case 2: sItem = "nw_wblmfh006"; break;
  914.                        case 3: sItem = "nw_wblmfh003"; break;
  915.                        case 4: sItem = "nw_wblmfh005"; break;
  916.                    }
  917.  
  918.         }
  919.         if (sItem != "")
  920.           dbCreateItemOnObject(sItem, oTarget, 1);
  921. }
  922. void CreateKama(object oTarget, object oAdventurer)
  923. {
  924.  
  925.         string sItem = "";
  926.         int nHD = GetHitDice(oAdventurer);
  927.  
  928.         if (GetRange(1, nHD))    // * 800
  929.         {
  930.                   int nRandom = Random(1) + 1;
  931.                   switch (nRandom)
  932.                   {
  933.                        case 1: sItem = "nw_wspmka002"; break;
  934.                    }
  935.  
  936.         }
  937.         else if (GetRange(2, nHD))   // * 200 - 2500
  938.         {
  939.                   int nRandom = Random(1) + 1;
  940.                   switch (nRandom)
  941.                   {
  942.                        case 1: sItem = "nw_wspmka002"; break;
  943.                    }
  944.  
  945.         }
  946.         else if (GetRange(3, nHD))   // * 800 - 10000
  947.         {
  948.                   int nRandom = Random(5) + 1;
  949.                   switch (nRandom)
  950.                   {
  951.                        case 1: sItem = "nw_wspmka002"; break;
  952.                        case 2: sItem = "nw_wspmka004"; break;
  953.                        case 3: sItem = "nw_wspmka007"; break;
  954.                        case 4: sItem = "nw_wspmka008"; break;
  955.                        case 5: sItem = "nw_wspmka005"; break;
  956.                    }
  957.  
  958.         }
  959.         else if (GetRange(4, nHD))   // * 2500 - 16500
  960.         {
  961.                   int nRandom = Random(4) + 1;
  962.                   switch (nRandom)
  963.                   {
  964.                        case 1: sItem = "nw_wspmka004"; break;
  965.                        case 2: sItem = "nw_wspmka007"; break;
  966.                        case 3: sItem = "nw_wspmka008"; break;
  967.                        case 4: sItem = "nw_wspmka005"; break;
  968.                    }
  969.  
  970.         }
  971.         else if (GetRange(5, nHD))   // * 8000 - 25000
  972.         {
  973.                   int nRandom = Random(4) + 1;
  974.                   switch (nRandom)
  975.                   {
  976.                        case 1: sItem = "nw_wspmka005"; break;
  977.                        case 2: sItem = "nw_wspmka009"; break;
  978.                        case 3: sItem = "nw_wspmka006"; break;
  979.                        case 4: sItem = "nw_wspmka003"; break;
  980.                    }
  981.  
  982.         }
  983.         else if (GetRange(6, nHD))   // * 16000 and up
  984.         {
  985.                   int nRandom = Random(3) + 1;
  986.                   switch (nRandom)
  987.                   {
  988.                        case 1: sItem = "nw_wspmka009"; break;
  989.                        case 2: sItem = "nw_wspmka006"; break;
  990.                        case 3: sItem = "nw_wspmka003"; break;
  991.                    }
  992.  
  993.         }
  994.         if (sItem != "")
  995.           dbCreateItemOnObject(sItem, oTarget, 1);
  996. }
  997. void CreateKatana(object oTarget, object oAdventurer)
  998. {
  999.  
  1000.         string sItem = "";
  1001.         int nHD = GetHitDice(oAdventurer);
  1002.  
  1003.         if (GetRange(1, nHD))    // * 800
  1004.         {
  1005.                    int nRandom = Random(1) + 1;
  1006.                   switch (nRandom)
  1007.                   {
  1008.                        case 1: sItem = "nw_wswmka002"; break;
  1009.                    }
  1010.  
  1011.         }
  1012.         else if (GetRange(2, nHD))   // * 200 - 2500
  1013.         {
  1014.                   int nRandom = Random(1) + 1;
  1015.                   switch (nRandom)
  1016.                   {
  1017.                        case 1: sItem = "nw_wswmka002"; break;
  1018.                    }
  1019.  
  1020.         }
  1021.         else if (GetRange(3, nHD))   // * 800 - 10000
  1022.         {
  1023.                   int nRandom = Random(3) + 1;
  1024.                   switch (nRandom)
  1025.                   {
  1026.                        case 1: sItem = "nw_wswmka002"; break;
  1027.                        case 2: sItem = "nw_wswmka005"; break;
  1028.                        case 3: sItem = "nw_wswmka010"; break;
  1029.                    }
  1030.  
  1031.         }
  1032.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1033.         {
  1034.                   int nRandom = Random(2) + 1;
  1035.                   switch (nRandom)
  1036.                   {
  1037.                        case 1: sItem = "nw_wswmka005"; break;
  1038.                        case 2: sItem = "nw_wswmka010"; break;
  1039.                    }
  1040.  
  1041.         }
  1042.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1043.         {
  1044.                   int nRandom = Random(2) + 1;
  1045.                   switch (nRandom)
  1046.                   {
  1047.                        case 1: sItem = "nw_wswmka011"; break;
  1048.                        case 2: sItem = "nw_wswmka007"; break;
  1049.                    }
  1050.  
  1051.         }
  1052.         else if (GetRange(6, nHD))   // * 16000 and up
  1053.         {
  1054.                   int nRandom = Random(4) + 1;
  1055.                   switch (nRandom)
  1056.                   {
  1057.                        case 1: sItem = "nw_wswmka011"; break;
  1058.                        case 2: sItem = "nw_wswmka007"; break;
  1059.                        case 3: sItem = "nw_wswmka006"; break;
  1060.                        case 4: sItem = "nw_wswmka004"; break;
  1061.                    }
  1062.  
  1063.         }
  1064.         if (sItem != "")
  1065.           dbCreateItemOnObject(sItem, oTarget, 1);
  1066. }
  1067. void CreateKukri(object oTarget, object oAdventurer)
  1068. {
  1069.  
  1070.         string sItem = "";
  1071.         int nHD = GetHitDice(oAdventurer);
  1072.  
  1073.         if (GetRange(1, nHD))    // * 800
  1074.         {
  1075.                   int nRandom = Random(1) + 1;
  1076.                   switch (nRandom)
  1077.                   {
  1078.                        case 1: sItem = "nw_wspmku002"; break;
  1079.                    }
  1080.  
  1081.         }
  1082.         else if (GetRange(2, nHD))   // * 200 - 2500
  1083.         {
  1084.                   int nRandom = Random(1) + 1;
  1085.                   switch (nRandom)
  1086.                   {
  1087.                        case 1: sItem = "nw_wspmku002"; break;
  1088.                    }
  1089.  
  1090.         }
  1091.         else if (GetRange(3, nHD))   // * 800 - 10000
  1092.         {
  1093.                   int nRandom = Random(4) + 1;
  1094.                   switch (nRandom)
  1095.                   {
  1096.                        case 1: sItem = "nw_wspmku002"; break;
  1097.                        case 2: sItem = "nw_wspmku006"; break;
  1098.                        case 3: sItem = "nw_wspmku008"; break;
  1099.                        case 4: sItem = "nw_wspmku005"; break;
  1100.                    }
  1101.  
  1102.         }
  1103.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1104.         {
  1105.                   int nRandom = Random(4) + 1;
  1106.                   switch (nRandom)
  1107.                   {
  1108.                        case 1: sItem = "nw_wspmku006"; break;
  1109.                        case 2: sItem = "nw_wspmku008"; break;
  1110.                        case 3: sItem = "nw_wspmku005"; break;
  1111.                        case 4: sItem = "nw_wspmku004"; break;
  1112.                    }
  1113.  
  1114.         }
  1115.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1116.         {
  1117.                   int nRandom = Random(3) + 1;
  1118.                   switch (nRandom)
  1119.                   {
  1120.                        case 1: sItem = "nw_wspmku004"; break;
  1121.                        case 2: sItem = "nw_wspmku009"; break;
  1122.                        case 3: sItem = "nw_wspmku007"; break;
  1123.                    }
  1124.  
  1125.         }
  1126.         else if (GetRange(6, nHD))   // * 16000 and up
  1127.         {
  1128.                   int nRandom = Random(2) + 1;
  1129.                   switch (nRandom)
  1130.                   {
  1131.                        case 1: sItem = "nw_wspmku009"; break;
  1132.                        case 2: sItem = "nw_wspmku007"; break;
  1133.                    }
  1134.  
  1135.         }
  1136.         if (sItem != "")
  1137.           dbCreateItemOnObject(sItem, oTarget, 1);
  1138. }
  1139. void CreateLightCrossbow(object oTarget, object oAdventurer)
  1140. {
  1141.  
  1142.         string sItem = "";
  1143.         int nHD = GetHitDice(oAdventurer);
  1144.  
  1145.         if (GetRange(1, nHD))    // * 800
  1146.         {
  1147.                   int nRandom = Random(2) + 1;
  1148.                   switch (nRandom)
  1149.                   {
  1150.                        case 1: sItem = "nw_wbwxl001"; break;
  1151.                        case 2: sItem = "nw_wbwmxl002"; break;
  1152.                    }
  1153.  
  1154.         }
  1155.         else if (GetRange(2, nHD))   // * 200 - 2500
  1156.         {
  1157.                   int nRandom = Random(2) + 1;
  1158.                   switch (nRandom)
  1159.                   {
  1160.                        case 1: sItem = "nw_wbwmxl002"; break;
  1161.                        case 2: sItem = "nw_wbwmxl008"; break;
  1162.                    }
  1163.  
  1164.         }
  1165.         else if (GetRange(3, nHD))   // * 800 - 10000
  1166.         {
  1167.                   int nRandom = Random(3) + 1;
  1168.                   switch (nRandom)
  1169.                   {
  1170.                        case 1: sItem = "nw_wbwmxl008"; break;
  1171.                        case 2: sItem = "nw_wbwmxl009"; break;
  1172.                        case 3: sItem = "nw_wbwmxl005"; break;
  1173.                    }
  1174.  
  1175.         }
  1176.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1177.         {
  1178.                   int nRandom = Random(3) + 1;
  1179.                   switch (nRandom)
  1180.                   {
  1181.                        case 1: sItem = "nw_wbwmxl009"; break;
  1182.                        case 2: sItem = "nw_wbwmxl005"; break;
  1183.                        case 3: sItem = "nw_wbwmxl003"; break;
  1184.                    }
  1185.  
  1186.         }
  1187.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1188.         {
  1189.                   int nRandom = Random(3) + 1;
  1190.                   switch (nRandom)
  1191.                   {
  1192.                        case 1: sItem = "nw_wbwmxl003"; break;
  1193.                        case 2: sItem = "nw_wbwmxl004"; break;
  1194.                        case 3: sItem = "nw_wbwmxl007"; break;
  1195.                    }
  1196.  
  1197.         }
  1198.         else if (GetRange(6, nHD))   // * 16000 and up
  1199.         {
  1200.                   int nRandom = Random(4) + 1;
  1201.                   switch (nRandom)
  1202.                   {
  1203.                        case 1: sItem = "nw_wbwmxl003"; break;
  1204.                        case 2: sItem = "nw_wbwmxl004"; break;
  1205.                        case 3: sItem = "nw_wbwmxl007"; break;
  1206.                        case 4: sItem = "nw_wbwmxl006"; break;
  1207.                    }
  1208.  
  1209.         }
  1210.         if (sItem != "")
  1211.           dbCreateItemOnObject(sItem, oTarget, 1);
  1212. }
  1213.  
  1214. void CreateLightFlail(object oTarget, object oAdventurer)
  1215. {
  1216.  
  1217.         string sItem = "";
  1218.         int nHD = GetHitDice(oAdventurer);
  1219.  
  1220.         if (GetRange(1, nHD))    // * 800
  1221.         {
  1222.                   int nRandom = Random(1) + 1;
  1223.                   switch (nRandom)
  1224.                   {
  1225.                        case 1: sItem = "nw_wblmfl002"; break;
  1226.                    }
  1227.  
  1228.         }
  1229.         else if (GetRange(2, nHD))   // * 200 - 2500
  1230.         {
  1231.                   int nRandom = Random(1) + 1;
  1232.                   switch (nRandom)
  1233.                   {
  1234.                        case 1: sItem = "nw_wblmfl002"; break;
  1235.                    }
  1236.  
  1237.         }
  1238.         else if (GetRange(3, nHD))   // * 800 - 10000
  1239.         {
  1240.                   int nRandom = Random(3) + 1;
  1241.                   switch (nRandom)
  1242.                   {
  1243.                        case 1: sItem = "nw_wblmfl002"; break;
  1244.                        case 2: sItem = "nw_wblmfl010"; break;
  1245.                        case 3: sItem = "nw_wblmfl004"; break;
  1246.                    }
  1247.  
  1248.         }
  1249.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1250.         {
  1251.                   int nRandom = Random(3) + 1;
  1252.                   switch (nRandom)
  1253.                   {
  1254.                        case 1: sItem = "nw_wblmfl010"; break;
  1255.                        case 2: sItem = "nw_wblmfl004"; break;
  1256.                        case 3: sItem = "nw_wblmfl005"; break;
  1257.                    }
  1258.  
  1259.         }
  1260.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1261.         {
  1262.                   int nRandom = Random(4) + 1;
  1263.                   switch (nRandom)
  1264.                   {
  1265.                        case 1: sItem = "nw_wblmfl005"; break;
  1266.                        case 2: sItem = "nw_wblmfl011"; break;
  1267.                        case 3: sItem = "nw_wblmfl007"; break;
  1268.                        case 4: sItem = "nw_wblmfl006"; break;
  1269.                    }
  1270.  
  1271.         }
  1272.         else if (GetRange(6, nHD))   // * 16000 and up
  1273.         {
  1274.                   int nRandom = Random(3) + 1;
  1275.                   switch (nRandom)
  1276.                   {
  1277.                        case 1: sItem = "nw_wblmfl011"; break;
  1278.                        case 2: sItem = "nw_wblmfl007"; break;
  1279.                        case 3: sItem = "nw_wblmfl006"; break;
  1280.                    }
  1281.  
  1282.         }
  1283.         if (sItem != "")
  1284.           dbCreateItemOnObject(sItem, oTarget, 1);
  1285. }
  1286.  
  1287. void CreateLightHammer(object oTarget, object oAdventurer)
  1288. {
  1289.  
  1290.         string sItem = "";
  1291.         int nHD = GetHitDice(oAdventurer);
  1292.  
  1293.         if (GetRange(1, nHD))    // * 800
  1294.         {
  1295.                   int nRandom = Random(1) + 1;
  1296.                   switch (nRandom)
  1297.                   {
  1298.                        case 1: sItem = "nw_wblmhl002"; break;
  1299.                    }
  1300.  
  1301.         }
  1302.         else if (GetRange(2, nHD))   // * 200 - 2500
  1303.         {
  1304.                   int nRandom = Random(1) + 1;
  1305.                   switch (nRandom)
  1306.                   {
  1307.                        case 1: sItem = "nw_wblmhl002"; break;
  1308.                    }
  1309.  
  1310.         }
  1311.         else if (GetRange(3, nHD))   // * 800 - 10000
  1312.         {
  1313.                   int nRandom = Random(3) + 1;
  1314.                   switch (nRandom)
  1315.                   {
  1316.                        case 1: sItem = "nw_wblmhl002"; break;
  1317.                        case 2: sItem = "nw_wblmhl010"; break;
  1318.                        case 3: sItem = "nw_wblmhl004"; break;
  1319.                    }
  1320.  
  1321.         }
  1322.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1323.         {
  1324.                   int nRandom = Random(2) + 1;
  1325.                   switch (nRandom)
  1326.                   {
  1327.                        case 1: sItem = "nw_wblmhl010"; break;
  1328.                        case 2: sItem = "nw_wblmhl004"; break;
  1329.                    }
  1330.  
  1331.         }
  1332.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1333.         {
  1334.                   int nRandom = Random(3) + 1;
  1335.                   switch (nRandom)
  1336.                   {
  1337.                        case 1: sItem = "nw_wblmhl005"; break;
  1338.                        case 2: sItem = "nw_wblmhl011"; break;
  1339.                        case 3: sItem = "nw_wblmhl006"; break;
  1340.                    }
  1341.  
  1342.         }
  1343.         else if (GetRange(6, nHD))   // * 16000 and up
  1344.         {
  1345.                   int nRandom = Random(5) + 1;
  1346.                   switch (nRandom)
  1347.                   {
  1348.                        case 1: sItem = "nw_wblmhl005"; break;
  1349.                        case 2: sItem = "nw_wblmhl011"; break;
  1350.                        case 3: sItem = "nw_wblmhl006"; break;
  1351.                        case 4: sItem = "nw_wblmhl009"; break;
  1352.                        case 5: sItem = "nw_wblmhl003"; break;
  1353.                    }
  1354.  
  1355.         }
  1356.         if (sItem != "")
  1357.           dbCreateItemOnObject(sItem, oTarget, 1);
  1358. }
  1359. void CreateLightMace(object oTarget, object oAdventurer)
  1360. {
  1361.  
  1362.         string sItem = "";
  1363.         int nHD = GetHitDice(oAdventurer);
  1364.  
  1365.         if (GetRange(1, nHD))    // * 800
  1366.         {
  1367.                   int nRandom = Random(1) + 1;
  1368.                   switch (nRandom)
  1369.                   {
  1370.                        case 1: sItem = "nw_wblmml002"; break;
  1371.                    }
  1372.  
  1373.         }
  1374.         else if (GetRange(2, nHD))   // * 200 - 2500
  1375.         {
  1376.                   int nRandom = Random(1) + 1;
  1377.                   switch (nRandom)
  1378.                   {
  1379.                        case 1: sItem = "nw_wblmml002"; break;
  1380.                    }
  1381.  
  1382.         }
  1383.         else if (GetRange(3, nHD))   // * 800 - 10000
  1384.         {
  1385.                   int nRandom = Random(3) + 1;
  1386.                   switch (nRandom)
  1387.                   {
  1388.                        case 1: sItem = "nw_wblmml002"; break;
  1389.                        case 2: sItem = "nw_wblmml011"; break;
  1390.                        case 3: sItem = "nw_wblmml006"; break;
  1391.                    }
  1392.  
  1393.         }
  1394.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1395.         {
  1396.                   int nRandom = Random(2) + 1;
  1397.                   switch (nRandom)
  1398.                   {
  1399.                        case 1: sItem = "nw_wblmml011"; break;
  1400.                        case 2: sItem = "nw_wblmml006"; break;
  1401.                    }
  1402.  
  1403.         }
  1404.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1405.         {
  1406.                   int nRandom = Random(4) + 1;
  1407.                   switch (nRandom)
  1408.                   {
  1409.                        case 1: sItem = "nw_wblmml012"; break;
  1410.                        case 2: sItem = "nw_wblmml004"; break;
  1411.                        case 3: sItem = "nw_wblmml005"; break;
  1412.                        case 4: sItem = "nw_wblmml007"; break;
  1413.                    }
  1414.  
  1415.         }
  1416.         else if (GetRange(6, nHD))   // * 16000 and up
  1417.         {
  1418.                   int nRandom = Random(5) + 1;
  1419.                   switch (nRandom)
  1420.                   {
  1421.                        case 1: sItem = "nw_wblmml012"; break;
  1422.                        case 2: sItem = "nw_wblmml004"; break;
  1423.                        case 3: sItem = "nw_wblmml005"; break;
  1424.                        case 4: sItem = "nw_wblmml007"; break;
  1425.                        case 5: sItem = "nw_wblmml008"; break;
  1426.                    }
  1427.  
  1428.         }
  1429.         if (sItem != "")
  1430.           dbCreateItemOnObject(sItem, oTarget, 1);
  1431. }
  1432. void CreateLongSword(object oTarget, object oAdventurer)
  1433. {
  1434.  
  1435.         string sItem = "";
  1436.         int nHD = GetHitDice(oAdventurer);
  1437.  
  1438.         if (GetRange(1, nHD))    // * 800
  1439.         {
  1440.                   int nRandom = Random(1) + 1;
  1441.                   switch (nRandom)
  1442.                   {
  1443.                        case 1: sItem = "nw_wswmls002"; break;
  1444.                    }
  1445.  
  1446.         }
  1447.         else if (GetRange(2, nHD))   // * 200 - 2500
  1448.         {
  1449.                   int nRandom = Random(1) + 1;
  1450.                   switch (nRandom)
  1451.                   {
  1452.                        case 1: sItem = "nw_wswmls002"; break;
  1453.                    }
  1454.  
  1455.         }
  1456.         else if (GetRange(3, nHD))   // * 800 - 10000
  1457.         {
  1458.                   int nRandom = Random(2) + 1;
  1459.                   switch (nRandom)
  1460.                   {
  1461.                        case 1: sItem = "nw_wswmls002"; break;
  1462.                        case 2: sItem = "nw_wswmls010"; break;
  1463.                    }
  1464.  
  1465.         }
  1466.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1467.         {
  1468.                   int nRandom = Random(2) + 1;
  1469.                   switch (nRandom)
  1470.                   {
  1471.                        case 1: sItem = "nw_wswmls010"; break;
  1472.                        case 2: sItem = "nw_wswmls007"; break;
  1473.                    }
  1474.  
  1475.         }
  1476.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1477.         {
  1478.                   int nRandom = Random(4) + 1;
  1479.                   switch (nRandom)
  1480.                   {
  1481.                        case 1: sItem = "nw_wswmls007"; break;
  1482.                        case 2: sItem = "nw_wswmls012"; break;
  1483.                        case 3: sItem = "nw_wswmls005"; break;
  1484.                        case 4: sItem = "nw_wswmls006"; break;
  1485.                    }
  1486.  
  1487.         }
  1488.         else if (GetRange(6, nHD))   // * 16000 and up
  1489.         {
  1490.                   int nRandom = Random(5) + 1;
  1491.                   switch (nRandom)
  1492.                   {
  1493.                        case 1: sItem = "nw_wswmls012"; break;
  1494.                        case 2: sItem = "nw_wswmls005"; break;
  1495.                        case 3: sItem = "nw_wswmls006"; break;
  1496.                        case 4: sItem = "nw_wswmls004"; break;
  1497.                        case 5: sItem = "nw_wswmls013"; break;
  1498.                    }
  1499.  
  1500.         }
  1501.         if (sItem != "")
  1502.           dbCreateItemOnObject(sItem, oTarget, 1);
  1503. }
  1504. void CreateLongbow(object oTarget, object oAdventurer)
  1505. {
  1506.  
  1507.         string sItem = "";
  1508.         int nHD = GetHitDice(oAdventurer);
  1509.  
  1510.         if (GetRange(1, nHD))    // * 800
  1511.         {
  1512.                   int nRandom = Random(1) + 1;
  1513.                   switch (nRandom)
  1514.                   {
  1515.                        case 1: sItem = "nw_wbwmln002"; break;
  1516.                    }
  1517.  
  1518.         }
  1519.         else if (GetRange(2, nHD))   // * 200 - 2500
  1520.         {
  1521.                   int nRandom = Random(3) + 1;
  1522.                   switch (nRandom)
  1523.                   {
  1524.                        case 1: sItem = "nw_wbwmln002"; break;
  1525.                        case 2: sItem = "nw_wbwmln002"; break;
  1526.                        case 3: sItem = "nw_wbwmln008"; break;
  1527.                    }
  1528.  
  1529.         }
  1530.         else if (GetRange(3, nHD))   // * 800 - 10000
  1531.         {
  1532.                    int nRandom = Random(4) + 1;
  1533.                   switch (nRandom)
  1534.                   {
  1535.                        case 1: sItem = "nw_wbwmln002"; break;
  1536.                        case 2: sItem = "nw_wbwmln008"; break;
  1537.                        case 3: sItem = "nw_wbwmln009"; break;
  1538.                        case 4: sItem = "nw_wbwmln004"; break;
  1539.                    }
  1540.  
  1541.         }
  1542.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1543.         {
  1544.                   int nRandom = Random(2) + 1;
  1545.                   switch (nRandom)
  1546.                   {
  1547.                        case 1: sItem = "nw_wbwmln009"; break;
  1548.                        case 2: sItem = "nw_wbwmln004"; break;
  1549.                    }
  1550.  
  1551.         }
  1552.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1553.         {
  1554.                   int nRandom = Random(3) + 1;
  1555.                   switch (nRandom)
  1556.                   {
  1557.                        case 1: sItem = "nw_wbwmln004"; break;
  1558.                        case 2: sItem = "nw_wbwmln007"; break;
  1559.                        case 3: sItem = "nw_wbwmln006"; break;
  1560.                    }
  1561.  
  1562.         }
  1563.         else if (GetRange(6, nHD))   // * 16000 and up
  1564.         {
  1565.                   int nRandom = Random(4) + 1;
  1566.                   switch (nRandom)
  1567.                   {
  1568.                        case 1: sItem = "nw_wbwmln007"; break;
  1569.                        case 2: sItem = "nw_wbwmln006"; break;
  1570.                        case 3: sItem = "nw_wbwmln005"; break;
  1571.                        case 4: sItem = "nw_wbwmln003"; break;
  1572.                    }
  1573.  
  1574.         }
  1575.         if (sItem != "")
  1576.           dbCreateItemOnObject(sItem, oTarget, 1);
  1577. }
  1578. void CreateMorningstar(object oTarget, object oAdventurer)
  1579. {
  1580.  
  1581.         string sItem = "";
  1582.         int nHD = GetHitDice(oAdventurer);
  1583.  
  1584.         if (GetRange(1, nHD))    // * 800
  1585.         {
  1586.                   int nRandom = Random(1) + 1;
  1587.                   switch (nRandom)
  1588.                   {
  1589.                        case 1: sItem = "nw_wblmms002"; break;
  1590.                    }
  1591.  
  1592.         }
  1593.         else if (GetRange(2, nHD))   // * 200 - 2500
  1594.         {
  1595.                   int nRandom = Random(1) + 1;
  1596.                   switch (nRandom)
  1597.                   {
  1598.                        case 1: sItem = "nw_wblmms002"; break;
  1599.                    }
  1600.  
  1601.         }
  1602.         else if (GetRange(3, nHD))   // * 800 - 10000
  1603.         {
  1604.                   int nRandom = Random(3) + 1;
  1605.                   switch (nRandom)
  1606.                   {
  1607.                        case 1: sItem = "nw_wblmms002"; break;
  1608.                        case 2: sItem = "nw_wblmms010"; break;
  1609.                        case 3: sItem = "nw_wblmms007"; break;
  1610.                    }
  1611.  
  1612.         }
  1613.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1614.         {
  1615.                   int nRandom = Random(2) + 1;
  1616.                   switch (nRandom)
  1617.                   {
  1618.                        case 1: sItem = "nw_wblmms007"; break;
  1619.                        case 2: sItem = "nw_wblmms003"; break;
  1620.                    }
  1621.  
  1622.         }
  1623.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1624.         {
  1625.                   int nRandom = Random(2) + 1;
  1626.                   switch (nRandom)
  1627.                   {
  1628.                        case 1: sItem = "nw_wblmms003"; break;
  1629.                        case 2: sItem = "nw_wblmms011"; break;
  1630.                    }
  1631.  
  1632.         }
  1633.         else if (GetRange(6, nHD))   // * 16000 and up
  1634.         {
  1635.                   int nRandom = Random(3) + 1;
  1636.                   switch (nRandom)
  1637.                   {
  1638.                        case 1: sItem = "nw_wblmms011"; break;
  1639.                        case 2: sItem = "nw_wblmms006"; break;
  1640.                        case 3: sItem = "nw_wblmms004"; break;
  1641.                    }
  1642.  
  1643.         }
  1644.         if (sItem != "")
  1645.           dbCreateItemOnObject(sItem, oTarget, 1);
  1646. }
  1647. void CreateRapier(object oTarget, object oAdventurer)
  1648. {
  1649.  
  1650.         string sItem = "";
  1651.         int nHD = GetHitDice(oAdventurer);
  1652.  
  1653.         if (GetRange(1, nHD))    // * 800
  1654.         {
  1655.                   int nRandom = Random(1) + 1;
  1656.                   switch (nRandom)
  1657.                   {
  1658.                        case 1: sItem = "nw_wswmrp002"; break;
  1659.                    }
  1660.  
  1661.         }
  1662.         else if (GetRange(2, nHD))   // * 200 - 2500
  1663.         {
  1664.                   int nRandom = Random(1) + 1;
  1665.                   switch (nRandom)
  1666.                   {
  1667.                        case 1: sItem = "nw_wswmrp002"; break;
  1668.                    }
  1669.  
  1670.         }
  1671.         else if (GetRange(3, nHD))   // * 800 - 10000
  1672.         {
  1673.                   int nRandom = Random(4) + 1;
  1674.                   switch (nRandom)
  1675.                   {
  1676.                        case 1: sItem = "nw_wswmrp002"; break;
  1677.                        case 2: sItem = "nw_wswmrp004"; break;
  1678.                        case 3: sItem = "nw_wswmrp010"; break;
  1679.                        case 4: sItem = "nw_wswmrp003"; break;
  1680.                    }
  1681.  
  1682.         }
  1683.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1684.         {
  1685.                   int nRandom = Random(4) + 1;
  1686.                   switch (nRandom)
  1687.                   {
  1688.                        case 1: sItem = "nw_wswmrp004"; break;
  1689.                        case 2: sItem = "nw_wswmrp010"; break;
  1690.                        case 3: sItem = "nw_wswmrp003"; break;
  1691.                        case 4: sItem = "nw_wswmrp005"; break;
  1692.                    }
  1693.  
  1694.         }
  1695.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1696.         {
  1697.                   int nRandom = Random(4) + 1;
  1698.                   switch (nRandom)
  1699.                   {
  1700.                        case 1: sItem = "nw_wswmrp003"; break;
  1701.                        case 2: sItem = "nw_wswmrp005"; break;
  1702.                        case 3: sItem = "nw_wswmrp011"; break;
  1703.                        case 4: sItem = "nw_wswmrp007"; break;
  1704.                    }
  1705.  
  1706.         }
  1707.         else if (GetRange(6, nHD))   // * 16000 and up
  1708.         {
  1709.                   int nRandom = Random(3) + 1;
  1710.                   switch (nRandom)
  1711.                   {
  1712.                        case 1: sItem = "nw_wswmrp011"; break;
  1713.                        case 2: sItem = "nw_wswmrp007"; break;
  1714.                        case 3: sItem = "nw_wswmrp006"; break;
  1715.                    }
  1716.  
  1717.         }
  1718.         if (sItem != "")
  1719.           dbCreateItemOnObject(sItem, oTarget, 1);
  1720. }
  1721. void CreateScimitar(object oTarget, object oAdventurer)
  1722. {
  1723.  
  1724.         string sItem = "";
  1725.         int nHD = GetHitDice(oAdventurer);
  1726.  
  1727.         if (GetRange(1, nHD))    // * 800
  1728.         {
  1729.                   int nRandom = Random(1) + 1;
  1730.                   switch (nRandom)
  1731.                   {
  1732.                        case 1: sItem = "nw_wswmsc002"; break;
  1733.                    }
  1734.  
  1735.         }
  1736.         else if (GetRange(2, nHD))   // * 200 - 2500
  1737.         {
  1738.                   int nRandom = Random(1) + 1;
  1739.                   switch (nRandom)
  1740.                   {
  1741.                        case 1: sItem = "nw_wswmsc002"; break;
  1742.                    }
  1743.  
  1744.         }
  1745.         else if (GetRange(3, nHD))   // * 800 - 10000
  1746.         {
  1747.                   int nRandom = Random(2) + 1;
  1748.                   switch (nRandom)
  1749.                   {
  1750.                        case 1: sItem = "nw_wswmsc002"; break;
  1751.                        case 2: sItem = "nw_wswmsc010"; break;
  1752.                    }
  1753.  
  1754.         }
  1755.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1756.         {
  1757.                   int nRandom = Random(2) + 1;
  1758.                   switch (nRandom)
  1759.                   {
  1760.                        case 1: sItem = "nw_wswmsc010"; break;
  1761.                        case 2: sItem = "nw_wswmsc004"; break;
  1762.                    }
  1763.  
  1764.         }
  1765.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1766.         {
  1767.                   int nRandom = Random(3) + 1;
  1768.                   switch (nRandom)
  1769.                   {
  1770.                        case 1: sItem = "nw_wswmsc004"; break;
  1771.                        case 2: sItem = "nw_wswmsc011"; break;
  1772.                        case 3: sItem = "nw_wswmsc006"; break;
  1773.                    }
  1774.  
  1775.         }
  1776.         else if (GetRange(6, nHD))   // * 16000 and up
  1777.         {
  1778.                   int nRandom = Random(4) + 1;
  1779.                   switch (nRandom)
  1780.                   {
  1781.                        case 1: sItem = "nw_wswmsc011"; break;
  1782.                        case 2: sItem = "nw_wswmsc006"; break;
  1783.                        case 3: sItem = "nw_wswmsc007"; break;
  1784.                        case 4: sItem = "nw_wswmsc005"; break;
  1785.                    }
  1786.  
  1787.         }
  1788.         if (sItem != "")
  1789.           dbCreateItemOnObject(sItem, oTarget, 1);
  1790. }
  1791. void CreateScythe(object oTarget, object oAdventurer)
  1792. {
  1793.  
  1794.         string sItem = "";
  1795.         int nHD = GetHitDice(oAdventurer);
  1796.  
  1797.         if (GetRange(1, nHD))    // * 800
  1798.         {
  1799.                   int nRandom = Random(1) + 1;
  1800.                   switch (nRandom)
  1801.                   {
  1802.                        case 1: sItem = "nw_wplmsc002"; break;
  1803.                    }
  1804.  
  1805.         }
  1806.         else if (GetRange(2, nHD))   // * 200 - 2500
  1807.         {
  1808.                   int nRandom = Random(1) + 1;
  1809.                   switch (nRandom)
  1810.                   {
  1811.                        case 1: sItem = "nw_wplmsc002"; break;
  1812.                    }
  1813.  
  1814.         }
  1815.         else if (GetRange(3, nHD))   // * 800 - 10000
  1816.         {
  1817.                   int nRandom = Random(3) + 1;
  1818.                   switch (nRandom)
  1819.                   {
  1820.                        case 1: sItem = "nw_wplmsc002"; break;
  1821.                        case 2: sItem = "nw_wplmsc010"; break;
  1822.                        case 3: sItem = "nw_wplmsc003"; break;
  1823.                    }
  1824.  
  1825.         }
  1826.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1827.         {
  1828.                   int nRandom = Random(2) + 1;
  1829.                   switch (nRandom)
  1830.                   {
  1831.                        case 1: sItem = "nw_wplmsc010"; break;
  1832.                        case 2: sItem = "nw_wplmsc003"; break;
  1833.                    }
  1834.  
  1835.         }
  1836.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1837.         {
  1838.                   int nRandom = Random(3) + 1;
  1839.                   switch (nRandom)
  1840.                   {
  1841.                        case 1: sItem = "nw_wplmsc003"; break;
  1842.                        case 2: sItem = "nw_wplmsc011"; break;
  1843.                        case 3: sItem = "nw_wplmsc006"; break;
  1844.                    }
  1845.  
  1846.         }
  1847.         else if (GetRange(6, nHD))   // * 16000 and up
  1848.         {
  1849.                   int nRandom = Random(4) + 1;
  1850.                   switch (nRandom)
  1851.                   {
  1852.                        case 1: sItem = "nw_wplmsc011"; break;
  1853.                        case 2: sItem = "nw_wplmsc006"; break;
  1854.                        case 3: sItem = "nw_wplmsc005"; break;
  1855.                        case 4: sItem = "nw_wplmsc004"; break;
  1856.                    }
  1857.  
  1858.         }
  1859.         if (sItem != "")
  1860.           dbCreateItemOnObject(sItem, oTarget, 1);
  1861. }
  1862. void CreateShortsword(object oTarget, object oAdventurer)
  1863. {
  1864.  
  1865.         string sItem = "";
  1866.         int nHD = GetHitDice(oAdventurer);
  1867.  
  1868.         if (GetRange(1, nHD))    // * 800
  1869.         {
  1870.                   int nRandom = Random(1) + 1;
  1871.                   switch (nRandom)
  1872.                   {
  1873.                        case 1: sItem = "nw_wswmss002"; break;
  1874.                    }
  1875.  
  1876.         }
  1877.         else if (GetRange(2, nHD))   // * 200 - 2500
  1878.         {
  1879.                   int nRandom = Random(1) + 1;
  1880.                   switch (nRandom)
  1881.                   {
  1882.                        case 1: sItem = "nw_wswmss002"; break;
  1883.                    }
  1884.  
  1885.         }
  1886.         else if (GetRange(3, nHD))   // * 800 - 10000
  1887.         {
  1888.                   int nRandom = Random(2) + 1;
  1889.                   switch (nRandom)
  1890.                   {
  1891.                        case 1: sItem = "nw_wswmss002"; break;
  1892.                        case 2: sItem = "nw_wswmss009"; break;
  1893.                    }
  1894.  
  1895.         }
  1896.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1897.         {
  1898.                   int nRandom = Random(2) + 1;
  1899.                   switch (nRandom)
  1900.                   {
  1901.                        case 1: sItem = "nw_wswmss009"; break;
  1902.                        case 2: sItem = "nw_wswmss011"; break;
  1903.                    }
  1904.  
  1905.         }
  1906.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1907.         {
  1908.                   int nRandom = Random(3) + 1;
  1909.                   switch (nRandom)
  1910.                   {
  1911.                        case 1: sItem = "nw_wswmss011"; break;
  1912.                        case 2: sItem = "nw_wswmss005"; break;
  1913.                        case 3: sItem = "nw_wswmss004"; break;
  1914.                    }
  1915.  
  1916.         }
  1917.         else if (GetRange(6, nHD))   // * 16000 and up
  1918.         {
  1919.                   int nRandom = Random(5) + 1;
  1920.                   switch (nRandom)
  1921.                   {
  1922.                        case 1: sItem = "nw_wswmss011"; break;
  1923.                        case 2: sItem = "nw_wswmss005"; break;
  1924.                        case 3: sItem = "nw_wswmss004"; break;
  1925.                        case 4: sItem = "nw_wswmss006"; break;
  1926.                        case 5: sItem = "nw_wswmss003"; break;
  1927.                    }
  1928.  
  1929.         }
  1930.         if (sItem != "")
  1931.           dbCreateItemOnObject(sItem, oTarget, 1);
  1932. }
  1933. void CreateShortbow(object oTarget, object oAdventurer)
  1934. {
  1935.  
  1936.         string sItem = "";
  1937.         int nHD = GetHitDice(oAdventurer);
  1938.  
  1939.         if (GetRange(1, nHD))    // * 800
  1940.         {
  1941.                    int nRandom = Random(2) + 1;
  1942.                   switch (nRandom)
  1943.                   {
  1944.                        case 1: sItem = "nw_wbwmsh002"; break;
  1945.                        case 2: sItem = "nw_wbwmsh002"; break;
  1946.                    }
  1947.        }
  1948.         else if (GetRange(2, nHD))   // * 200 - 2500
  1949.         {
  1950.                   int nRandom = Random(2) + 1;
  1951.                   switch (nRandom)
  1952.                   {
  1953.                        case 1: sItem = "nw_wbwmsh002"; break;
  1954.                        case 2: sItem = "nw_wbwmsh008"; break;
  1955.                    }
  1956.  
  1957.         }
  1958.         else if (GetRange(3, nHD))   // * 800 - 10000
  1959.         {
  1960.                   int nRandom = Random(3) + 1;
  1961.                   switch (nRandom)
  1962.                   {
  1963.                        case 1: sItem = "nw_wbwmsh008"; break;
  1964.                        case 2: sItem = "nw_wbwmsh009"; break;
  1965.                        case 3: sItem = "nw_wbwmsh003"; break;
  1966.                    }
  1967.  
  1968.         }
  1969.         else if (GetRange(4, nHD))   // * 2500 - 16500
  1970.         {
  1971.                   int nRandom = Random(3) + 1;
  1972.                   switch (nRandom)
  1973.                   {
  1974.                        case 1: sItem = "nw_wbwmsh009"; break;
  1975.                        case 2: sItem = "nw_wbwmsh003"; break;
  1976.                        case 3: sItem = "nw_wbwmsh006"; break;
  1977.                    }
  1978.  
  1979.         }
  1980.         else if (GetRange(5, nHD))   // * 8000 - 25000
  1981.         {
  1982.                   int nRandom = Random(2) + 1;
  1983.                   switch (nRandom)
  1984.                   {
  1985.                        case 1: sItem = "nw_wbwmsh006"; break;
  1986.                        case 2: sItem = "nw_wbwmsh007"; break;
  1987.                    }
  1988.  
  1989.         }
  1990.         else if (GetRange(6, nHD))   // * 16000 and up
  1991.         {
  1992.                   int nRandom = Random(3) + 1;
  1993.                   switch (nRandom)
  1994.                   {
  1995.                        case 1: sItem = "nw_wbwmsh007"; break;
  1996.                        case 2: sItem = "nw_wbwmsh005"; break;
  1997.                        case 3: sItem = "nw_wbwmsh004"; break;
  1998.                    }
  1999.  
  2000.         }
  2001.         if (sItem != "")
  2002.           dbCreateItemOnObject(sItem, oTarget, 1);
  2003. }
  2004. void CreateShuriken(object oTarget, object oAdventurer)
  2005. {
  2006.  
  2007.         string sItem = "";
  2008.         int nHD = GetHitDice(oAdventurer);
  2009.  
  2010.         if (GetRange(1, nHD))    // * 800
  2011.         {
  2012.                   int nRandom = Random(5) + 1;
  2013.                   switch (nRandom)
  2014.                   {
  2015.                        case 1: sItem = "nw_wthmsh002"; break;
  2016.                        case 2: sItem = "nw_wthmsh002"; break;
  2017.                        case 3: sItem = "nw_wthmsh003"; break;
  2018.                        case 4: sItem = "nw_wthmsh008"; break;
  2019.                        case 5: sItem = "nw_wthmsh006"; break;
  2020.                    }
  2021.  
  2022.         }
  2023.         else if (GetRange(2, nHD))   // * 200 - 2500
  2024.         {
  2025.                   int nRandom = Random(5) + 1;
  2026.                   switch (nRandom)
  2027.                   {
  2028.                        case 1: sItem = "nw_wthmsh002"; break;
  2029.                        case 2: sItem = "nw_wthmsh003"; break;
  2030.                        case 3: sItem = "nw_wthmsh008"; break;
  2031.                        case 4: sItem = "nw_wthmsh006"; break;
  2032.                        case 5: sItem = "nw_wthmsh009"; break;
  2033.                    }
  2034.  
  2035.         }
  2036.         else if (GetRange(3, nHD))   // * 800 - 10000
  2037.         {
  2038.                   int nRandom = Random(3) + 1;
  2039.                   switch (nRandom)
  2040.                   {
  2041.                        case 1: sItem = "nw_wthmsh006"; break;
  2042.                        case 2: sItem = "nw_wthmsh009"; break;
  2043.                        case 3: sItem = "nw_wthmsh005"; break;
  2044.                    }
  2045.  
  2046.         }
  2047.         else if (GetRange(4, nHD))   // * 2500 - 16500
  2048.         {
  2049.                   int nRandom = Random(3) + 1;
  2050.                   switch (nRandom)
  2051.                   {
  2052.                        case 1: sItem = "nw_wthmsh009"; break;
  2053.                        case 2: sItem = "nw_wthmsh005"; break;
  2054.                        case 3: sItem = "nw_wthmsh004"; break;
  2055.                    }
  2056.  
  2057.         }
  2058.         else if (GetRange(5, nHD))   // * 8000 - 25000
  2059.         {
  2060.                   int nRandom = Random(3) + 1;
  2061.                   switch (nRandom)
  2062.                   {
  2063.                        case 1: sItem = "nw_wthmsh005"; break;
  2064.                        case 2: sItem = "nw_wthmsh004"; break;
  2065.                        case 3: sItem = "nw_wthmsh007"; break;
  2066.                    }
  2067.  
  2068.         }
  2069.         else if (GetRange(6, nHD))   // * 16000 and up
  2070.         {
  2071.                   int nRandom = Random(3) + 1;
  2072.                   switch (nRandom)
  2073.                   {
  2074.                        case 1: sItem = "nw_wthmsh005"; break;
  2075.                        case 2: sItem = "nw_wthmsh004"; break;
  2076.                        case 3: sItem = "nw_wthmsh007"; break;
  2077.                    }
  2078.  
  2079.         }
  2080.         if (sItem != "")
  2081.           dbCreateItemOnObject(sItem, oTarget, Random(40) + 1);
  2082. }
  2083. void CreateSickle(object oTarget, object oAdventurer)
  2084. {
  2085.  
  2086.         string sItem = "";
  2087.         int nHD = GetHitDice(oAdventurer);
  2088.  
  2089.         if (GetRange(1, nHD))    // * 800
  2090.         {
  2091.                   int nRandom = Random(1) + 1;
  2092.                   switch (nRandom)
  2093.                   {
  2094.                        case 1: sItem = "nw_wspmsc002"; break;
  2095.                    }
  2096.  
  2097.         }
  2098.         else if (GetRange(2, nHD))   // * 200 - 2500
  2099.         {
  2100.                   int nRandom = Random(1) + 1;
  2101.                   switch (nRandom)
  2102.                   {
  2103.                        case 1: sItem = "nw_wspmsc002"; break;
  2104.                    }
  2105.  
  2106.         }
  2107.         else if (GetRange(3, nHD))   // * 800 - 10000
  2108.         {
  2109.                   int nRandom = Random(3) + 1;
  2110.                   switch (nRandom)
  2111.                   {
  2112.                        case 1: sItem = "nw_wspmsc002"; break;
  2113.                        case 2: sItem = "nw_wspmsc010"; break;
  2114.                        case 3: sItem = "nw_wspmsc004"; break;
  2115.                    }
  2116.  
  2117.         }
  2118.         else if (GetRange(4, nHD))   // * 2500 - 16500
  2119.         {
  2120.                   int nRandom = Random(5) + 1;
  2121.                   switch (nRandom)
  2122.                   {
  2123.                        case 1: sItem = "nw_wspmsc010"; break;
  2124.                        case 2: sItem = "nw_wspmsc004"; break;
  2125.                        case 3: sItem = "nw_wspmsc005"; break;
  2126.                        case 4: sItem = "nw_wspmsc006"; break;
  2127.                        case 5: sItem = "nw_wspmsc003"; break;
  2128.                    }
  2129.  
  2130.         }
  2131.         else if (GetRange(5, nHD))   // * 8000 - 25000
  2132.         {
  2133.                   int nRandom = Random(4) + 1;
  2134.                   switch (nRandom)
  2135.                   {
  2136.                        case 1: sItem = "nw_wspmsc005"; break;
  2137.                        case 2: sItem = "nw_wspmsc006"; break;
  2138.                        case 3: sItem = "nw_wspmsc003"; break;
  2139.                        case 4: sItem = "nw_wspmsc011"; break;
  2140.                    }
  2141.  
  2142.         }
  2143.         else if (GetRange(6, nHD))   // * 16000 and up
  2144.         {
  2145.                   int nRandom = Random(1) + 1;
  2146.                   switch (nRandom)
  2147.                   {
  2148.                        case 1: sItem = "nw_wspmsc011"; break;
  2149.                    }
  2150.  
  2151.         }
  2152.         if (sItem != "")
  2153.           dbCreateItemOnObject(sItem, oTarget, 1);
  2154. }
  2155. void CreateSling(object oTarget, object oAdventurer)
  2156. {
  2157.  
  2158.         string sItem = "";
  2159.         int nHD = GetHitDice(oAdventurer);
  2160.  
  2161.         if (GetRange(1, nHD))    // * 800
  2162.         {
  2163.                   int nRandom = Random(2) + 1;
  2164.                   switch (nRandom)
  2165.                   {
  2166.                        case 1: sItem = "nw_wbwmsl001"; break;
  2167.                        case 2: sItem = "nw_wbwmsl001"; break;
  2168.                    }
  2169.  
  2170.         }
  2171.         else if (GetRange(2, nHD))   // * 200 - 2500
  2172.         {
  2173.                    int nRandom = Random(2) + 1;
  2174.                   switch (nRandom)
  2175.                   {
  2176.                        case 1: sItem = "nw_wbwmsl001"; break;
  2177.                        case 2: sItem = "nw_wbwmsl009"; break;
  2178.                    }
  2179.  
  2180.         }
  2181.         else if (GetRange(3, nHD))   // * 800 - 10000
  2182.         {
  2183.                   int nRandom = Random(2) + 1;
  2184.                   switch (nRandom)
  2185.                   {
  2186.                        case 1: sItem = "nw_wbwmsl009"; break;
  2187.                        case 2: sItem = "nw_wbwmsl010"; break;
  2188.                    }
  2189.  
  2190.         }
  2191.         else if (GetRange(4, nHD))   // * 2500 - 16500
  2192.         {
  2193.                   int nRandom = Random(2) + 1;
  2194.                   switch (nRandom)
  2195.                   {
  2196.                        case 1: sItem = "nw_wbwmsl010"; break;
  2197.                        case 2: sItem = "nw_wbwmsl003"; break;
  2198.                    }
  2199.  
  2200.         }
  2201.         else if (GetRange(5, nHD))   // * 8000 - 25000
  2202.         {
  2203.                   int nRandom = Random(2) + 1;
  2204.                   switch (nRandom)
  2205.                   {
  2206.                        case 1: sItem = "nw_wbwmsl003"; break;
  2207.                        case 2: sItem = "nw_wbwmsl007"; break;
  2208.                    }
  2209.  
  2210.         }
  2211.         else if (GetRange(6, nHD))   // * 16000 and up
  2212.         {
  2213.                   int nRandom = Random(4) + 1;
  2214.                   switch (nRandom)
  2215.                   {
  2216.                        case 1: sItem = "nw_wbwmsl007"; break;
  2217.                        case 2: sItem = "nw_wbwmsl006"; break;
  2218.                        case 3: sItem = "nw_wbwmsl008"; break;
  2219.                        case 4: sItem = "nw_wbwmsl004"; break;
  2220.                    }
  2221.  
  2222.         }
  2223.         if (sItem != "")
  2224.           dbCreateItemOnObject(sItem, oTarget, 1);
  2225. }
  2226. void CreateSpear(object oTarget, object oAdventurer)
  2227. {
  2228.  
  2229.         string sItem = "";
  2230.         int nHD = GetHitDice(oAdventurer);
  2231.  
  2232.         if (GetRange(1, nHD))    // * 800
  2233.         {
  2234.                   int nRandom = Random(1) + 1;
  2235.                   switch (nRandom)
  2236.                   {
  2237.                        case 1: sItem = "nw_wplmss002"; break;
  2238.                    }
  2239.  
  2240.         }
  2241.         else if (GetRange(2, nHD))   // * 200 - 2500
  2242.         {
  2243.                   int nRandom = Random(1) + 1;
  2244.                   switch (nRandom)
  2245.                   {
  2246.                        case 1: sItem = "nw_wplmss002"; break;
  2247.                    }
  2248.         }
  2249.         else if (GetRange(3, nHD))   // * 800 - 10000
  2250.         {
  2251.                   int nRandom = Random(3) + 1;
  2252.                   switch (nRandom)
  2253.                   {
  2254.                        case 1: sItem = "nw_wplmss002"; break;
  2255.                        case 2: sItem = "nw_wbwmsl005"; break;
  2256.                        case 3: sItem = "nw_wplmss010"; break;
  2257.                    }
  2258.  
  2259.         }
  2260.         else if (GetRange(4, nHD))   // * 2500 - 16500
  2261.         {
  2262.                   int nRandom = Random(3) + 1;
  2263.                   switch (nRandom)
  2264.                   {
  2265.                        case 1: sItem = "nw_wbwmsl005"; break;
  2266.                        case 2: sItem = "nw_wplmss010"; break;
  2267.                        case 3: sItem = "nw_wplmss005"; break;
  2268.                    }
  2269.  
  2270.         }
  2271.         else if (GetRange(5, nHD))   // * 8000 - 25000
  2272.         {
  2273.                   int nRandom = Random(4) + 1;
  2274.                   switch (nRandom)
  2275.                   {
  2276.                        case 1: sItem = "nw_wplmss005"; break;
  2277.                        case 2: sItem = "nw_wplmss011"; break;
  2278.                        case 3: sItem = "nw_wplmss007"; break;
  2279.                        case 4: sItem = "nw_wplmss006"; break;
  2280.                    }
  2281.  
  2282.         }
  2283.         else if (GetRange(6, nHD))   // * 16000 and up
  2284.         {
  2285.                   int nRandom = Random(4) + 1;
  2286.                   switch (nRandom)
  2287.                   {
  2288.                        case 1: sItem = "nw_wplmss011"; break;
  2289.                        case 2: sItem = "nw_wplmss007"; break;
  2290.                        case 3: sItem = "nw_wplmss006"; break;
  2291.                        case 4: sItem = "nw_wplmss004"; break;
  2292.                    }
  2293.  
  2294.         }
  2295.         if (sItem != "")
  2296.           dbCreateItemOnObject(sItem, oTarget, 1);
  2297. }
  2298. void CreateStaff(object oTarget, object oAdventurer)
  2299. {
  2300.  
  2301.         string sItem = "";
  2302.         int nHD = GetHitDice(oAdventurer);
  2303.  
  2304.         if (GetRange(1, nHD))    // * 800
  2305.         {
  2306.                   int nRandom = Random(1) + 1;
  2307.                   switch (nRandom)
  2308.                   {
  2309.                        case 1: sItem = "nw_wdbmqs002"; break;
  2310.                    }
  2311.  
  2312.         }
  2313.         else if (GetRange(2, nHD))   // * 200 - 2500
  2314.         {
  2315.                   int nRandom = Random(1) + 1;
  2316.                   switch (nRandom)
  2317.                   {
  2318.                        case 1: sItem = "nw_wdbmqs002"; break;
  2319.                    }
  2320.  
  2321.         }
  2322.         else if (GetRange(3, nHD))   // * 800 - 10000
  2323.         {
  2324.                   int nRandom = Random(4) + 1;
  2325.                   switch (nRandom)
  2326.                   {
  2327.                        case 1: sItem = "nw_wdbmqs002"; break;
  2328.                        case 2: sItem = "nw_wdbmqs005"; break;
  2329.                        case 3: sItem = "nw_wdbmqs006"; break;
  2330.                        case 4: sItem = "nw_wdbmqs008"; break;
  2331.                    }
  2332.  
  2333.         }
  2334.         else if (GetRange(4, nHD))   // * 2500 - 16500
  2335.         {
  2336.                   int nRandom = Random(4) + 1;
  2337.                   switch (nRandom)
  2338.                   {
  2339.                        case 1: sItem = "nw_wdbmqs005"; break;
  2340.                        case 2: sItem = "nw_wdbmqs006"; break;
  2341.                        case 3: sItem = "nw_wdbmqs008"; break;
  2342.                        case 4: sItem = "nw_wdbmqs004"; break;
  2343.                    }
  2344.  
  2345.         }
  2346.         else if (GetRange(5, nHD))   // * 8000 - 25000
  2347.         {
  2348.                   int nRandom = Random(3) + 1;
  2349.                   switch (nRandom)
  2350.                   {
  2351.                        case 1: sItem = "nw_wdbmqs004"; break;
  2352.                        case 2: sItem = "nw_wdbmqs009"; break;
  2353.                        case 3: sItem = "nw_wdbmqs003"; break;
  2354.                    }
  2355.  
  2356.         }
  2357.         else if (GetRange(6, nHD))   // * 16000 and up
  2358.         {
  2359.                   int nRandom = Random(3) + 1;
  2360.                   switch (nRandom)
  2361.                   {
  2362.                        case 1: sItem = "nw_wdbmqs009"; break;
  2363.                        case 2: sItem = "nw_wdbmqs003"; break;
  2364.                        case 3: sItem = "nw_wdbmqs007"; break;
  2365.                    }
  2366.  
  2367.         }
  2368.         if (sItem != "")
  2369.           dbCreateItemOnObject(sItem, oTarget, 1);
  2370. }
  2371. void CreateThrowingAxe(object oTarget, object oAdventurer)
  2372. {
  2373.  
  2374.         string sItem = "";
  2375.         int nHD = GetHitDice(oAdventurer);
  2376.  
  2377.         if (GetRange(1, nHD))    // * 800
  2378.         {
  2379.                   int nRandom = Random(1) + 1;
  2380.                   switch (nRandom)
  2381.                   {
  2382.                        case 1: sItem = "nw_wthmax002"; break;
  2383.                    }
  2384.  
  2385.         }
  2386.         else if (GetRange(2, nHD))   // * 200 - 2500
  2387.         {
  2388.                   int nRandom = Random(4) + 1;
  2389.                   switch (nRandom)
  2390.                   {
  2391.                        case 1: sItem = "nw_wthmax002"; break;
  2392.                        case 2: sItem = "nw_wthmax008"; break;
  2393.                        case 3: sItem = "nw_wthmax005"; break;
  2394.                        case 4: sItem = "nw_wthmax007"; break;
  2395.                    }
  2396.  
  2397.         }
  2398.         else if (GetRange(3, nHD))   // * 800 - 10000
  2399.         {
  2400.                   int nRandom = Random(5) + 1;
  2401.                   switch (nRandom)
  2402.                   {
  2403.                        case 1: sItem = "nw_wthmax008"; break;
  2404.                        case 2: sItem = "nw_wthmax005"; break;
  2405.                        case 3: sItem = "nw_wthmax007"; break;
  2406.                        case 4: sItem = "nw_wthmax003"; break;
  2407.                        case 5: sItem = "nw_wthmax004"; break;
  2408.                    }
  2409.  
  2410.         }
  2411.         else if (GetRange(4, nHD))   // * 2500 - 16500
  2412.         {
  2413.                   int nRandom = Random(4) + 1;
  2414.                   switch (nRandom)
  2415.                   {
  2416.                        case 1: sItem = "nw_wthmax007"; break;
  2417.                        case 2: sItem = "nw_wthmax003"; break;
  2418.                        case 3: sItem = "nw_wthmax004"; break;
  2419.                        case 4: sItem = "nw_wthmax009"; break;
  2420.                    }
  2421.  
  2422.         }
  2423.         else if (GetRange(5, nHD))   // * 8000 - 25000
  2424.         {
  2425.                   int nRandom = Random(4) + 1;
  2426.                   switch (nRandom)
  2427.                   {
  2428.                        case 1: sItem = "nw_wthmax003"; break;
  2429.                        case 2: sItem = "nw_wthmax004"; break;
  2430.                        case 3: sItem = "nw_wthmax009"; break;
  2431.                        case 4: sItem = "nw_wthmax006"; break;
  2432.                    }
  2433.  
  2434.         }
  2435.         else if (GetRange(6, nHD))   // * 16000 and up
  2436.         {
  2437.                   int nRandom = Random(2) + 1;
  2438.                   switch (nRandom)
  2439.                   {
  2440.                        case 1: sItem = "nw_wthmax009"; break;
  2441.                        case 2: sItem = "nw_wthmax006"; break;
  2442.                    }
  2443.  
  2444.         }
  2445.         if (sItem != "")
  2446.           dbCreateItemOnObject(sItem, oTarget, Random(40) + 1);
  2447. }
  2448. void CreateTwoBladedSword(object oTarget, object oAdventurer)
  2449. {
  2450.  
  2451.         string sItem = "";
  2452.         int nHD = GetHitDice(oAdventurer);
  2453.  
  2454.         if (GetRange(1, nHD))    // * 800
  2455.         {
  2456.                   int nRandom = Random(1) + 1;
  2457.                   switch (nRandom)
  2458.                   {
  2459.                        case 1: sItem = "nw_wdbmsw002"; break;
  2460.                    }
  2461.  
  2462.         }
  2463.         else if (GetRange(2, nHD))   // * 200 - 2500
  2464.         {
  2465.                   int nRandom = Random(2) + 1;
  2466.                   switch (nRandom)
  2467.                   {
  2468.                        case 1: sItem = "nw_wdbmsw002"; break;
  2469.                        case 2: sItem = "nw_wdbmsw002"; break;
  2470.                    }
  2471.  
  2472.         }
  2473.         else if (GetRange(3, nHD))   // * 800 - 10000
  2474.         {
  2475.                   int nRandom = Random(4) + 1;
  2476.                   switch (nRandom)
  2477.                   {
  2478.                        case 1: sItem = "nw_wdbmsw002"; break;
  2479.                        case 2: sItem = "nw_wdbmsw010"; break;
  2480.                        case 3: sItem = "nw_wdbmsw006"; break;
  2481.                        case 4: sItem = "nw_wdbmsw007"; break;
  2482.                    }
  2483.  
  2484.         }
  2485.         else if (GetRange(4, nHD))   // * 2500 - 16500
  2486.         {
  2487.                   int nRandom = Random(3) + 1;
  2488.                   switch (nRandom)
  2489.                   {
  2490.                        case 1: sItem = "nw_wdbmsw010"; break;
  2491.                        case 2: sItem = "nw_wdbmsw006"; break;
  2492.                        case 3: sItem = "nw_wdbmsw007"; break;
  2493.                    }
  2494.  
  2495.         }
  2496.         else if (GetRange(5, nHD))   // * 8000 - 25000
  2497.         {
  2498.                   int nRandom = Random(2) + 1;
  2499.                   switch (nRandom)
  2500.                   {
  2501.                        case 1: sItem = "nw_wdbmsw011"; break;
  2502.                        case 2: sItem = "nw_wdbmsw005"; break;
  2503.                    }
  2504.  
  2505.         }
  2506.         else if (GetRange(6, nHD))   // * 16000 and up
  2507.         {
  2508.                   int nRandom = Random(3) + 1;
  2509.                   switch (nRandom)
  2510.                   {
  2511.                        case 1: sItem = "nw_wdbmsw011"; break;
  2512.                        case 2: sItem = "nw_wdbmsw005"; break;
  2513.                        case 3: sItem = "nw_wdbmsw004"; break;
  2514.                    }
  2515.  
  2516.         }
  2517.         if (sItem != "")
  2518.           dbCreateItemOnObject(sItem, oTarget, 1);
  2519. }
  2520. void CreateWarhammer(object oTarget, object oAdventurer)
  2521. {
  2522.  
  2523.         string sItem = "";
  2524.         int nHD = GetHitDice(oAdventurer);
  2525.  
  2526.         if (GetRange(1, nHD))    // * 800
  2527.         {
  2528.                   int nRandom = Random(1) + 1;
  2529.                   switch (nRandom)
  2530.                   {
  2531.                        case 1: sItem = "nw_wblmhw002"; break;
  2532.                    }
  2533.  
  2534.         }
  2535.         else if (GetRange(2, nHD))   // * 200 - 2500
  2536.         {
  2537.                   int nRandom = Random(1) + 1;
  2538.                   switch (nRandom)
  2539.                   {
  2540.                        case 1: sItem = "nw_wblmhw002"; break;
  2541.                    }
  2542.  
  2543.         }
  2544.         else if (GetRange(3, nHD))   // * 800 - 10000
  2545.         {
  2546.                   int nRandom = Random(3) + 1;
  2547.                   switch (nRandom)
  2548.                   {
  2549.                        case 1: sItem = "nw_wblmhw002"; break;
  2550.                        case 2: sItem = "nw_wblmhw011"; break;
  2551.                        case 3: sItem = "nw_wblmhw006"; break;
  2552.                    }
  2553.  
  2554.         }
  2555.         else if (GetRange(4, nHD))   // * 2500 - 16500
  2556.         {
  2557.                   int nRandom = Random(2) + 1;
  2558.                   switch (nRandom)
  2559.                   {
  2560.                        case 1: sItem = "nw_wblmhw011"; break;
  2561.                        case 2: sItem = "nw_wblmhw006"; break;
  2562.                    }
  2563.  
  2564.         }
  2565.         else if (GetRange(5, nHD))   // * 8000 - 25000
  2566.         {
  2567.                   int nRandom = Random(4) + 1;
  2568.                   switch (nRandom)
  2569.                   {
  2570.                        case 1: sItem = "nw_wblmhw006"; break;
  2571.                        case 2: sItem = "nw_wblmhw005"; break;
  2572.                        case 3: sItem = "nw_wblmhw012"; break;
  2573.                        case 4: sItem = "nw_wblmhw003"; break;
  2574.                    }
  2575.  
  2576.         }
  2577.         else if (GetRange(6, nHD))   // * 16000 and up
  2578.         {
  2579.                   int nRandom = Random(3) + 1;
  2580.                   switch (nRandom)
  2581.                   {
  2582.                        case 1: sItem = "nw_wblmhw012"; break;
  2583.                        case 2: sItem = "nw_wblmhw003"; break;
  2584.                        case 3: sItem = "nw_wblmhw004"; break;
  2585.                    }
  2586.  
  2587.         }
  2588.         if (sItem != "")
  2589.           dbCreateItemOnObject(sItem, oTarget, 1);
  2590. }
  2591. //::///////////////////////////////////////////////
  2592. //:: Prefers
  2593. //:: Copyright (c) 2001 Bioware Corp.
  2594. //:://////////////////////////////////////////////
  2595. /*
  2596.     Returns true if oAdventurer prefers using
  2597.     this weapon.
  2598.     CRITERIA: They have Weapon Focus
  2599.     nFeatWeaponType: Uses the feat constants
  2600.     to differentiate the weapon types
  2601. */
  2602. //:://////////////////////////////////////////////
  2603. //:: Created By: Brent
  2604. //:: Created On: March 2002
  2605. //:://////////////////////////////////////////////
  2606. int Prefers(int nFeatWeaponType, object oAdventurer)
  2607. {
  2608.     if (GetHasFeat(nFeatWeaponType, oAdventurer) == TRUE)
  2609.     return TRUE;
  2610.     else
  2611.     return FALSE;
  2612. }
  2613.  
  2614. void main()
  2615. {
  2616.     object oLastOpener = GetLastOpener();
  2617.     object oContainer = OBJECT_SELF;
  2618.  
  2619.     if (GetLocalInt(OBJECT_SELF, "NW_L_OPENONCE") > 0 || GetIsObjectValid(oLastOpener) == FALSE)
  2620.     {
  2621.         return; // * abort treasure if no one opened the container
  2622.     }
  2623.     SetLocalInt(OBJECT_SELF, "NW_L_OPENONCE",1);
  2624.     ShoutDisturbed();
  2625.  
  2626.     // * CHoose the weapon type to create
  2627.     if (Prefers(FEAT_WEAPON_FOCUS_BASTARD_SWORD, oLastOpener) == TRUE)
  2628.     {
  2629.         CreateBastardSword(oContainer, oLastOpener);
  2630.     }
  2631.     else if (Prefers(FEAT_WEAPON_FOCUS_BATTLE_AXE,oLastOpener))
  2632.     {
  2633.         CreateBattleAxe(oContainer, oLastOpener);
  2634.     }
  2635.     else if (Prefers(FEAT_WEAPON_FOCUS_CLUB,oLastOpener))
  2636.     {
  2637.         CreateClub(oContainer, oLastOpener);
  2638.     }
  2639.     else if (Prefers(FEAT_WEAPON_FOCUS_DAGGER,oLastOpener))
  2640.     {
  2641.         CreateDagger(oContainer, oLastOpener);
  2642.     }
  2643.     else if (Prefers(FEAT_WEAPON_FOCUS_DART,oLastOpener))
  2644.     {
  2645.         CreateDart(oContainer, oLastOpener);
  2646.     }
  2647.     else if (Prefers(FEAT_WEAPON_FOCUS_DIRE_MACE,oLastOpener))
  2648.     {
  2649.         CreateDireMace(oContainer, oLastOpener);
  2650.     }
  2651.     else if (Prefers(FEAT_WEAPON_FOCUS_DOUBLE_AXE,oLastOpener))
  2652.     {
  2653.         CreateDoubleAxe(oContainer, oLastOpener);
  2654.     }
  2655.     else if (Prefers(FEAT_WEAPON_FOCUS_GREAT_AXE,oLastOpener))
  2656.     {
  2657.         CreateGreatAxe(oContainer, oLastOpener);
  2658.     }
  2659.     else if (Prefers(FEAT_WEAPON_FOCUS_GREAT_SWORD,oLastOpener))
  2660.     {
  2661.         CreateGreatSword(oContainer, oLastOpener);
  2662.     }
  2663.     else if (Prefers(FEAT_WEAPON_FOCUS_HALBERD,oLastOpener))
  2664.     {
  2665.         CreateHalberd(oContainer, oLastOpener);
  2666.     }
  2667.     else if (Prefers(FEAT_WEAPON_FOCUS_HAND_AXE,oLastOpener))
  2668.     {
  2669.         CreateHandAxe(oContainer, oLastOpener);
  2670.     }
  2671.     else if (Prefers(FEAT_WEAPON_FOCUS_HEAVY_CROSSBOW,oLastOpener))
  2672.     {
  2673.         CreateHeavyCrossbow(oContainer, oLastOpener);
  2674.     }
  2675.     else if (Prefers(FEAT_WEAPON_FOCUS_HEAVY_FLAIL,oLastOpener))
  2676.     {
  2677.         CreateHeavyFlail(oContainer, oLastOpener);
  2678.     }
  2679.     else if (Prefers(FEAT_WEAPON_FOCUS_KAMA,oLastOpener))
  2680.     {
  2681.         CreateKama(oContainer, oLastOpener);
  2682.     }
  2683.     else if (Prefers(FEAT_WEAPON_FOCUS_KATANA,oLastOpener))
  2684.     {
  2685.         CreateKatana(oContainer, oLastOpener);
  2686.     }
  2687.     else if (Prefers(FEAT_WEAPON_FOCUS_KUKRI,oLastOpener))
  2688.     {
  2689.         CreateKukri(oContainer, oLastOpener);
  2690.     }
  2691.     else if (Prefers(FEAT_WEAPON_FOCUS_LIGHT_CROSSBOW,oLastOpener))
  2692.     {
  2693.         CreateLightCrossbow(oContainer, oLastOpener);
  2694.     }
  2695.     else if (Prefers(FEAT_WEAPON_FOCUS_LIGHT_FLAIL,oLastOpener))
  2696.     {
  2697.         CreateLightFlail(oContainer, oLastOpener);
  2698.     }
  2699.     else if (Prefers(FEAT_WEAPON_FOCUS_LIGHT_HAMMER,oLastOpener))
  2700.     {
  2701.         CreateLightHammer(oContainer, oLastOpener);
  2702.     }
  2703.     else if (Prefers(FEAT_WEAPON_FOCUS_LIGHT_MACE,oLastOpener))
  2704.     {
  2705.         CreateLightMace(oContainer, oLastOpener);
  2706.     }
  2707.     else if (Prefers(FEAT_WEAPON_FOCUS_LONG_SWORD,oLastOpener))
  2708.     {
  2709.         CreateLongSword(oContainer, oLastOpener);
  2710.     }
  2711.     else if (Prefers(FEAT_WEAPON_FOCUS_LONGBOW,oLastOpener))
  2712.     {
  2713.         CreateLongbow(oContainer, oLastOpener);
  2714.     }
  2715.     else if (Prefers(FEAT_WEAPON_FOCUS_MORNING_STAR,oLastOpener))
  2716.     {
  2717.         CreateMorningstar(oContainer, oLastOpener);
  2718.     }
  2719.     else if (Prefers(FEAT_WEAPON_FOCUS_RAPIER,oLastOpener))
  2720.     {
  2721.         CreateRapier(oContainer, oLastOpener);
  2722.     }
  2723.     else if (Prefers(FEAT_WEAPON_FOCUS_SCIMITAR,oLastOpener))
  2724.     {
  2725.         CreateScimitar(oContainer, oLastOpener);
  2726.     }
  2727.     else if (Prefers(FEAT_WEAPON_FOCUS_SCYTHE,oLastOpener))
  2728.     {
  2729.         CreateScythe(oContainer, oLastOpener);
  2730.     }
  2731.     else if (Prefers(FEAT_WEAPON_FOCUS_SHORT_SWORD,oLastOpener))
  2732.     {
  2733.         CreateShortsword(oContainer, oLastOpener);
  2734.     }
  2735.     else if (Prefers(FEAT_WEAPON_FOCUS_SHORTBOW,oLastOpener))
  2736.     {
  2737.         CreateShortbow(oContainer, oLastOpener);
  2738.     }
  2739.     else if (Prefers(FEAT_WEAPON_FOCUS_SHURIKEN,oLastOpener))
  2740.     {
  2741.         CreateShuriken(oContainer, oLastOpener);
  2742.     }
  2743.     else if (Prefers(FEAT_WEAPON_FOCUS_SICKLE,oLastOpener))
  2744.     {
  2745.         CreateSickle(oContainer, oLastOpener);
  2746.     }
  2747.     else if (Prefers(FEAT_WEAPON_FOCUS_SLING,oLastOpener))
  2748.     {
  2749.         CreateSling(oContainer, oLastOpener);
  2750.     }
  2751.     else if (Prefers(FEAT_WEAPON_FOCUS_SPEAR,oLastOpener))
  2752.     {
  2753.         CreateSpear(oContainer, oLastOpener);
  2754.     }
  2755.     else if (Prefers(FEAT_WEAPON_FOCUS_STAFF,oLastOpener))
  2756.     {
  2757.         CreateStaff(oContainer, oLastOpener);
  2758.     }
  2759.     else if (Prefers(FEAT_WEAPON_FOCUS_THROWING_AXE,oLastOpener))
  2760.     {
  2761.         CreateThrowingAxe(oContainer, oLastOpener);
  2762.     }
  2763.     else if (Prefers(FEAT_WEAPON_FOCUS_TWO_BLADED_SWORD,oLastOpener))
  2764.     {
  2765.         CreateTwoBladedSword(oContainer, oLastOpener);
  2766.     }
  2767.     else if (Prefers(FEAT_WEAPON_FOCUS_WAR_HAMMER,oLastOpener))
  2768.     {
  2769.         CreateWarhammer(oContainer, oLastOpener);
  2770.     }
  2771.     else
  2772.     {
  2773.         // * if get to this point then the PC did not have Weapon Focus
  2774.         // * in anything then do additional logic to give an appropriate weapon
  2775.         if (GetLevelByClass(CLASS_TYPE_DRUID, oLastOpener) >= 1)
  2776.         {
  2777.             CreateSpecificDruidWeapon(oContainer, oLastOpener);
  2778.  
  2779.         }
  2780.         else
  2781.         if (GetLevelByClass(CLASS_TYPE_WIZARD, oLastOpener) >= 1)
  2782.         {
  2783.             CreateSpecificWizardWeapon(oContainer, oLastOpener);
  2784.  
  2785.         }
  2786.         else
  2787.         if (GetLevelByClass(CLASS_TYPE_SORCERER, oLastOpener) >= 1)
  2788.         {
  2789.             CreateDagger(oContainer, oLastOpener);
  2790.         }
  2791.         else
  2792.         if (GetLevelByClass(CLASS_TYPE_PALADIN, oLastOpener) >= 1 || GetLevelByClass(CLASS_TYPE_FIGHTER, oLastOpener) >= 1 || GetLevelByClass(CLASS_TYPE_RANGER, oLastOpener) >= 1)
  2793.         {
  2794.             CreateLongSword(oContainer, oLastOpener);
  2795.         }
  2796.         else
  2797.         if (GetLevelByClass(CLASS_TYPE_BARBARIAN, oLastOpener) >= 1 || GetLevelByClass(CLASS_TYPE_DRUID, oLastOpener) >= 1)
  2798.         {
  2799.             CreateClub(oContainer, oLastOpener);
  2800.         }
  2801.         else
  2802.         if (GetLevelByClass(CLASS_TYPE_MONK, oLastOpener) >= 1)
  2803.         {
  2804.             CreateSpecificMonkWeapon(oContainer, oLastOpener);
  2805.         }
  2806.         else
  2807.         if (GetLevelByClass(CLASS_TYPE_CLERIC, oLastOpener) >= 1)
  2808.         {
  2809.             CreateLightMace(oContainer, oLastOpener);
  2810.         }
  2811.         else
  2812.         if (GetLevelByClass(CLASS_TYPE_ROGUE, oLastOpener) >= 1 || GetLevelByClass(CLASS_TYPE_BARD, oLastOpener) >= 1)
  2813.         {
  2814.             CreateShortsword(oContainer, oLastOpener);
  2815.         }
  2816.     }
  2817. }
  2818.  
  2819.  
  2820.