Advertisement
Luticus

DND 3.5 Character Creater, JavaScript | Scrapped

May 25th, 2012
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. <html>
  3.  
  4.     <head>
  5.         <script language="javascript">
  6.         var defaultPointLimit= 36   // -- edit this variable to set the defualt attribute points to distribute
  7. //-----------------------------------------------------------------------------------------------------------------------------------
  8.             function clearfeild(field)
  9.             {
  10.                 field.value='';
  11.             }
  12. //-----------------------------------------------------------------------------------------------------------------------------------
  13.             function updateReputation()
  14.             {
  15.                 moralrep = document.charbuilder.Moral_Alignment.value;
  16.                 politrep = document.charbuilder.Political_Alignment.value / 2;
  17.                 document.charbuilder.Reputation.value = parseInt(moralrep, 10) + parseInt(politrep, 10);
  18.             }
  19. //-----------------------------------------------------------------------------------------------------------------------------------
  20.             function attbtots(attb)
  21.             {
  22.                 //alert(attb);
  23.                 var temp = 0;
  24.                 switch (attb)
  25.                 {
  26.                     case 'stradj':
  27.                         if(document.charbuilder.stradj.value == "") document.charbuilder.stradj.value = "0";
  28.                         document.charbuilder.totstr.value = parseInt(document.charbuilder.stradj.value, 10) + parseInt(document.charbuilder.Str.value, 10);
  29.                         temp = (parseInt(document.charbuilder.totstr.value, 10) - 10) / 2;
  30.                         document.charbuilder.totstrmod.value = Math.floor(temp);
  31.                         break;
  32.                     case 'dexadj':
  33.                         if(document.charbuilder.dexadj.value == "") document.charbuilder.dexadj.value = "0";
  34.                         document.charbuilder.totdex.value = parseInt(document.charbuilder.dexadj.value, 10) + parseInt(document.charbuilder.Dex.value, 10);
  35.                         temp = (parseInt(document.charbuilder.totdex.value, 10) - 10) / 2;
  36.                         var dexmodtemp = Math.floor(temp);
  37.                         if(dexmodtemp > document.charbuilder.maxDex.value) document.charbuilder.totdexmod.value = document.charbuilder.maxDex.value;
  38.                         else document.charbuilder.totdexmod.value = dexmodtemp;
  39.                         break;
  40.                     case 'conadj':
  41.                         if(document.charbuilder.conadj.value == "") document.charbuilder.conadj.value = "0";
  42.                         document.charbuilder.totcon.value = parseInt(document.charbuilder.conadj.value, 10) + parseInt(document.charbuilder.Con.value, 10);
  43.                         temp = (parseInt(document.charbuilder.totcon.value, 10) - 10) / 2;
  44.                         document.charbuilder.totconmod.value = Math.floor(temp);
  45.                         break;
  46.                     case 'wisadj':
  47.                         if(document.charbuilder.wisadj.value == "") document.charbuilder.wisadj.value = "0";
  48.                         document.charbuilder.totwis.value = parseInt(document.charbuilder.wisadj.value, 10) + parseInt(document.charbuilder.Wis.value, 10);
  49.                         temp = (parseInt(document.charbuilder.totwis.value, 10) - 10) / 2;
  50.                         document.charbuilder.totwismod.value = Math.floor(temp);
  51.                         break;
  52.                     case 'intadj':
  53.                     if(document.charbuilder.intadj.value == "") document.charbuilder.intadj.value = "0";
  54.                         document.charbuilder.totint.value = parseInt(document.charbuilder.intadj.value, 10) + parseInt(document.charbuilder.Int.value, 10);
  55.                         temp = (parseInt(document.charbuilder.totint.value, 10) - 10) / 2;
  56.                         document.charbuilder.totintmod.value = Math.floor(temp);
  57.                         break;
  58.                     case 'chaadj':
  59.                         if(document.charbuilder.chaadj.value == "") document.charbuilder.chaadj.value = "0";
  60.                         document.charbuilder.totcha.value = parseInt(document.charbuilder.chaadj.value, 10) + parseInt(document.charbuilder.Cha.value, 10);
  61.                         temp = (parseInt(document.charbuilder.totcha.value, 10) - 10) / 2;
  62.                         document.charbuilder.totchamod.value = Math.floor(temp);
  63.                         break;
  64.                 }
  65.                 var maxDex = parseInt(document.charbuilder.maxDex.value, 10);
  66.                 var dexBonus = parseInt(document.charbuilder.totdexmod.value, 10);
  67.                 if (dexBonus > maxDex) dexBonus = maxDex;
  68.                 document.charbuilder.FTatb.value=document.charbuilder.totconmod.value;
  69.                 document.charbuilder.RFatb.value=dexBonus
  70.                 document.charbuilder.WIatb.value=document.charbuilder.totwismod.value;
  71.                 document.charbuilder.FTtot.value = parseInt(document.charbuilder.FTbase.value, 10) + parseInt(document.charbuilder.FToth.value, 10) + parseInt(document.charbuilder.FTatb.value, 10);
  72.                 document.charbuilder.RFtot.value = parseInt(document.charbuilder.RFbase.value, 10) + parseInt(document.charbuilder.RFoth.value, 10) + parseInt(document.charbuilder.RFatb.value, 10);
  73.                 document.charbuilder.WItot.value = parseInt(document.charbuilder.WIbase.value, 10) + parseInt(document.charbuilder.WIoth.value, 10) + parseInt(document.charbuilder.WIatb.value, 10);
  74.                 document.charbuilder.HP.value = (parseInt(document.charbuilder.HitDie.value, 10) + parseInt(document.charbuilder.totconmod.value, 10))  * parseInt(document.charbuilder.Level.value, 10);
  75.                 //---------------------carry capacity--------------------------
  76.                 var str = parseInt(document.charbuilder.totstr.value, 10);
  77.                 var strmod = parseInt(document.charbuilder.totstrmod.value, 10);
  78.                 var maxload = (str + strmod) * 3//Math.pow(parseInt(document.charbuilder.totstr.value, 10), 2);
  79.                 if(strmod < 0) maxload = maxload * -1;
  80.                 //if(maxload < 10) maxload += str;
  81.                 /*if(str < 10)maxload += 15;
  82.                 else if(str > 10 && str < 15)maxload += 25;
  83.                 else maxload += 35;
  84.                 if(maxload < 1) maxload = 1;
  85.                 document.charbuilder.Max_Capacity.value = maxload;
  86.                 if(str < 10)maxload = (maxload * 3);
  87.                 else if(str > 10 && str < 15)maxload = (maxload * 3);
  88.                 else maxload = (maxload * 4);
  89.                 maxload = Math.floor(maxload);
  90.                 document.charbuilder.Over_Capacity.value = maxload;*/
  91.                 //-------------------------------------------------------------
  92.                 //---------------------Armor Class-----------------------------
  93.                 var ACBase = 10;
  94.                 noBlank(document.charbuilder.Armor);
  95.                 noBlank(document.charbuilder.ACShield);
  96.                 noBlank(document.charbuilder.ACSize);
  97.                 noBlank(document.charbuilder.ACMisc);
  98.                 var ACArmor = parseInt(document.charbuilder.Armor.value, 10);
  99.                 var ACShield = parseInt(document.charbuilder.ACShield.value, 10);
  100.                 var ACSize = parseInt(document.charbuilder.ACSize.value, 10);
  101.                 var ACMisc = parseInt(document.charbuilder.ACMisc.value, 10);
  102.                 document.charbuilder.ACDex.value = dexBonus;
  103.                 document.charbuilder.AC.value = ACBase + ACArmor + ACShield + ACSize + dexBonus + ACMisc;
  104.                 document.charbuilder.ACFlatFoot.value = ACBase + ACArmor + ACShield + ACSize + ACMisc;
  105.                 document.charbuilder.ACTouch.value = ACBase + dexBonus;
  106.                 //-------------------------------------------------------------
  107.             }
  108. //-----------------------------------------------------------------------------------------------------------------------------------
  109.             function resetPts()
  110.             {
  111.                 document.charbuilder.dispts.value = defaultPointLimit;
  112.                 document.charbuilder.Str.value = 8;
  113.                 document.charbuilder.Dex.value = 8;
  114.                 document.charbuilder.Con.value = 8;
  115.                 document.charbuilder.Wis.value = 8;
  116.                 document.charbuilder.Int.value = 8;
  117.                 document.charbuilder.Cha.value = 8;
  118.                 document.charbuilder.strmod.value = -1;
  119.                 document.charbuilder.dexmod.value = -1;
  120.                 document.charbuilder.conmod.value = -1;
  121.                 document.charbuilder.wismod.value = -1;
  122.                 document.charbuilder.intmod.value = -1;
  123.                 document.charbuilder.chamod.value = -1;
  124.                 attbtots('stradj');
  125.                 attbtots('dexadj');
  126.                 attbtots('conadj');
  127.                 attbtots('wisadj');
  128.                 attbtots('intadj');
  129.                 attbtots('chaadj');    
  130.             }
  131. //-----------------------------------------------------------------------------------------------------------------------------------
  132.             function pts(operation, attrib, modif, modtot)
  133.             {
  134.                 //alert(attrib.value);
  135.                 var changepts = 1;
  136.                 var dispts = parseInt(document.charbuilder.dispts.value, 10);
  137.                 var currentPts = parseInt(attrib.value, 10);
  138.                 var currentMod;
  139.                 switch(operation)
  140.                 {
  141.                     case -1:
  142.                         if(attrib.value <= 6) return 'Error: You can not set an attribute below 8.';
  143.                         currentMod = (currentPts - 10)/2;
  144.                         currentMod = Math.floor(currentMod);
  145.                         if(currentMod > 1) changepts = currentMod;
  146.                         dispts += changepts;
  147.                         currentPts--;
  148.                         break;
  149.                     case 1:
  150.                         if(attrib.value >= 18) return 'Error: You can not set an attribute above 18 on creation.';
  151.                         currentPts++;
  152.                         currentMod = (currentPts - 10)/2;
  153.                         currentMod = Math.floor(currentMod);
  154.                         if(currentMod > 1) changepts = currentMod;
  155.                         if (dispts < changepts) return 'Error: You do not have enough points left distribute.';
  156.                         dispts -= changepts;   
  157.                 }
  158.                 attrib.value = currentPts;
  159.                 document.charbuilder.dispts.value = dispts
  160.                 modif.value = currentMod;
  161.                 attbtots(modtot);
  162.                 //alert(currentPts + ", " + currentMod);
  163.                 return 'Success';          
  164.             }
  165. //-----------------------------------------------------------------------------------------------------------------------------------
  166.             function attbupdate(saveBase, saveOth, saveAttb, saveTotal, object) {
  167.                 noBlank(object);
  168.                 saveTotal.value = parseInt(saveBase.value, 10) + parseInt(saveOth.value, 10) + parseInt(saveAttb.value, 10);
  169.             }
  170. //-----------------------------------------------------------------------------------------------------------------------------------
  171.             function noBlank(item)
  172.             {
  173.                 if (item.value == "" || item.value == null)
  174.                 {
  175.                     item.value = 0;
  176.                 }
  177.             }
  178. //-----------------------------------------------------------------------------------------------------------------------------------
  179.             function LoadScript()
  180.             {
  181.                 resetPts();
  182.                 updateReputation();
  183.             }
  184.            
  185. //-----------------------------------------------------------------------------------------------------------------------------------
  186.             </script>
  187.            
  188.         <title>Character Creator</title>
  189.     </head>
  190.  
  191.     <body onload="LoadScript()">
  192.         <center>
  193.            
  194.             <hr>
  195.             <form name="charbuilder" method="post" action="CreateChar.php">
  196.                 <table>
  197.                     <tr>
  198.                         <td colspan="2"><b><u><center>Character Creater</center></u></b><hr></td>
  199.                     </tr>
  200.                     <tr>
  201.                         <td colspan="2">
  202.                             <center>
  203.                                  * = Box is cleared on click/highlight.<br>
  204.                                  o = Box is optional/doesn't need a value. <br>
  205.                                  X = Box cannot be altered.
  206.                                  (some boxes cannot be altered but are not labeled with an "X")
  207.                             </center>
  208.                             <hr>
  209.                         </td>
  210.                     </tr>
  211.                     <tr>
  212.                         <td colspan="2"> <b><u>Player Information</u></b><hr></td>
  213.                     </tr>
  214.                     <tr>
  215.                         <td>Player</td>
  216.                         <td><input type="text" name="Player" style="width:200px"></td>
  217.                     </tr>
  218.                     <tr>
  219.                         <td>Password</td>
  220.                         <td><input type="text" name="Password" style="width:200px"></td>
  221.                     </tr>
  222.                     <tr>
  223.                         <td>Confirm Password</td>
  224.                         <td><input type="text" name="ConfPassword" style="width:200px"></td>
  225.                     </tr>
  226.  
  227.                     <tr>
  228.                         <td colspan="2"><br> <b><u>Character</u></b> <hr></td>
  229.                     </tr>
  230.                     <tr>
  231.                         <td>Character Name</td>
  232.                         <td><input type="text" name="Character_Name" style="width:200px"></td>
  233.                     </tr>
  234.                     <tr>
  235.                         <td>Race</td>
  236.                         <td><input type="text" name="Race" style="width:200px"></td>
  237.                     </tr>
  238.                     <tr>
  239.                         <td>Class</td>
  240.                         <td><input type="text" name="Classes" value="Fighter" onfocus="clearfeild(this)" style="width:200px"></td>
  241.                     </tr>
  242.                     <tr>
  243.                         <td>Political Alignment</td>
  244.                         <td>
  245.                             <select name="Political_Alignment" style="width:200px" onchange="updateReputation();">
  246.                                 <optgroup label="Political Alignment"></optgroup>
  247.                                 <option value=10>Lawful</option>
  248.                                 <option value=0>True (Neutral)</option>
  249.                                 <option value=-10>Chaotic</option>
  250.                             </select>
  251.                         </td>
  252.                     </tr>
  253.  
  254.                     <tr>
  255.                         <td>Moral Alignment</td>
  256.                         <td>
  257.                             <select name="Moral_Alignment" style="width:200px" onchange="updateReputation();">
  258.                                 <optgroup label="Moral Alignment"></optgroup>
  259.                                 <option value=10>Good</option>
  260.                                 <option value=0>Neutral</option>
  261.                                 <option value=-10>Evil</option>
  262.                             </select>
  263.                             <input type="hidden" name="Reputation">
  264.                         </td>
  265.                     </tr>
  266.                     <tr>
  267.                         <td>Deity</td>
  268.                         <td><input type="text" name="Deity"  style="width:200px"> o</td>
  269.                     </tr>
  270.                     <tr>
  271.                         <td>Level</td>
  272.                         <td><input type="text" name="Level" value="1" onfocus="blur()" readonly style="width:200px"> X</td>
  273.                     </tr>
  274.                     <tr>
  275.                         <td>Experience</td>
  276.                         <td><input type="text" name="Experience_Gained" value="1" onfocus="blur()" readonly style="width:98px">/<input type="text" name="Experience_Needed" value="1000" readonly style="width:98px"> X</td>
  277.                     </tr>
  278.                     <tr>
  279.                         <td>Gender</td>
  280.                         <td>
  281.                             <select name="Gender" style="width:200px">
  282.                                 <optgroup label="Gender"></optgroup>
  283.                                 <option value="Male">Male</option>
  284.                                 <option value="Female">Female</option>
  285.                                 <option value="Other">Other</option>
  286.                             </select>
  287.                         </td>
  288.                     </tr>
  289.                     <tr>
  290.                         <td>Age</td>
  291.                         <td><input type="text" name="Age" value="18" onfocus="clearfeild(this)" style="width:200px"> *</td>
  292.                     </tr>
  293.                     <tr>
  294.                         <td>Size</td>
  295.                         <td>
  296.                             <select name="Size" style="width:200px">
  297.                                 <optgroup label="Size"></optgroup>
  298.                                 <option value="Large">Large</option>
  299.                                 <option selected value="Medium">Medium</option>
  300.                                 <option value="Small">Small</option>
  301.                             </select>              
  302.                         </td>
  303.                     </tr>
  304.                     <tr>
  305.                         <td>Height *in inches (72" = 6')</td>
  306.                         <td><input type="text" name="Height" value="72" onfocus="clearfeild(this)" style="width:200px"> *</td>
  307.                     </tr>
  308.                     <tr>
  309.                         <td>Weight *in pounds</td>
  310.                         <td><input type="text" name="Weight" Value="160" onfocus="clearfeild(this)" style="width:200px"> *</td>
  311.                     </tr>
  312.                     <tr>
  313.                         <td>Complexion</td>
  314.                         <td>
  315.                             <select name="Complexion" style="width:200px">
  316.                                 <optgroup label="Complexion"></optgroup>
  317.                                 <option value="Very Light">Very Light (Fair Skin)</option>
  318.                                 <option value="Light">Light</option>
  319.                                 <option selected value="Light Intermediate">Light Intermediate (Caucasian)</option>
  320.                                 <option value="Dark Intermediate">Dark Intermediate (Olive Skin)</option>
  321.                                 <option value="Dark">Dark (Brown)</option>
  322.                                 <option value="Very Dark">Very Dark (Black)</option>
  323.                             </select>                          
  324.                         </td>
  325.                     </tr>
  326.                     <tr>
  327.                         <td>Hair (color)</td>
  328.                         <td><input type="text" name="Hair" value="Brown" onfocus="clearfeild(this)" style="width:200px"> *</td>
  329.                     </tr>
  330.                     <tr>
  331.                         <td>Eyes (color)</td>
  332.                         <td><input type="text" name="Eyes" value="Blue" onfocus="clearfeild(this)" style="width:200px"> *</td>
  333.                     </tr>
  334.                     <tr>
  335.                         <td>Handedness</td>
  336.                         <td>
  337.                             <select name="Handedness" style="width:200px">
  338.                                 <optgroup label="Handedness"></optgroup>
  339.                                 <option value="Right">Right</option>
  340.                                 <option value="Left">Left</option>
  341.                             </select>  
  342.                         </td>
  343.                     </tr>
  344.                     <tr>
  345.                         <td>History</td>
  346.                         <td><textarea name="History" rows="5" style="width:200px"></textarea> o</td>
  347.                     </tr>
  348.                     <tr>
  349.                         <td>Nationality</td>
  350.                         <td>
  351.                             <select name="Nationality" style="width:200px">
  352.                                 <optgroup label="Nationality"></optgroup>
  353.                                 <option value="Defualt">Dummy Choice</option>
  354.                             </select> o
  355.                         </td>
  356.                     </tr>
  357.                     <tr>
  358.                         <td colspan="2"><br> <b><u>Character Stats</u></b> <hr></td>
  359.                     </tr>
  360.                     <tr>
  361.                         <td>Points to Distribute</td>
  362.                         <td><input type="text" name="dispts" value="" onfocus="blur()" readonly style="width:200px"></td>
  363.                     </tr>
  364.  
  365.                     <tr>
  366.                         <td>Strength</td>
  367.                         <td><input type="text" name="Str" value="8" onfocus="blur()" readonly style="width:25px"> Mod:<input type="text" name="strmod" value="-1" onfocus="blur()" readonly style="width:20px"> (<input type="button" value="+" onclick="pts(1, document.charbuilder.Str, document.charbuilder.strmod, 'stradj')"><input type="button" value="-" onclick="pts(-1, document.charbuilder.Str, document.charbuilder.strmod, 'stradj')">) + Adj<input type="text" name="stradj" onblur="attbtots(this.name)" value="0" style="width:20px">=<input type="text" name="totstr" value="8" onfocus="blur()" readonly style="width:20px">/<input type="text" name="totstrmod" value="-1" onfocus="blur()" readonly style="width:20px"></td>
  368.                     </tr>
  369.                     <tr>
  370.                         <td>Dexterity</td>
  371.                         <td><input type="text" name="Dex" value="8" onfocus="blur()" readonly style="width:25px"> Mod:<input type="text" name="dexmod" value="-1" onfocus="blur()" readonly style="width:20px"> (<input type="button" value="+" onclick="pts(1, document.charbuilder.Dex, document.charbuilder.dexmod, 'dexadj')"><input type="button" value="-" onclick="pts(-1, document.charbuilder.Dex, document.charbuilder.dexmod, 'dexadj')">) + Adj<input type="text" name="dexadj" onblur="attbtots(this.name)" value="0" style="width:20px">=<input type="text" name="totdex" value="8" onfocus="blur()" readonly style="width:20px">/<input type="text" name="totdexmod" value="-1" onfocus="blur()" readonly style="width:20px"> | Max Dex:<input type="text" name="maxDex" value="1" onblur="attbtots(0)" style="width:20px" onchange="attbtots('dexadj')"></td>
  372.                     </tr>
  373.                     <tr>
  374.                         <td>Constitution</td>
  375.                         <td><input type="text" name="Con" value="8" onfocus="blur()" readonly style="width:25px"> Mod:<input type="text" name="conmod" value="-1" onfocus="blur()" readonly style="width:20px"> (<input type="button" value="+" onclick="pts(1, document.charbuilder.Con, document.charbuilder.conmod, 'conadj')"><input type="button" value="-" onclick="pts(-1, document.charbuilder.Con, document.charbuilder.conmod, 'conadj')">) + Adj<input type="text" name="conadj" onblur="attbtots(this.name)" value="0" style="width:20px">=<input type="text" name="totcon" value="8" onfocus="blur()" readonly style="width:20px">/<input type="text" name="totconmod" value="-1" onfocus="blur()" readonly style="width:20px"></td>
  376.                     </tr>
  377.                     <tr>
  378.                         <td>Intelligence</td>
  379.                         <td><input type="text" name="Int" value="8" onfocus="blur()" readonly style="width:25px"> Mod:<input type="text" name="intmod" value="-1" onfocus="blur()" readonly style="width:20px"> (<input type="button" value="+" onclick="pts(1, document.charbuilder.Int, document.charbuilder.intmod, 'intadj')"><input type="button" value="-" onclick="pts(-1, document.charbuilder.Int, document.charbuilder.intmod, 'intadj')">) + Adj<input type="text" name="intadj" onblur="attbtots(this.name)" value="0" style="width:20px">=<input type="text" name="totint" value="8" onfocus="blur()" readonly style="width:20px">/<input type="text" name="totintmod" value="-1" onfocus="blur()" readonly style="width:20px"></td>
  380.                     </tr>
  381.                     <tr>
  382.                         <td>Wisdom</td>
  383.                         <td><input type="text" name="Wis" value="8" onfocus="blur()" readonly style="width:25px"> Mod:<input type="text" name="wismod" value="-1" onfocus="blur()" readonly style="width:20px"> (<input type="button" value="+" onclick="pts(1, document.charbuilder.Wis, document.charbuilder.wismod, 'wisadj')"><input type="button" value="-" onclick="pts(-1, document.charbuilder.Wis, document.charbuilder.wismod, 'wisadj')">) + Adj<input type="text" name="wisadj" onblur="attbtots(this.name)" value="0" style="width:20px">=<input type="text" name="totwis" value="8" onfocus="blur()" readonly style="width:20px">/<input type="text" name="totwismod" value="-1" onfocus="blur()" readonly style="width:20px"></td>
  384.                     </tr>
  385.                     <tr>
  386.                         <td>Charisma</td>
  387.                         <td><input type="text" name="Cha" value="8" onfocus="blur()" readonly style="width:25px"> Mod:<input type="text" name="chamod" value="-1" onfocus="blur()" readonly style="width:20px"> (<input type="button" value="+" onclick="pts(1, document.charbuilder.Cha, document.charbuilder.chamod, 'chaadj')"><input type="button" value="-" onclick="pts(-1, document.charbuilder.Cha, document.charbuilder.chamod, 'chaadj')">) + Adj<input type="text" name="chaadj" onblur="attbtots(this.name)" value="0" style="width:20px">=<input type="text" name="totcha" value="8" onfocus="blur()" readonly style="width:20px">/<input type="text" name="totchamod" value="-1" onfocus="blur()" readonly style="width:20px"></td>
  388.                     </tr>
  389.                     <tr>
  390.                         <td colspan="2">
  391.                             <center>
  392.                                 Use "Adj" boxes to account for class/race/feat attribute adjustments.<br>
  393.                                 "Adj" boxes are not reset by the "Reset Points" button.<br>
  394.                                 Use the "Max Dex" field to account for the maximum dexterity bonus allowed by your armor.
  395.                             </center>
  396.                         </td>
  397.                     </tr>
  398.                     <tr>
  399.                         <td colspan="2"><center><input type="button" value="Reset Points" onclick="resetPts();" style="width:370px"></center></td>
  400.                     </tr>
  401.                     <tr>
  402.                         <td colspan="2">
  403.                             <table width="100%">
  404.                                 <tr>
  405.                                     <td>| Save Type |</td>
  406.                                     <td>| Base |</td>
  407.                                     <td>| Other |</td>
  408.                                     <td>| Attribute |</td>
  409.                                     <td>| Total |</td>
  410.                                 </tr>
  411.            
  412.                                 <tr>
  413.                                     <td>  Fortitude</td>
  414.                                     <td><input type="text" value="0" name="FTbase" onchange="attbupdate(this, document.charbuilder.FToth, document.charbuilder.FTatb, document.charbuilder.FTtot, this)" style="width:20px"></td>
  415.                                     <td> + <input type="text" value="0" name="FToth" onchange="attbupdate(document.charbuilder.FTbase, this, document.charbuilder.FTatb, document.charbuilder.FTtot, this)" style="width:20px"></td>
  416.                                     <td> + <input type="text" value="-1" onfocus="blur()" readonly name="FTatb" style="width:20px">Con</td>
  417.                                     <td>= <input type="text" value="-1" onfocus="blur()" readonly name="FTtot" style="width:20px"></td>
  418.                                 </tr>
  419.                                 <tr>
  420.                                     <td>  Reflex</td>
  421.                                     <td><input type="text" value="0" name="RFbase" onchange="attbupdate(this, document.charbuilder.RFoth, document.charbuilder.RFatb, document.charbuilder.RFtot, this)" style="width:20px"></td>
  422.                                     <td>+ <input type="text" value="0" name="RFoth" onchange="attbupdate(document.charbuilder.RFbase, this, document.charbuilder.RFatb, document.charbuilder.RFtot, this)" style="width:20px"></td>
  423.                                     <td>+ <input type="text" value="-1" onfocus="blur()" readonly name="RFatb" style="width:20px">Dex</td>
  424.                                     <td>= <input type="text" value="-1" onfocus="blur()" readonly name="RFtot" style="width:20px"></td>
  425.                                 </tr>
  426.                                 <tr>
  427.                                     <td>  Will</td>
  428.                                     <td><input type="text" value="0" name="WIbase" onchange="attbupdate(this, document.charbuilder.WIoth, document.charbuilder.WIatb, document.charbuilder.WItot, this)" style="width:20px"></td>
  429.                                     <td>+ <input type="text" value="0" name="WIoth" onchange="attbupdate(document.charbuilder.WIbase, this, document.charbuilder.WIatb, document.charbuilder.WItot, this)" style="width:20px"></td>
  430.                                     <td>+ <input type="text" value="-1" onfocus="blur()" readonly name="WIatb" style="width:20px">Wis</td>
  431.                                     <td>= <input type="text" value="-1" onfocus="blur()" readonly name="WItot" style="width:20px"></td>
  432.                                 </tr>
  433.                                 <tr>
  434.                                     <td colspan="4">Include any racial/equipment/class bonuses in the Other field.<hr></td>
  435.                                 </tr>
  436.                             </table>
  437.                         </td>
  438.                     </tr>
  439.                     <tr>
  440.                         <td>Hit Points</td>
  441.                         <td>
  442.                        
  443.                         <select name="HitDie" onchange="attbtots('Null')" style="width:70px">
  444.                             <optgroup label="Hit Die"></optgroup>
  445.                             <option selected value="4">1D4</option>
  446.                             <option value="6">1D6</option>
  447.                             <option value="8">1D8</option>
  448.                             <option value="10">1D10</option>
  449.                             <option value="12">1D12</option>
  450.                         </select>                          
  451.                         <input type="text" name="HP" value="3" readonly style="width:125px"></td>
  452.                     </tr>
  453.                     <tr>
  454.                         <td>Load Capacity</td>
  455.                         <td>Normal:<input type="text" name="Max_Capacity" value="" style="width:50px">LBS / Immobile Beyond:<input type="text" name="Over_Capacity" value="" style="width:50px">LBS
  456.                         <br>
  457.                         Enter Load capacity from the players handbook above.
  458.                         <br>
  459.                         <br>
  460.                         </td>
  461.                     </tr>      
  462.                     <tr>
  463.                         <td>Speed</td>
  464.                         <td><input type="text" name="Speed" value="15" onfocus="clearfeild(this)" style="width:200px"></td>
  465.                     </tr>
  466.                     <tr>
  467.                         <td colspan="2">
  468.                             <table width="100%">
  469.                                 <tr>
  470.                                     <td></td>
  471.                                     <td>Base</td>
  472.                                     <td>Armor</td>
  473.                                     <td>Shield</td>
  474.                                     <td>Dex</td>
  475.                                     <td>Size</td>
  476.                                     <td>Misc.</td>
  477.                                     <td>AC</td>
  478.                                 </tr>
  479.                                 <tr>
  480.                                     <td>Armor Class</td>
  481.                                     <td>10</td>
  482.                                     <td>+<input type="text" name="Armor" value="0" onchange="attbtots(0)" style="width:20px"></td>
  483.                                     <td>+<input type="text" name="ACShield" value="0"  onchange="attbtots(0)" style="width:20px">
  484.                                     <td>+<input type="text" id="ACDex" value="-1" onfocus="blur()" style="width:20px">X</td>
  485.                                     <td>+<input type="text" name="ACSize" value="0" onchange="attbtots(0)" style="width:20px"></td>
  486.                                     <td>+<input type="text" name="ACMisc" value="0"  onchange="attbtots(0)" style="width:20px"></td>
  487.                                     <td>=<input type="text" name="AC" value="9" onfocus="blur()" readonly style="width:20px"></td>
  488.                                 </tr>
  489.                                 <tr><td></td>
  490.                                     <td colspan="2"><center>Flat Footed</center></td>
  491.                                     <td><center>Touch</center></td>
  492.                                     <td colspan="2"><center>Check Penalty</center></td>
  493.                                     <td colspan="2"><center>Spell Fail %</center></td>
  494.                                 </tr>
  495.                                 <tr>
  496.                                     <td></td>
  497.                                     <td colspan="2"><center><input type="text" name="ACFlatFoot" value="10" readonly style="width:20px"></center></td>
  498.                                     <td><center><input type="text" name="ACTouch" value="9" onfocus="blur()" readonly style="width:20px"></center></td>
  499.                                     <td colspan="2"><center><input type="text" name="ACChkPen" value="" style="width:20px">Enter Value</center></td>
  500.                                     <td colspan="2"><center><input type="text" name="ACSpellFail" value="" style="width:20px">Enter Value</center></td>
  501.                                 </tr>
  502.                             </table>
  503.                         </td>
  504.                     </tr>
  505.                 </table>
  506.             </form>
  507.             <hr>
  508.         </center>
  509.     </body>
  510.  
  511. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement