Jump to content

Zamiel7

Member
  • Posts

    72
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Zamiel7 got a reaction from HairballHacker in NQ, Griefers are a problem   
    Except this is actually a terrible way of thinking about rules. The more specific and technical rules are, the better because it leaves no room for interpretation. "Don't build walls in adjacent tiles to adversely affect neighboring players" is infinitely better than "don't be a dick" because that the threshold of "being a dick" is going to vary wildly from player to player. A person can realistically say that it's a dick move to blow up a tiny, unarmed hauler, but that is absolutely not an infraction against the rules. There are far more ways to argue and circumvent "being a dick" than a specific, clearly worded ruling.
     
    Ideally, it will become difficult or impossible to take an exploitive action that goes against the design of the game as time goes on, but until then, NQ should endeavor to be as clear and technical as possible in rulings.
  2. Like
    Zamiel7 reacted to Haunty in Not Punishing Desolation was weak and poor from NQ   
    I'd agree more if this was release and not beta, but NQ should be quicker with declaring if something is an exploit before it goes on for weeks.
  3. Like
    Zamiel7 got a reaction from Elrood in Here's the thing   
    I honestly think $20 for three months is an incredible bargain, but I can see how many might consider it a potential waste if it turns out they don't like the game in the first week.
  4. Like
    Zamiel7 reacted to NQ-Naerais in Clarification regarding Bug Exploits & Griefing   
    Hello Noveans, 
     
    We realize there is some confusion regarding whether certain scenarios occurring within the game world are permitted or not, and would like to clarify these points for everyone.  In short, we’d like to ask our community to use common sense when encountering issues in the game;  If it looks like an exploit, smells like an exploit (do pixels smell?), or sounds like an exploit, chances are it is an exploit. Don’t DU it! Report it. (support.dualthegame.com)
     
    We are in a testing phase, and reporting these bugs/issues is important. Abusing them may lead to sanctions against accounts, up to and including removal from the game. We will not take ignorance as an excuse, especially in the following list of scenarios. Please note this is not an exhaustive list, and we will continue to expand upon it as needed: 
     
     “ALT + F4 Emergency Brake”: We acknowledge this is not an intended game play loop that is being intentionally used by players. We do plan to counter this action in the future but do not consider it high priority at this time. At this time, we will not take action against an account for using such. [Allowed]  
    Parenting Ships - Dragged to PVP Space: This is a hot topic and one we wish to be very clear on. Intentionally parenting any construct without permission of the owner is not intended for game play. A fix has been rolled out that will address the ability to parent constructs together via the maneuver tool. As we have not previously clarified this point, we will not retroactively punish this abuse, as of this moment forward abusing similar bugs/tools to replicate this maneuver in its current state can result in disciplinary actions on an account. [Not Allowed]  
    Attacking PVP Zone from Safe Space: Our team has been investigating complaints of ships being attacked in the PVP zone from ships outside of the zone. Our investigations strongly point to sync issues between clients. We will continue to work with this feature, but recommend players consider the zone lines for PVP to be somewhat fluid and not absolute. Our version of the neutral zone! We ask that you continue to report cases with positions, but will not action accounts at this time, unless an additional exploit is discovered. [Allowed]  
    Overlapping engines with other elements (obscuring): A fix will be rolled out that will prevent this from occurring. No action will be taken, unless additional abuse is occurring. [Allowed]  
    Theft Via RDMS: RDMS permissions and settings are the sole discretion of each player. We advise you take the time to get to know and understand the system and be cautious when making a construct or element usable by unknown players, including the use of your friends list. Not every player has your best interest at heart. We can not get involved with permission based theft, whether as an individual or an organization. We encourage you to review your friends list each time you add or remove someone and ensure your construct permissions are set accordingly. The context menu options that set public access currently do not have a confirmation prompt, be careful as setting public access to said construct will allow every player in Dual Universe to go into build mode and remove/place elements and voxels.  [Allowed]
       
    Environmental Walls/Creations: Use of the environmental and voxel tools allows the manipulation of terrain on owned and unowned tiles. You may build walls or other structures up to the allowed height, however, said constructions must not:  Block access to market places or tutorials Must abide by our Community Standards (phallic/sexual, political, religious or otherwise offensive shapes are not permitted) Must not be placed with the intention of interfering with neighboring players. When players can not agree, the final decision on what is and is not acceptable is decided on a case-by-case basis by Novaquark staff.
       
    Marketplace Construct Parking: Players are permitted to park at marketplaces with their transport vehicles so long as they are not preventing use to other players or obstructing entry or exit points. Vehicles whose purpose is advertising (organization, service or otherwise) must abide by the following rules.  Organizations and individuals wishing to advertise at markets may have one advertising construct per district maximum Constructs may not be larger than “Small” sized Constructs may not block access to any building, entry points or dispensers Advertisements must not be placed/parented on constructs that don’t belong to you Constructs that violate these terms will be removed from the game without warning or compensation.
      Mass Manipulation in Transportation:  Players who utilize bugs to bypass the weight penalty of their inventory, other players, other constructs, etc to move mass through the game are not permitted. This includes: Adding additional mass to an already piloted ship [Fixed] Docking mass to an already piloted ship [Fixed] Circumventing linked container range [Fix Pending] [Not Allowed]  
    Item Duplication: Any method of duplicating items or resources (including quanta) is not allowed at any time. Any incidents of bugs of this nature must be reported to the support team at support.dualthegame.com [Not Allowed]
      Boarding without permission: As the deployment of the docking update is pending, the boarding of other players' constructs without consent will be considered an exploit. [Not Allowed]
     
    Offenders will be teleported away; repeat offenders may be subject to more serious repercussions.

    If you are boarded by another player and wish to have them removed, please report it either by creating a ticket here or by messaging @gm through the in-game Help channel.

    We do recommend you keep regular backups of your constructs in the form of blueprints in the case you lose a ship (through intended means (sale, give away etc),or undesired results such as in PVP, you can still recreate it later.    
     
    How to Blueprint (to save your ship/build):
    Enter build-mode on the construct, right click anywhere on the construct and click “Create Blueprint”. The blueprint will then be generated inside your currently active inventory. It is wise to keep hold of a copy of any of your blueprints inside your personal nanopack, as these are safe and not lost upon respawning.
     
    We realize this is not an exhaustive list, and we will expand upon it as time goes on. We also understand some members of our community feel that using a bug or exploit prior to acknowledgement by Novaquark is considered okay. We’d like to state that any intentional use of a  bug or exploit will be treated harshly going forward. This is the one and only warning we will issue on this topic. Please just don’t DU it! 

    On behalf of the entire team, we thank you for helping us make Dual Universe a better place! 
     
    Sincerely,
    The Novaquark Team
     
  5. Like
    Zamiel7 reacted to Anopheles in Atmosphere limits by planetary body   
    This will depend on the cross section of your ship.  If it looks like a wall from the front, go slower.
  6. Like
    Zamiel7 reacted to Mordgier in Large Ship Blueprint Woes   
    Only thing I can tell you now is to make several BPs in stages - but that doesn't really solve it just make you be able to at least place the voxels and then fill in the elements by hand.
     
    This is obviously not a full solution because getting the elements in place in such a way that they all look good is a hassle.
     
    It's even worse for industry as you basically have a ton of elements rather than voxels.
     
    So trying to move an L factory from BP is basically non viable currently.
  7. Like
    Zamiel7 reacted to Moosegun in The Point of Designing a Cool Ship?   
    There is a good reason why the voxelmancers are the superstars in this game, I dont see many people looking for a 'boxelmancer......'


    See what I did there
  8. Like
    Zamiel7 reacted to RONinja in Password System with Indepth Keyboard   
    Requirements:
    1 screen
    1 program board
    1 door


    ----------Script could be minified using pairs but for easy reading and alterations I have left script in basic if statements since most dont even understand the basics-------
    ----------Great example piece to demonstrate that Lua reads the scripts in Order of Operations as long as parameters are met--------------------
    Slots                       Hook up in this order and rename slots.
    slot1 --> screen
    slot2 --> door
     
    -------------------------mouse up------------------------------------------------------------- PWMouseX = x PWMouseY = y PWMouseDown = false local buttonNo = evaluateButtons() if PWButtonSelected > 0 and PWButtonSelected == buttonNo then onButtonUp(buttonNo) onClick(buttonNo) end PWButtonSelected = -buttonNo -------------------------mouse down----------------------------------------------------------- PWMouseX = x PWMouseY = y PWMouseDown = true PWAttention = 0 PWDislikeButton = 0 PWLikeButton = 0 PWButtonSelected = evaluateButtons() onButtonDown(PWButtonSelected) -------------------------system update----------------------------------------------------------------- updateScreen() -------------------------unit tick exit------------------------------------------------------------- keyb = "Goodbye" unit.exit() -------------------------unit stop------------------------------------------------------------ page = [[<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 600"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:red;}</style></defs><rect class="cls-1" width="1024" height="600"/><rect class="cls-2" width="1024" height="281"/><path class="cls-1" d="M164.05,122.19V50.61h36.87q10.25,0,15.67,1.76a16.65,16.65,0,0,1,8.74,6.52,19.78,19.78,0,0,1,3.32,11.59,19.14,19.14,0,0,1-9.53,17.29,26.73,26.73,0,0,1-7.76,2.83,22,22,0,0,1,5.75,2.64A22,22,0,0,1,220.65,97a28.24,28.24,0,0,1,3.1,4.45l10.71,20.74h-25l-11.83-21.87c-1.49-2.83-2.83-4.67-4-5.52a9.24,9.24,0,0,0-5.42-1.66h-1.95v29.05Zm22.22-42.57h9.32a33.44,33.44,0,0,0,5.86-1A5.81,5.81,0,0,0,205,76.39a7.26,7.26,0,0,0-.8-9.47Q202,65.06,196,65.06h-9.71Z"/><path class="cls-1" d="M241.49,50.61h59.28V65.89H263.66V77.27h34.42v14.6H263.66V106h38.18v16.21H241.49Z"/><path class="cls-1" d="M309.9,98.51,331,97.19a16,16,0,0,0,2.78,7.82q3.42,4.33,9.76,4.34,4.74,0,7.3-2.22a6.66,6.66,0,0,0,2.57-5.15,6.58,6.58,0,0,0-2.44-5q-2.44-2.2-11.33-4.15Q325,89.58,318.84,84.16a17.48,17.48,0,0,1-6.25-13.82,18.79,18.79,0,0,1,3.19-10.43,21.25,21.25,0,0,1,9.62-7.71q6.42-2.81,17.61-2.81,13.71,0,20.92,5.1t8.57,16.24L351.65,72c-.56-3.22-1.72-5.57-3.49-7a11.21,11.21,0,0,0-7.35-2.2q-3.85,0-5.81,1.64a5,5,0,0,0-2,4,4,4,0,0,0,1.62,3.07q1.56,1.43,7.42,2.64,14.51,3.12,20.77,6.32A21.84,21.84,0,0,1,372,88.31a20.13,20.13,0,0,1,2.85,10.59A22.72,22.72,0,0,1,371,111.6a23.81,23.81,0,0,1-10.64,8.81q-6.84,3-17.24,3-18.25,0-25.29-7A27.7,27.7,0,0,1,309.9,98.51Z"/><path class="cls-1" d="M381,50.61h67.23V68.29H425.62v53.9H403.5V68.29H381Z"/><path class="cls-1" d="M458.48,122.19V50.61h36.87q10.26,0,15.67,1.76a16.61,16.61,0,0,1,8.74,6.52,19.71,19.71,0,0,1,3.32,11.59,19.16,19.16,0,0,1-9.52,17.29,26.81,26.81,0,0,1-7.77,2.83,22.21,22.21,0,0,1,5.76,2.64A22.46,22.46,0,0,1,515.08,97a28.24,28.24,0,0,1,3.1,4.45l10.71,20.74h-25l-11.82-21.87c-1.5-2.83-2.83-4.67-4-5.52a9.24,9.24,0,0,0-5.42-1.66H480.7v29.05ZM480.7,79.62H490a33.58,33.58,0,0,0,5.86-1,5.84,5.84,0,0,0,3.59-2.25,7.25,7.25,0,0,0-.81-9.47c-1.46-1.24-4.22-1.86-8.25-1.86H480.7Z"/><path class="cls-1" d="M536.85,50.61H559v71.58H536.85Z"/><path class="cls-1" d="M622.55,92.9l19.38,5.86a35.76,35.76,0,0,1-6.15,13.62,26.72,26.72,0,0,1-10.43,8.25q-6.23,2.79-15.84,2.78-11.67,0-19.07-3.39t-12.77-11.93q-5.37-8.53-5.37-21.86,0-17.76,9.45-27.3t26.73-9.54q13.53,0,21.27,5.47t11.5,16.8L621.72,76a16.85,16.85,0,0,0-2.15-4.78A12.68,12.68,0,0,0,615,67.31,14,14,0,0,0,597.5,72q-3,4.49-3,14.09,0,11.91,3.61,16.32t10.16,4.41q6.35,0,9.59-3.56T622.55,92.9Z"/><path class="cls-1" d="M647.64,50.61h67.24V68.29H692.32v53.9H670.2V68.29H647.64Z"/><path class="cls-1" d="M724.84,50.61h59.28V65.89H747V77.27h34.42v14.6H747V106h38.18v16.21H724.84Z"/><path class="cls-1" d="M797.4,50.61h32.86q9.72,0,15.7,2.64a25.56,25.56,0,0,1,9.89,7.57,31.3,31.3,0,0,1,5.66,11.47,53.35,53.35,0,0,1,1.76,13.87q0,11.48-2.61,17.8a29.51,29.51,0,0,1-7.25,10.59,23.69,23.69,0,0,1-10,5.69,51.48,51.48,0,0,1-13.19,2H797.4Zm22.12,16.21v39.11h5.42q6.93,0,9.86-1.53A10.39,10.39,0,0,0,839.39,99q1.67-3.83,1.66-12.42,0-11.38-3.71-15.58T825,66.82Z"/><path class="cls-1" d="M410.55,230.38H385.44L382,242.19H359.36l26.91-71.58h24.12l26.9,71.58H414.13ZM406,214.9l-7.9-25.73-7.82,25.73Z"/><path class="cls-1" d="M444.62,242.19V170.61h36.86q10.26,0,15.68,1.76a16.69,16.69,0,0,1,8.74,6.52,20.21,20.21,0,0,1-6.21,28.88,26.81,26.81,0,0,1-7.77,2.83,21.89,21.89,0,0,1,5.76,2.64,22.82,22.82,0,0,1,3.54,3.76,29,29,0,0,1,3.1,4.45L515,242.19H490l-11.82-21.87q-2.25-4.24-4-5.52a9.26,9.26,0,0,0-5.42-1.66h-2v29.05Zm22.21-42.57h9.33a33.58,33.58,0,0,0,5.86-1,5.84,5.84,0,0,0,3.59-2.25,7.25,7.25,0,0,0-.81-9.47q-2.19-1.86-8.25-1.86h-9.72Z"/><path class="cls-1" d="M522.06,170.61h59.28v15.28H544.23v11.38h34.42v14.6H544.23V226h38.18v16.21H522.06Z"/><path class="cls-1" d="M638.33,230.38H613.22l-3.49,11.81H587.15l26.9-71.58h24.13l26.9,71.58H641.91Zm-4.59-15.48-7.9-25.73L618,214.9Z"/><path d="M77.59,318.57H94.11l21.56,31.68V318.57h16.68v57.27H115.67L94.23,344.4v31.44H77.59Z"/><path d="M141.88,347.25q0-14,7.82-21.84t21.75-7.81q14.3,0,22,7.67t7.74,21.51q0,10-3.38,16.46a24,24,0,0,1-9.77,10q-6.37,3.57-15.91,3.58-9.69,0-16-3.09A24.13,24.13,0,0,1,145.83,364Q141.89,357.29,141.88,347.25Zm17.7.07q0,8.67,3.22,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.83-3.71t3.12-13.32q0-8.09-3.26-11.81a11.13,11.13,0,0,0-8.85-3.73,10.76,10.76,0,0,0-8.59,3.78Q159.58,338.58,159.58,347.32Z"/><path d="M274.7,318.57h17.65v34.12a28.82,28.82,0,0,1-1.58,9.58,20.77,20.77,0,0,1-5,7.89,19.8,19.8,0,0,1-7.09,4.74,35.58,35.58,0,0,1-12.38,1.92,78.23,78.23,0,0,1-9.13-.59,23.88,23.88,0,0,1-8.26-2.32,20.74,20.74,0,0,1-6.07-4.94,18.05,18.05,0,0,1-3.77-6.6,34.3,34.3,0,0,1-1.64-9.68V318.57h17.66V353.5a10,10,0,0,0,2.59,7.32,11.18,11.18,0,0,0,14.38,0q2.59-2.6,2.6-7.36Z"/><path d="M304.19,318.57h16.52l21.56,31.68V318.57H359v57.27H342.27L320.83,344.4v31.44H304.19Z"/><path d="M405.14,366.39H385.05l-2.8,9.45H364.19l21.52-57.27H405l21.52,57.27H408ZM401.47,354l-6.33-20.58L388.89,354Z"/><path d="M466.69,318.57h17.65v34.12a28.57,28.57,0,0,1-1.58,9.58,20.65,20.65,0,0,1-5,7.89,19.8,19.8,0,0,1-7.09,4.74,35.54,35.54,0,0,1-12.38,1.92,77.93,77.93,0,0,1-9.12-.59,23.75,23.75,0,0,1-8.26-2.32,20.78,20.78,0,0,1-6.08-4.94,18.2,18.2,0,0,1-3.77-6.6,34.3,34.3,0,0,1-1.64-9.68V318.57h17.66V353.5a10,10,0,0,0,2.59,7.32,11.18,11.18,0,0,0,14.38,0q2.6-2.6,2.6-7.36Z"/><path d="M492,318.57h53.79v14.14H527.78v43.13H510.09V332.71H492Z"/><path d="M553.91,318.57h17.7v20H591v-20h17.77v57.27H591V352.67H571.61v23.17h-17.7Z"/><path d="M618.25,347.25q0-14,7.81-21.84t21.76-7.81q14.29,0,22,7.67t7.74,21.51q0,10-3.38,16.46a24.08,24.08,0,0,1-9.77,10q-6.39,3.57-15.92,3.58-9.69,0-16-3.09A24.13,24.13,0,0,1,622.2,364Q618.24,357.29,618.25,347.25Zm17.7.07q0,8.67,3.22,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.83-3.71t3.12-13.32q0-8.09-3.26-11.81a11.16,11.16,0,0,0-8.85-3.73,10.75,10.75,0,0,0-8.59,3.78Q635.95,338.58,636,347.32Z"/><path d="M687.35,375.84V318.57h29.49q8.2,0,12.54,1.41a13.46,13.46,0,0,1,7,5.21,16.18,16.18,0,0,1-5,23.11,21.45,21.45,0,0,1-6.21,2.27,17.31,17.31,0,0,1,4.6,2.11,17.56,17.56,0,0,1,2.83,3,22.32,22.32,0,0,1,2.48,3.56l8.57,16.59h-20l-9.46-17.5a13.35,13.35,0,0,0-3.21-4.42,7.43,7.43,0,0,0-4.33-1.32h-1.56v23.24Zm17.78-34.06h7.46a26.65,26.65,0,0,0,4.68-.78,4.69,4.69,0,0,0,2.87-1.8,5.79,5.79,0,0,0-.64-7.58q-1.75-1.49-6.6-1.48h-7.77Z"/><path d="M750.05,318.57h17.73v57.27H750.05Z"/><path d="M779,318.57h50.08V330L797,363.53h33.32v12.31H776V364l31.8-33.16H779Z"/><path d="M838.21,318.57h47.42V330.8H856v9.1h27.53v11.68H856v11.29h30.54v13H838.21Z"/><path d="M896.26,318.57h26.29q7.77,0,12.56,2.11a20.52,20.52,0,0,1,7.91,6.06,25.15,25.15,0,0,1,4.53,9.18A42.44,42.44,0,0,1,949,347q0,9.18-2.09,14.24a23.5,23.5,0,0,1-5.8,8.48,19,19,0,0,1-8,4.55,41.07,41.07,0,0,1-10.54,1.56H896.26Zm17.69,13v31.29h4.34q5.55,0,7.89-1.23a8.31,8.31,0,0,0,3.67-4.3q1.33-3.06,1.33-9.94,0-9.11-3-12.46t-9.84-3.36Z"/><path d="M244.48,414.57h29.41q9.62,0,14.4,4.57t4.78,13q0,8.67-5.21,13.56t-15.92,4.88h-9.69v21.25H244.48ZM262.25,439h4.34q5.12,0,7.19-1.78a5.72,5.72,0,0,0,2.07-4.55,6.35,6.35,0,0,0-1.8-4.57q-1.8-1.87-6.76-1.88h-5Z"/><path d="M302.29,414.57h47.42V426.8H320v9.1h27.54v11.68H320v11.29h30.54v13H302.29Z"/><path d="M360.34,471.84V414.57h29.49q8.21,0,12.54,1.41a13.4,13.4,0,0,1,7,5.21,16.17,16.17,0,0,1-5,23.11,21.41,21.41,0,0,1-6.22,2.27,17.25,17.25,0,0,1,4.61,2.11,18,18,0,0,1,2.83,3,22.32,22.32,0,0,1,2.48,3.56l8.57,16.59h-20l-9.46-17.5a13.22,13.22,0,0,0-3.2-4.42,7.43,7.43,0,0,0-4.33-1.32h-1.57v23.24Zm17.77-34.06h7.46a26.71,26.71,0,0,0,4.69-.78,4.72,4.72,0,0,0,2.87-1.8,5.79,5.79,0,0,0-.64-7.58q-1.75-1.49-6.6-1.48h-7.78Z"/><path d="M419.25,452.89l16.83-1.05a12.9,12.9,0,0,0,2.23,6.25,9.35,9.35,0,0,0,7.81,3.48,8.67,8.67,0,0,0,5.84-1.78,5.32,5.32,0,0,0,2.05-4.12,5.26,5.26,0,0,0-1.95-4q-1.95-1.76-9.06-3.32-11.64-2.61-16.61-6.95a14,14,0,0,1-5-11.06A15.08,15.08,0,0,1,424,422a17,17,0,0,1,7.7-6.17q5.13-2.23,14.08-2.24,11,0,16.74,4.08t6.85,13l-16.68,1a7.79,7.79,0,0,0-8.67-7.38,7.14,7.14,0,0,0-4.65,1.31,4,4,0,0,0-1.56,3.18,3.16,3.16,0,0,0,1.29,2.46q1.24,1.14,5.94,2.11,11.6,2.51,16.62,5.06a17.42,17.42,0,0,1,7.3,6.35,16,16,0,0,1,2.29,8.48,18.16,18.16,0,0,1-3.05,10.15,19.06,19.06,0,0,1-8.51,7.05,34.47,34.47,0,0,1-13.79,2.41q-14.61,0-20.24-5.63A22.17,22.17,0,0,1,419.25,452.89Z"/><path d="M477.88,443.25q0-14,7.81-21.84t21.76-7.81q14.3,0,22,7.67t7.73,21.51q0,10-3.37,16.46a24.08,24.08,0,0,1-9.77,10q-6.39,3.57-15.92,3.58-9.69,0-16-3.09a24.1,24.1,0,0,1-10.3-9.77Q477.88,453.29,477.88,443.25Zm17.69.07q0,8.67,3.23,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.82-3.71t3.13-13.32q0-8.09-3.26-11.81a11.16,11.16,0,0,0-8.85-3.73,10.75,10.75,0,0,0-8.59,3.78Q495.56,434.58,495.57,443.32Z"/><path d="M546.86,414.57h16.53L585,446.25V414.57h16.68v57.27H585L563.5,440.4v31.44H546.86Z"/><path d="M613.5,414.57H630l21.56,31.68V414.57h16.68v57.27H651.59L630.14,440.4v31.44H613.5Z"/><path d="M680,414.57h47.42V426.8H697.72v9.1h27.54v11.68H697.72v11.29h30.55v13H680Z"/><path d="M737.8,414.57h17.7v43.17h27.61v14.1H737.8Z"/><path d="M58.11,510.57H91.24q8.28,0,12.71,4.1a13.28,13.28,0,0,1,4.44,10.16,12.8,12.8,0,0,1-3.17,8.71,14,14,0,0,1-6.17,3.83q6.18,1.49,9.08,5.1a14,14,0,0,1,2.91,9.08,15.62,15.62,0,0,1-2.07,8,15.26,15.26,0,0,1-5.66,5.62,18.73,18.73,0,0,1-6.72,1.88,77.57,77.57,0,0,1-7.93.78H58.11ZM76,533h7.7q4.14,0,5.76-1.42A5.2,5.2,0,0,0,91,527.49a4.91,4.91,0,0,0-1.62-3.91q-1.62-1.41-5.64-1.41H76Zm0,22.5h9c3.05,0,5.19-.54,6.44-1.62a5.46,5.46,0,0,0,1.88-4.35,5,5,0,0,0-1.86-4.08q-1.85-1.54-6.5-1.55H76Z"/><path d="M120.26,510.57h47.42V522.8H138v9.1h27.54v11.68H138v11.29h30.54v13H120.26Z"/><path d="M172.29,510.57H192l11.54,19.32,11.56-19.32H234.6l-22.27,33.28v24H194.6v-24Z"/><path d="M233.27,539.25q0-14,7.81-21.84t21.76-7.81q14.3,0,22,7.67t7.74,21.51q0,10-3.38,16.46a24.08,24.08,0,0,1-9.77,10q-6.39,3.57-15.92,3.58-9.69,0-16-3.09a24.15,24.15,0,0,1-10.3-9.77Q233.27,549.29,233.27,539.25Zm17.69.07q0,8.67,3.23,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.83-3.71t3.12-13.32q0-8.09-3.26-11.81A11.16,11.16,0,0,0,262.8,523a10.75,10.75,0,0,0-8.59,3.78Q251,530.57,251,539.32Z"/><path d="M302.25,510.57h16.53l21.56,31.68V510.57H357v57.27H340.34L318.89,536.4v31.44H302.25Z"/><path d="M369,510.57H395.3q7.77,0,12.56,2.11a20.44,20.44,0,0,1,7.91,6.06,25.15,25.15,0,0,1,4.53,9.18A42.44,42.44,0,0,1,421.71,539q0,9.18-2.09,14.24a23.75,23.75,0,0,1-5.8,8.48,19.1,19.1,0,0,1-8,4.55,41.14,41.14,0,0,1-10.55,1.56H369Zm17.7,13v31.29H391q5.55,0,7.89-1.23a8.33,8.33,0,0,0,3.68-4.3q1.32-3.06,1.32-9.94,0-9.11-3-12.46c-2-2.24-5.26-3.36-9.84-3.36Z"/><path d="M453.66,510.57h53.79v14.14H489.4v43.13H471.71V524.71h-18Z"/><path d="M515.54,510.57h17.69v20h19.34v-20h17.77v57.27H552.57V544.67H533.23v23.17H515.54Z"/><path d="M582.8,510.57h17.74v57.27H582.8Z"/><path d="M610.14,548.89l16.84-1a12.8,12.8,0,0,0,2.23,6.25,9.34,9.34,0,0,0,7.81,3.48,8.69,8.69,0,0,0,5.84-1.78,5.32,5.32,0,0,0,2-4.12,5.26,5.26,0,0,0-1.95-4q-2-1.75-9.07-3.32-11.64-2.61-16.6-7a14,14,0,0,1-5-11.06,15.08,15.08,0,0,1,2.56-8.34,17,17,0,0,1,7.7-6.17q5.13-2.23,14.08-2.24,11,0,16.74,4.08t6.85,13l-16.68,1a7.79,7.79,0,0,0-8.67-7.38,7.1,7.1,0,0,0-4.65,1.31,4,4,0,0,0-1.56,3.18,3.16,3.16,0,0,0,1.29,2.46q1.24,1.14,5.94,2.11,11.6,2.5,16.62,5.06a17.48,17.48,0,0,1,7.3,6.35,16,16,0,0,1,2.29,8.48,18.16,18.16,0,0,1-3.05,10.15,19.06,19.06,0,0,1-8.51,7,34.47,34.47,0,0,1-13.79,2.41q-14.61,0-20.24-5.63A22.23,22.23,0,0,1,610.14,548.89Z"/><path d="M697.61,510.57H727q9.62,0,14.39,4.57t4.79,13q0,8.67-5.22,13.56t-15.91,4.88h-9.69v21.25H697.61ZM715.38,535h4.33c3.42,0,5.81-.59,7.19-1.78a5.72,5.72,0,0,0,2.07-4.55,6.38,6.38,0,0,0-1.79-4.57c-1.2-1.25-3.46-1.88-6.76-1.88h-5Z"/><path d="M753.23,539.25q0-14,7.81-21.84t21.76-7.81q14.3,0,22,7.67t7.74,21.51q0,10-3.38,16.46a24.08,24.08,0,0,1-9.77,10q-6.39,3.57-15.92,3.58-9.69,0-16-3.09A24.13,24.13,0,0,1,757.18,556Q753.22,549.29,753.23,539.25Zm17.7.07q0,8.67,3.22,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.83-3.71t3.12-13.32q0-8.09-3.26-11.81a11.15,11.15,0,0,0-8.85-3.73,10.75,10.75,0,0,0-8.59,3.78Q770.93,530.57,770.93,539.32Z"/><path d="M822.8,510.57h17.74v57.27H822.8Z"/><path d="M853.35,510.57h16.52l21.56,31.68V510.57h16.68v57.27H891.43L870,536.4v31.44H853.35Z"/><path d="M915.85,510.57h53.79v14.14h-18v43.13H933.9V524.71h-18Z"/></svg>]] screen.setHTML(page) door.deactivate() -------------------------system start---------------------------------------------------------- unit.hide() -- Internal variables keyb="" -- set variables so that there is no error at the start butcolclk1 = "#00ff00" butcolclk2 = "#00ff00" mousecolclk = "cyan" consta=0 PWButtons = {} PWMouseX = 0 PWMouseY = 0 PWMouseDown = false PWButtonSelected = 0 PWAttention = 0 PWDislikeButton = 0 PWLikeButton = 0 PWHintButton = 0 PWAttentionMessage = "" PWAttentionVisible = false startupnow = 1 password = "Pass"--export: function updateScreen() if startupnow == 1 then ----- engine stat end emitter start tablex.clear(PWButtons, button) for i = 1,1 do local button = {id = ("b"..1), enabled=true, td="<td>", top=49/100, bottom=60/100, left=1/100, right=6.5/100} table.insert(PWButtons, button) end for i = 2,2 do local button = {id = ("b"..2), enabled=true, td="<td>", top=49/100, bottom=60/100, left=8/100, right=14/100} table.insert(PWButtons, button) end for i = 3,3 do local button = {id = ("b"..3), enabled=true, td="<td>", top=49/100, bottom=60/100, left=15/100, right=22/100} table.insert(PWButtons, button) end for i = 4,4 do local button = {id = ("b"..4), enabled=true, td="<td>", top=49/100, bottom=60/100, left=23/100, right=30/100} table.insert(PWButtons, button) end for i = 5,5 do local button = {id = ("b"..5), enabled=true, td="<td>", top=49/100, bottom=60/100, left=31/100, right=38/100} table.insert(PWButtons, button) end for i = 6,6 do local button = {id = ("b"..6), enabled=true, td="<td>", top=49/100, bottom=60/100, left=39/100, right=46/100} table.insert(PWButtons, button) end for i = 7,7 do local button = {id = ("b"..7), enabled=true, td="<td>", top=49/100, bottom=60/100, left=47/100, right=53/100} table.insert(PWButtons, button) end for i = 8,8 do local button = {id = ("b"..8), enabled=true, td="<td>", top=49/100, bottom=60/100, left=54/100, right=61/100} table.insert(PWButtons, button) end for i = 9,9 do local button = {id = ("b"..9), enabled=true, td="<td>", top=49/100, bottom=60/100, left=62/100, right=69/100} table.insert(PWButtons, button) end for i = 10,10 do local button = {id = ("b"..10), enabled=true, td="<td>", top=49/100, bottom=60/100, left=70/100, right=77/100} table.insert(PWButtons, button) end for i = 11,11 do local button = {id = ("b"..11), enabled=true, td="<td>", top=49/100, bottom=60/100, left=78/100, right=85/100} table.insert(PWButtons, button) end for i = 12,12 do local button = {id = ("b"..12), enabled=true, td="<td>", top=49/100, bottom=60/100, left=86/100, right=100/100} table.insert(PWButtons, button) end for i = 13,13 do local button = {id = ("b"..13), enabled=true, td="<td>", top=62/100, bottom=73/100, left=4/100, right=10/100} table.insert(PWButtons, button) end for i = 14,14 do local button = {id = ("b"..14), enabled=true, td="<td>", top=62/100, bottom=73/100, left=11.5/100, right=18/100} table.insert(PWButtons, button) end for i = 15,15 do local button = {id = ("b"..15), enabled=true, td="<td>", top=62/100, bottom=73/100, left=19/100, right=26/100} table.insert(PWButtons, button) end for i = 16,16 do local button = {id = ("b"..16), enabled=true, td="<td>", top=62/100, bottom=73/100, left=27/100, right=34/100} table.insert(PWButtons, button) end for i = 17,17 do local button = {id = ("b"..17), enabled=true, td="<td>", top=62/100, bottom=73/100, left=35/100, right=42/100} table.insert(PWButtons, button) end for i = 18,18 do local button = {id = ("b"..18), enabled=true, td="<td>", top=62/100, bottom=73/100, left=43/100, right=50/100} table.insert(PWButtons, button) end for i = 19,19 do local button = {id = ("b"..19), enabled=true, td="<td>", top=62/100, bottom=73/100, left=51/100, right=58/100} table.insert(PWButtons, button) end for i = 20,20 do local button = {id = ("b"..20), enabled=true, td="<td>", top=62/100, bottom=73/100, left=59/100, right=65/100} table.insert(PWButtons, button) end for i = 21,21 do local button = {id = ("b"..21), enabled=true, td="<td>", top=62/100, bottom=73/100, left=66.5/100, right=73/100} table.insert(PWButtons, button) end for i = 22,22 do local button = {id = ("b"..22), enabled=true, td="<td>", top=62/100, bottom=73/100, left=74/100, right=89/100} table.insert(PWButtons, button) end for i = 23,23 do local button = {id = ("b"..23), enabled=true, td="<td>", top=75/100, bottom=87/100, left=8/100, right=15/100} table.insert(PWButtons, button) end for i = 24,24 do local button = {id = ("b"..24), enabled=true, td="<td>", top=75/100, bottom=87/100, left=16/100, right=23/100} table.insert(PWButtons, button) end for i = 25,25 do local button = {id = ("b"..25), enabled=true, td="<td>", top=75/100, bottom=87/100, left=24/100, right=31/100} table.insert(PWButtons, button) end for i = 26,26 do local button = {id = ("b"..26), enabled=true, td="<td>", top=75/100, bottom=87/100, left=32/100, right=39/100} table.insert(PWButtons, button) end for i = 27,27 do local button = {id = ("b"..27), enabled=true, td="<td>", top=75/100, bottom=87/100, left=40/100, right=46/100} table.insert(PWButtons, button) end for i = 28,28 do local button = {id = ("b"..28), enabled=true, td="<td>", top=75/100, bottom=87/100, left=47/100, right=54/100} table.insert(PWButtons, button) end for i = 29,29 do local button = {id = ("b"..29), enabled=true, td="<td>", top=75/100, bottom=87/100, left=55/100, right=62/100} table.insert(PWButtons, button) end for i = 30,30 do local button = {id = ("b"..30), enabled=true, td="<td>", top=75/100, bottom=87/100, left=63/100, right=70/100} table.insert(PWButtons, button) end for i = 31,31 do local button = {id = ("b"..31), enabled=true, td="<td>", top=75/100, bottom=87/100, left=71/100, right=85/100} table.insert(PWButtons, button) end for i = 32,32 do local button = {id = ("b"..32), enabled=true, td="<td>", top=88/100, bottom=98/100, left=30/100, right=59/100} table.insert(PWButtons, button) end for i = 33,33 do local button = {id = ("b"..33), enabled=true, td="<td>", top=88/100, bottom=98/100, left=63/100, right=77/100} table.insert(PWButtons, button) end for i = 34,34 do local button = {id = ("b"..34), enabled=true, td="<td>", top=88/100, bottom=98/100, left=85/100, right=100/100} table.insert(PWButtons, button) end for i = 35,35 do local button = {id = ("b"..35), enabled=true, td="<td>", top=90/100, bottom=100/100, left=1/100, right=18/100} table.insert(PWButtons, button) end function evaluateButtons() local selected = 0 if #PWButtons >= 1 then -- Set button styles for i, button in ipairs(PWButtons) do if button.left < PWMouseX and PWMouseX < button.right and button.top < PWMouseY and PWMouseY < button.bottom then if PWMouseDown and PWButtonSelected == i then end selected = i end if not button.enabled then end end end return selected end function onButtonDown(buttonNo) local button = PWButtons[buttonNo] if not button or not button.enabled then return end end function onButtonUp(buttonNo) local button = PWButtons[buttonNo] if not button or not button.enabled then return end function onClick(buttonNo) local button = PWButtons[buttonNo] if not button or not button.enabled then return end end if buttonNo == 1 then keyb=keyb.."Q" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 2 then keyb=keyb.."W" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 3 then keyb=keyb.."E" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 4 then keyb=keyb.."R" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 5 then keyb=keyb.."T" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 6 then keyb=keyb.."Y" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 7 then keyb=keyb.."U" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 8 then keyb=keyb.."I" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 9 then keyb=keyb.."O" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 10 then keyb=keyb.."P" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 11 then elseif buttonNo == 12 then keyb = "" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 13 then keyb=keyb.."A" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 14 then keyb=keyb.."S" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 15 then keyb=keyb.."D" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 16 then keyb=keyb.."F" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 17 then keyb=keyb.."G" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 18 then keyb=keyb.."H" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 19 then keyb=keyb.."J" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 20 then keyb=keyb.."K" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 21 then keyb=keyb.."L" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 22 then ----enterbutton if keyb == password then keyb="" screen.setText(30,10,7,keyb) consta=string.len(keyb) door.activate() keyb="Access Granted" unit.setTimer("exit",5) elseif keyb ~= password then keyb="" keyb="Access DENIED" screen.setText(30,10,7,keyb) consta=string.len(keyb) unit.setTimer("exit",1) door.deactivate() end elseif buttonNo == 23 then keyb=keyb.."Z" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 24 then keyb=keyb.."X" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 25 then keyb=keyb.."C" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 26 then keyb=keyb.."V" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 27 then keyb=keyb.."B" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 28 then keyb=keyb.."N" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 29 then keyb=keyb.."M" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 30 then keyb=keyb.."." screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 31 then startupnow = 1.1 elseif buttonNo == 32 then keyb=keyb.." " screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 33 then startupnow = 1.2 elseif buttonNo == 34 then elseif buttonNo == 35 then end end if screen.getMouseState() == 1 then mousecolclk = "purple" else mousecolclk = "cyan" end if screen.getMouseState() == 1 and butselectclk1 == 1 then butcolclk1 = "purple" elseif screen.getMouseState() == 0 and butselectclk1 == 1 then butcolclk1 = "limegreen" butselectclk1 = 0 elseif screen.getMouseState() == 1 and butselectclk1 == 2 then butcolclk2 = "purple" elseif screen.getMouseState() == 0 and butselectclk1 == 2 then butcolclk2 = "limegreen" butselectclk2 = 0 end local page = [[ <svg viewBox="0 0 1024 612"> <g> <title>background</title> <rect x="-1" y="-1" width="1026" height="614"/> <g display="none"> <rect width="100%" height="100%" fill="url(#gridpattern)" stroke-width="0"/> </g> </g> <g> <title>Layer 1</title> <rect x="7" y="5" width="1012" height="290" rx="20" fill="#007f7f" stroke="#0f0" stroke-width="5"/> <rect x="1" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="14.997276" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">Q</text> <rect x="80" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="90" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">W</text> <rect x="160" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="178" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">E</text> <rect x="240" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="255" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">R</text> <rect x="320" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="337" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">T</text> <rect x="400" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="417" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">Y</text> <rect x="480" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="496" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">U</text> <rect x="560" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="586" y="361.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">I</text> <rect x="640" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="654" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">O</text> <rect x="720" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="740" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">P</text> <rect x="880" y="306" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="895" y="350" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">CLEAR</text> <rect x="800" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="802" y="350" cursor="move" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve"></text> <rect x="41" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="59" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">A</text> <rect x="121" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="136" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">S</text> <rect x="201" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="218" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">D</text> <rect x="281" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="298" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">F</text> <rect x="361" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="377" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">G</text> <rect x="441" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="455" y="440.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">H</text> <rect x="521" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="540" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">J</text> <rect x="601" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="619" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">K</text> <rect x="761" y="385" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="785" y="430" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">Enter</text> <rect x="681" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="700" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">L</text> <rect x="86" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="101" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">Z</text> <rect x="166" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="183" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">X</text> <rect x="246" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="263" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">C</text> <rect x="326" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="342" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">V</text> <rect x="406" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="420" y="521.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">B</text> <rect x="486" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="500" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">N</text> <rect x="566" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="578" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">M</text> <rect x="646" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="656" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve"/> <rect x="306" y="545" width="300" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <rect x="726" y="466" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="750" y="510" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">SHIFT</text> <rect x="650" y="545" width="140" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="690" y="585" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="28" font-weight="bold" stroke-width="0" xml:space="preserve">?123</text> <rect x="880" y="545" width="140" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="882" y="585" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve"></text> <text x="674" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">.</text> <text x="50" y="280" fill="#0000ff" font-family="Helvetica, Arial, sans-serif" font-size="25" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">]]..keyb..[[</text> </g> <text stroke="null" fill="]]..mousecolclk..[[" stroke-width="10" x="]]..(screen.getMouseX()*(1024)-35)..[[" y="]]..(screen.getMouseY()*(612)+40)..[[" id="svg_6" font-size="100" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold" font-style="italic">+</text> </svg>]] local buttonNo = evaluateButtons() if PWMouseDown then PWMouseX = screen.getMouseX() PWMouseY = screen.getMouseY() if buttonNo ~= PWButtonSelected or PWMouseX < 0.05 or PWMouseX > 0.95 or PWMouseY < 0.05 or PWMouseY > 0.95 then if PWButtonSelected > 0 then onButtonUp(PWButtonSelected) end PWButtonSelected = 0 end end page = page .. [[</div></body></html>]] screen.setHTML(page) --------------------small letter keyboard elseif startupnow == 1.1 then tablex.clear(PWButtons, button) for i = 1,1 do local button = {id = ("b"..1), enabled=true, td="<td>", top=49/100, bottom=60/100, left=1/100, right=6.5/100} table.insert(PWButtons, button) end for i = 2,2 do local button = {id = ("b"..2), enabled=true, td="<td>", top=49/100, bottom=60/100, left=8/100, right=14/100} table.insert(PWButtons, button) end for i = 3,3 do local button = {id = ("b"..3), enabled=true, td="<td>", top=49/100, bottom=60/100, left=15/100, right=22/100} table.insert(PWButtons, button) end for i = 4,4 do local button = {id = ("b"..4), enabled=true, td="<td>", top=49/100, bottom=60/100, left=23/100, right=30/100} table.insert(PWButtons, button) end for i = 5,5 do local button = {id = ("b"..5), enabled=true, td="<td>", top=49/100, bottom=60/100, left=31/100, right=38/100} table.insert(PWButtons, button) end for i = 6,6 do local button = {id = ("b"..6), enabled=true, td="<td>", top=49/100, bottom=60/100, left=39/100, right=46/100} table.insert(PWButtons, button) end for i = 7,7 do local button = {id = ("b"..7), enabled=true, td="<td>", top=49/100, bottom=60/100, left=47/100, right=53/100} table.insert(PWButtons, button) end for i = 8,8 do local button = {id = ("b"..8), enabled=true, td="<td>", top=49/100, bottom=60/100, left=54/100, right=61/100} table.insert(PWButtons, button) end for i = 9,9 do local button = {id = ("b"..9), enabled=true, td="<td>", top=49/100, bottom=60/100, left=62/100, right=69/100} table.insert(PWButtons, button) end for i = 10,10 do local button = {id = ("b"..10), enabled=true, td="<td>", top=49/100, bottom=60/100, left=70/100, right=77/100} table.insert(PWButtons, button) end for i = 11,11 do local button = {id = ("b"..11), enabled=true, td="<td>", top=49/100, bottom=60/100, left=78/100, right=85/100} table.insert(PWButtons, button) end for i = 12,12 do local button = {id = ("b"..12), enabled=true, td="<td>", top=49/100, bottom=60/100, left=86/100, right=100/100} table.insert(PWButtons, button) end for i = 13,13 do local button = {id = ("b"..13), enabled=true, td="<td>", top=62/100, bottom=73/100, left=4/100, right=10/100} table.insert(PWButtons, button) end for i = 14,14 do local button = {id = ("b"..14), enabled=true, td="<td>", top=62/100, bottom=73/100, left=11.5/100, right=18/100} table.insert(PWButtons, button) end for i = 15,15 do local button = {id = ("b"..15), enabled=true, td="<td>", top=62/100, bottom=73/100, left=19/100, right=26/100} table.insert(PWButtons, button) end for i = 16,16 do local button = {id = ("b"..16), enabled=true, td="<td>", top=62/100, bottom=73/100, left=27/100, right=34/100} table.insert(PWButtons, button) end for i = 17,17 do local button = {id = ("b"..17), enabled=true, td="<td>", top=62/100, bottom=73/100, left=35/100, right=42/100} table.insert(PWButtons, button) end for i = 18,18 do local button = {id = ("b"..18), enabled=true, td="<td>", top=62/100, bottom=73/100, left=43/100, right=50/100} table.insert(PWButtons, button) end for i = 19,19 do local button = {id = ("b"..19), enabled=true, td="<td>", top=62/100, bottom=73/100, left=51/100, right=58/100} table.insert(PWButtons, button) end for i = 20,20 do local button = {id = ("b"..20), enabled=true, td="<td>", top=62/100, bottom=73/100, left=59/100, right=65/100} table.insert(PWButtons, button) end for i = 21,21 do local button = {id = ("b"..21), enabled=true, td="<td>", top=62/100, bottom=73/100, left=66.5/100, right=73/100} table.insert(PWButtons, button) end for i = 22,22 do local button = {id = ("b"..22), enabled=true, td="<td>", top=62/100, bottom=73/100, left=74/100, right=89/100} table.insert(PWButtons, button) end for i = 23,23 do local button = {id = ("b"..23), enabled=true, td="<td>", top=75/100, bottom=87/100, left=8/100, right=15/100} table.insert(PWButtons, button) end for i = 24,24 do local button = {id = ("b"..24), enabled=true, td="<td>", top=75/100, bottom=87/100, left=16/100, right=23/100} table.insert(PWButtons, button) end for i = 25,25 do local button = {id = ("b"..25), enabled=true, td="<td>", top=75/100, bottom=87/100, left=24/100, right=31/100} table.insert(PWButtons, button) end for i = 26,26 do local button = {id = ("b"..26), enabled=true, td="<td>", top=75/100, bottom=87/100, left=32/100, right=39/100} table.insert(PWButtons, button) end for i = 27,27 do local button = {id = ("b"..27), enabled=true, td="<td>", top=75/100, bottom=87/100, left=40/100, right=46/100} table.insert(PWButtons, button) end for i = 28,28 do local button = {id = ("b"..28), enabled=true, td="<td>", top=75/100, bottom=87/100, left=47/100, right=54/100} table.insert(PWButtons, button) end for i = 29,29 do local button = {id = ("b"..29), enabled=true, td="<td>", top=75/100, bottom=87/100, left=55/100, right=62/100} table.insert(PWButtons, button) end for i = 30,30 do local button = {id = ("b"..30), enabled=true, td="<td>", top=75/100, bottom=87/100, left=63/100, right=70/100} table.insert(PWButtons, button) end for i = 31,31 do local button = {id = ("b"..31), enabled=true, td="<td>", top=75/100, bottom=87/100, left=71/100, right=85/100} table.insert(PWButtons, button) end for i = 32,32 do local button = {id = ("b"..32), enabled=true, td="<td>", top=88/100, bottom=98/100, left=30/100, right=59/100} table.insert(PWButtons, button) end for i = 33,33 do local button = {id = ("b"..33), enabled=true, td="<td>", top=88/100, bottom=98/100, left=63/100, right=77/100} table.insert(PWButtons, button) end for i = 34,34 do local button = {id = ("b"..34), enabled=true, td="<td>", top=88/100, bottom=98/100, left=85/100, right=100/100} table.insert(PWButtons, button) end for i = 35,35 do local button = {id = ("b"..35), enabled=true, td="<td>", top=90/100, bottom=100/100, left=1/100, right=18/100} table.insert(PWButtons, button) end function evaluateButtons() local selected = 0 if #PWButtons >= 1 then -- Set button styles for i, button in ipairs(PWButtons) do if button.left < PWMouseX and PWMouseX < button.right and button.top < PWMouseY and PWMouseY < button.bottom then if PWMouseDown and PWButtonSelected == i then end selected = i end if not button.enabled then end end end return selected end function onButtonDown(buttonNo) local button = PWButtons[buttonNo] if not button or not button.enabled then return end end function onButtonUp(buttonNo) local button = PWButtons[buttonNo] if not button or not button.enabled then return end function onClick(buttonNo) local button = PWButtons[buttonNo] if not button or not button.enabled then return end end if buttonNo == 1 then keyb=keyb.."q" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 2 then keyb=keyb.."w" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 3 then keyb=keyb.."e" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 4 then keyb=keyb.."r" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 5 then keyb=keyb.."t" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 6 then keyb=keyb.."y" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 7 then keyb=keyb.."u" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 8 then keyb=keyb.."i" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 9 then keyb=keyb.."o" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 10 then keyb=keyb.."p" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 11 then elseif buttonNo == 12 then keyb = "" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 13 then keyb=keyb.."a" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 14 then keyb=keyb.."s" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 15 then keyb=keyb.."d" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 16 then keyb=keyb.."f" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 17 then keyb=keyb.."g" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 18 then keyb=keyb.."h" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 19 then keyb=keyb.."j" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 20 then keyb=keyb.."k" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 21 then keyb=keyb.."l" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 22 then if keyb == password then keyb="" screen.setText(30,10,7,keyb) consta=string.len(keyb) door.activate() keyb="Access Granted" unit.setTimer("exit",5) elseif keyb ~= password then keyb="" keyb="Access DENIED" screen.setText(30,10,7,keyb) consta=string.len(keyb) unit.setTimer("exit",1) door.deactivate() end elseif buttonNo == 23 then keyb=keyb.."z" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 24 then keyb=keyb.."x" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 25 then keyb=keyb.."c" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 26 then keyb=keyb.."v" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 27 then keyb=keyb.."b" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 28 then keyb=keyb.."n" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 29 then keyb=keyb.."m" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 30 then keyb=keyb.."." screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 31 then startupnow = 1 elseif buttonNo == 32 then keyb=keyb.." " screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 33 then startupnow = 1.2 elseif buttonNo == 34 then elseif buttonNo == 35 then end end if screen.getMouseState() == 1 then mousecolclk = "purple" else mousecolclk = "cyan" end if screen.getMouseState() == 1 and butselectclk1 == 1 then butcolclk1 = "purple" elseif screen.getMouseState() == 0 and butselectclk1 == 1 then butcolclk1 = "limegreen" butselectclk1 = 0 elseif screen.getMouseState() == 1 and butselectclk1 == 2 then butcolclk2 = "purple" elseif screen.getMouseState() == 0 and butselectclk1 == 2 then butcolclk2 = "limegreen" butselectclk2 = 0 end local page = [[ <svg viewBox="0 0 1024 612"> <g> <title>background</title> <rect x="-1" y="-1" width="1026" height="614"/> <g display="none"> <rect width="100%" height="100%" fill="url(#gridpattern)" stroke-width="0"/> </g> </g> <g> <title>Layer 1</title> <rect x="7" y="5" width="1012" height="290" rx="20" fill="#007f7f" stroke="#0f0" stroke-width="5"/> <rect x="1" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="14.997276" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">q</text> <rect x="80" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="90" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">w</text> <rect x="160" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="178" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">e</text> <rect x="240" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="255" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">r</text> <rect x="320" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="337" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">t</text> <rect x="400" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="417" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">y</text> <rect x="480" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="496" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">u</text> <rect x="560" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="586" y="361.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">i</text> <rect x="640" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="654" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">o</text> <rect x="720" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="740" y="360.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">p</text> <rect x="880" y="306" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="895" y="350" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">CLEAR</text> <rect x="800" y="306" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="802" y="350" cursor="move" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve"></text> <rect x="41" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="59" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">a</text> <rect x="121" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="136" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">s</text> <rect x="201" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="218" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">d</text> <rect x="281" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="298" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">f</text> <rect x="361" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="377" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">g</text> <rect x="441" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="455" y="440.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">h</text> <rect x="521" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="540" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">j</text> <rect x="601" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="619" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">k</text> <rect x="761" y="385" width="140" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="785" y="430" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">Enter</text> <rect x="681" y="385" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="700" y="439.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">l</text> <rect x="86" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="101" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">z</text> <rect x="166" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="183" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">x</text> <rect x="246" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="263" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">c</text> <rect x="326" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="342" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">v</text> <rect x="406" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="420" y="521.00001" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">b</text> <rect x="486" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="500" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">n</text> <rect x="566" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="578" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">m</text> <rect x="646" y="466" width="70" height="70" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <rect x="306" y="545" width="300" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <rect x="726" y="466" width="140" height="70" rx="10" fill="#00bfbf" stroke="#00ff00" stroke-width="5"/> <text x="750" y="510" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve">SHIFT</text> <rect x="650" y="545" width="140" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="690" y="585" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="28" font-weight="bold" stroke-width="0" xml:space="preserve">?123</text> <rect x="880" y="545" width="140" height="55" rx="10" fill="#56ffff" stroke="#0f0" stroke-width="5"/> <text x="882" y="585" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="30" font-weight="bold" stroke-width="0" xml:space="preserve"></text> <text x="674" y="520.999996" fill="#bf0000" font-family="Helvetica, Arial, sans-serif" font-size="55" font-weight="bold" stroke-width="0" xml:space="preserve">.</text> <text x="50" y="280" fill="#0000ff" font-family="Helvetica, Arial, sans-serif" font-size="25" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">]]..keyb..[[</text> </g> <text stroke="null" fill="]]..mousecolclk..[[" stroke-width="10" x="]]..(screen.getMouseX()*(1024)-35)..[[" y="]]..(screen.getMouseY()*(612)+40)..[[" id="svg_6" font-size="100" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold" font-style="italic">+</text> </svg>]] local buttonNo = evaluateButtons() if PWMouseDown then PWMouseX = screen.getMouseX() PWMouseY = screen.getMouseY() if buttonNo ~= PWButtonSelected or PWMouseX < 0.05 or PWMouseX > 0.95 or PWMouseY < 0.05 or PWMouseY > 0.95 then if PWButtonSelected > 0 then onButtonUp(PWButtonSelected) end PWButtonSelected = 0 end end page = page .. [[</div></body></html>]] screen.setHTML(page) elseif startupnow == 1.2 then ----- emitter end tablex.clear(PWButtons, button) for i = 1,1 do local button = {id = ("b"..1), enabled=true, td="<td>", top=49/100, bottom=60/100, left=1/100, right=6.5/100} table.insert(PWButtons, button) end for i = 2,2 do local button = {id = ("b"..2), enabled=true, td="<td>", top=49/100, bottom=60/100, left=8/100, right=14/100} table.insert(PWButtons, button) end for i = 3,3 do local button = {id = ("b"..3), enabled=true, td="<td>", top=49/100, bottom=60/100, left=15/100, right=22/100} table.insert(PWButtons, button) end for i = 4,4 do local button = {id = ("b"..4), enabled=true, td="<td>", top=49/100, bottom=60/100, left=23/100, right=30/100} table.insert(PWButtons, button) end for i = 5,5 do local button = {id = ("b"..5), enabled=true, td="<td>", top=49/100, bottom=60/100, left=31/100, right=38/100} table.insert(PWButtons, button) end for i = 6,6 do local button = {id = ("b"..6), enabled=true, td="<td>", top=49/100, bottom=60/100, left=39/100, right=46/100} table.insert(PWButtons, button) end for i = 7,7 do local button = {id = ("b"..7), enabled=true, td="<td>", top=49/100, bottom=60/100, left=47/100, right=53/100} table.insert(PWButtons, button) end for i = 8,8 do local button = {id = ("b"..8), enabled=true, td="<td>", top=49/100, bottom=60/100, left=54/100, right=61/100} table.insert(PWButtons, button) end for i = 9,9 do local button = {id = ("b"..9), enabled=true, td="<td>", top=49/100, bottom=60/100, left=62/100, right=69/100} table.insert(PWButtons, button) end for i = 10,10 do local button = {id = ("b"..10), enabled=true, td="<td>", top=49/100, bottom=60/100, left=70/100, right=77/100} table.insert(PWButtons, button) end for i = 11,11 do local button = {id = ("b"..11), enabled=true, td="<td>", top=49/100, bottom=60/100, left=78/100, right=85/100} table.insert(PWButtons, button) end for i = 12,12 do local button = {id = ("b"..12), enabled=true, td="<td>", top=49/100, bottom=60/100, left=86/100, right=93/100} table.insert(PWButtons, button) end for i = 13,13 do local button = {id = ("b"..13), enabled=true, td="<td>", top=62/100, bottom=73/100, left=4/100, right=10/100} table.insert(PWButtons, button) end for i = 14,14 do local button = {id = ("b"..14), enabled=true, td="<td>", top=62/100, bottom=73/100, left=11.5/100, right=18/100} table.insert(PWButtons, button) end for i = 15,15 do local button = {id = ("b"..15), enabled=true, td="<td>", top=62/100, bottom=73/100, left=19/100, right=26/100} table.insert(PWButtons, button) end for i = 16,16 do local button = {id = ("b"..16), enabled=true, td="<td>", top=62/100, bottom=73/100, left=27/100, right=34/100} table.insert(PWButtons, button) end for i = 17,17 do local button = {id = ("b"..17), enabled=true, td="<td>", top=62/100, bottom=73/100, left=35/100, right=42/100} table.insert(PWButtons, button) end for i = 18,18 do local button = {id = ("b"..18), enabled=true, td="<td>", top=62/100, bottom=73/100, left=43/100, right=50/100} table.insert(PWButtons, button) end for i = 19,19 do local button = {id = ("b"..19), enabled=true, td="<td>", top=62/100, bottom=73/100, left=51/100, right=58/100} table.insert(PWButtons, button) end for i = 20,20 do local button = {id = ("b"..20), enabled=true, td="<td>", top=62/100, bottom=73/100, left=59/100, right=65/100} table.insert(PWButtons, button) end for i = 21,21 do local button = {id = ("b"..21), enabled=true, td="<td>", top=62/100, bottom=73/100, left=66.5/100, right=73/100} table.insert(PWButtons, button) end for i = 22,22 do local button = {id = ("b"..22), enabled=true, td="<td>", top=62/100, bottom=73/100, left=74/100, right=82/100} table.insert(PWButtons, button) end for i = 23,23 do local button = {id = ("b"..23), enabled=true, td="<td>", top=62/100, bottom=73/100, left=82.5/100, right=90/100} table.insert(PWButtons, button) end for i = 24,24 do local button = {id = ("b"..24), enabled=true, td="<td>", top=62/100, bottom=73/100, left=90/100, right=97/100} table.insert(PWButtons, button) end for i = 25,25 do local button = {id = ("b"..23), enabled=true, td="<td>", top=75/100, bottom=87/100, left=8/100, right=15/100} table.insert(PWButtons, button) end for i = 26,26 do local button = {id = ("b"..26), enabled=true, td="<td>", top=75/100, bottom=87/100, left=16/100, right=23/100} table.insert(PWButtons, button) end for i = 27,27 do local button = {id = ("b"..27), enabled=true, td="<td>", top=75/100, bottom=87/100, left=24/100, right=31/100} table.insert(PWButtons, button) end for i = 28,28 do local button = {id = ("b"..28), enabled=true, td="<td>", top=75/100, bottom=87/100, left=32/100, right=39/100} table.insert(PWButtons, button) end for i = 29,29 do local button = {id = ("b"..29), enabled=true, td="<td>", top=75/100, bottom=87/100, left=40/100, right=46/100} table.insert(PWButtons, button) end for i = 30,30 do local button = {id = ("b"..30), enabled=true, td="<td>", top=75/100, bottom=87/100, left=47/100, right=54/100} table.insert(PWButtons, button) end for i = 31,31 do local button = {id = ("b"..31), enabled=true, td="<td>", top=75/100, bottom=87/100, left=55/100, right=62/100} table.insert(PWButtons, button) end for i = 32,32 do local button = {id = ("b"..32), enabled=true, td="<td>", top=75/100, bottom=87/100, left=63/100, right=70/100} table.insert(PWButtons, button) end for i = 33,33 do local button = {id = ("b"..33), enabled=true, td="<td>", top=75/100, bottom=87/100, left=71/100, right=78/100} table.insert(PWButtons, button) end for i = 34,34 do local button = {id = ("b"..34), enabled=true, td="<td>", top=75/100, bottom=87/100, left=79/100, right=86/100} table.insert(PWButtons, button) end for i = 35,35 do local button = {id = ("b"..35), enabled=true, td="<td>", top=75/100, bottom=87/100, left=86.5/100, right=94/100} table.insert(PWButtons, button) end for i = 36,36 do local button = {id = ("b"..36), enabled=true, td="<td>", top=88/100, bottom=98/100, left=30/100, right=59/100} table.insert(PWButtons, button) end for i = 37,37 do local button = {id = ("b"..37), enabled=true, td="<td>", top=88/100, bottom=98/100, left=63/100, right=77/100} table.insert(PWButtons, button) end for i = 38,38 do local button = {id = ("b"..38), enabled=true, td="<td>", top=88/100, bottom=98/100, left=85/100, right=100/100} table.insert(PWButtons, button) end for i = 39,39 do local button = {id = ("b"..39), enabled=true, td="<td>", top=90/100, bottom=100/100, left=1/100, right=18/100} table.insert(PWButtons, button) end function evaluateButtons() local selected = 0 if #PWButtons >= 1 then -- Set button styles for i, button in ipairs(PWButtons) do if button.left < PWMouseX and PWMouseX < button.right and button.top < PWMouseY and PWMouseY < button.bottom then if PWMouseDown and PWButtonSelected == i then end selected = i end if not button.enabled then end end end return selected end function onButtonDown(buttonNo) local button = PWButtons[buttonNo] if not button or not button.enabled then return end end function onButtonUp(buttonNo) local button = PWButtons[buttonNo] if not button or not button.enabled then return end function onClick(buttonNo) local button = PWButtons[buttonNo] if not button or not button.enabled then return end end if buttonNo == 1 then keyb=keyb.."1" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 2 then keyb=keyb.."2" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 3 then keyb=keyb.."3" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 4 then keyb=keyb.."4" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 5 then keyb=keyb.."5" screen.setText(30,10,7,keyb) consta=string.len(keyb) hint(1, 5) elseif buttonNo == 6 then keyb=keyb.."6" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 7 then keyb=keyb.."7" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 8 then keyb=keyb.."8" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 9 then keyb=keyb.."9" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 10 then keyb=keyb.."0" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 11 then keyb=keyb.."," screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 12 then keyb=keyb.."?" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 13 then keyb=keyb.."!" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 14 then keyb=keyb.."@" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 15 then keyb=keyb.."#" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 16 then keyb=keyb.."$" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 17 then keyb=keyb.."%" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 18 then keyb=keyb.."^" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 19 then keyb=keyb.."&" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 20 then keyb=keyb.."*" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 21 then keyb=keyb.."~" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 22 then keyb=keyb..";" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 23 then keyb=keyb..":" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 24 then keyb=keyb.."'" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 25 then keyb=keyb.."(" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 26 then keyb=keyb..")" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 27 then keyb=keyb.."[" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 28 then keyb=keyb.."]" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 29 then keyb=keyb.."{" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 30 then keyb=keyb.."}" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 31 then keyb=keyb.."<" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 32 then keyb=keyb..">" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 33 then keyb=keyb.."+" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 34 then keyb="-" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 35 then keyb=keyb.."=" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 36 then keyb=keyb.." " screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 37 then startupnow = 1 elseif buttonNo == 38 then keyb="" screen.setText(30,10,7,keyb) consta=string.len(keyb) elseif buttonNo == 39 then end end if screen.getMouseState() == 1 then mousecolclk = "purple" else mousecolclk = "cyan" end if screen.getMouseState() == 1 and butselectclk1 == 1 then butcolclk1 = "purple" elseif screen.getMouseState() == 0 and butselectclk1 == 1 then butcolclk1 = "limegreen" butselectclk1 = 0 elseif screen.getMouseState() == 1 and butselectclk1 == 2 then butcolclk2 = "purple" elseif screen.getMouseState() == 0 and butselectclk1 == 2 then butcolclk2 = "limegreen" butselectclk2 = 0 end local page = [[ <svg viewBox="0 0 1024 612"> <g> <title>background</title> <rect x="-1" y="-1" width="1026" height="614"/> <g display="none"> <rect width="100%" height="100%" fill="url(#gridpattern)" stroke-width="0"/> </g> </g> <g> <title>Layer 1</title> <rect x="7" y="5" width="1012" height="290" rx="20" fill="#007f7f" stroke="#0f0" stroke-width="5"/> <g fill="#ffff00" fill-opacity="null" font-family="Helvetica, Arial, sans-serif" font-size="20" font-weight="bold" stroke="#00ff00" stroke-width="0"> <text x="50" y="280" fill="#0000ff" font-family="Helvetica, Arial, sans-serif" font-size="25" font-style="italic" font-weight="bold" stroke-width="0" xml:space="preserve">]]..keyb..[[</text> </g> <g id="svg_47"> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="1" y="305.999996" width="70" height="70" id="svg_1" rx="10"/> <text fill="#bf0000" stroke-width="0" x="20" y="360.999996" id="svg_3" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">1</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="80" y="305.999996" width="70" height="70" id="svg_8" rx="10"/> <text fill="#bf0000" stroke-width="0" x="100" y="360.999996" id="svg_9" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">2</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="160" y="305.999996" width="70" height="70" id="svg_11" rx="10"/> <text fill="#bf0000" stroke-width="0" x="180" y="360.999996" id="svg_12" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">3</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="240" y="305.999996" width="70" height="70" id="svg_14" rx="10"/> <text fill="#bf0000" stroke-width="0" x="260" y="360.999996" id="svg_15" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">4</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="320" y="305.999996" width="70" height="70" id="svg_17" rx="10"/> <text fill="#bf0000" stroke-width="0" x="340" y="360.999996" id="svg_18" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">5</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="400" y="305.999996" width="70" height="70" id="svg_20" rx="10"/> <text fill="#bf0000" stroke-width="0" x="420" y="360.999996" id="svg_21" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">6</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="480" y="305.999996" width="70" height="70" id="svg_23" rx="10"/> <text fill="#bf0000" stroke-width="0" x="500" y="360.999996" id="svg_24" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">7</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="560" y="306.00001" width="70" height="70" id="svg_26" rx="10"/> <text fill="#bf0000" stroke-width="0" x="580" y="361.00001" id="svg_27" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">8</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="640" y="305.999996" width="70" height="70" id="svg_29" rx="10"/> <text fill="#bf0000" stroke-width="0" x="660" y="360.999996" id="svg_30" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">9</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="720" y="305.999996" width="70" height="70" id="svg_32" rx="10"/> <text fill="#bf0000" stroke-width="0" x="740" y="360.999996" id="svg_33" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">0</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="800" y="305.999996" width="70" height="70" id="svg_35" rx="10"/> <text fill="#bf0000" stroke-width="0" x="825" y="350" id="svg_36" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">,</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="880" y="305.999996" width="70" height="70" id="svg_38" rx="10"/> <text fill="#bf0000" stroke-width="0" x="900" y="360" id="svg_39" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">?</text> </g> <g id="svg_108"> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="41" y="384.999996" width="70" height="70" id="svg_10" rx="10"/> <text fill="#bf0000" stroke-width="0" x="65" y="439.999996" id="svg_13" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">!</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="121" y="384.999996" width="70" height="70" id="svg_16" rx="10"/> <text fill="#bf0000" stroke-width="0" x="127" y="439.999996" id="svg_19" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">@</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="201" y="384.999996" width="70" height="70" id="svg_22" rx="10"/> <text fill="#bf0000" stroke-width="0" x="220" y="439.999996" id="svg_25" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">#</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="281" y="384.999996" width="70" height="70" id="svg_28" rx="10"/> <text fill="#bf0000" stroke-width="0" x="300" y="439.999996" id="svg_31" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">$</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="361" y="384.999996" width="70" height="70" id="svg_34" rx="10"/> <text fill="#bf0000" stroke-width="0" x="371" y="439.999996" id="svg_37" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">%</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="441" y="385.00001" width="70" height="70" id="svg_40" rx="10"/> <text fill="#bf0000" stroke-width="0" x="460" y="440.00001" id="svg_41" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">^</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="521" y="384.999996" width="70" height="70" id="svg_42" rx="10"/> <text fill="#bf0000" stroke-width="0" x="535" y="439.999996" id="svg_43" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">&amp;</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="601" y="384.999996" width="70" height="70" id="svg_44" rx="10"/> <text fill="#bf0000" stroke-width="0" x="625" y="439.999996" id="svg_45" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">*</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="681" y="384.999996" width="70" height="70" id="svg_48" rx="10"/> <text fill="#bf0000" stroke-width="0" x="700" y="439.999996" id="svg_49" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">~</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="761" y="384.999996" width="70" height="70" id="svg_118" rx="10"/> <text fill="#bf0000" stroke-width="0" x="785" y="439.999996" id="svg_119" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">;</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="841" y="384.999996" width="70" height="70" id="svg_121" rx="10"/> <text fill="#bf0000" stroke-width="0" x="865" y="439.999996" id="svg_122" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">:</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="921" y="384.999996" width="70" height="70" id="svg_127" rx="10"/> <text fill="#bf0000" stroke-width="0" x="950" y="439.999996" id="svg_128" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">'</text> </g> <g id="svg_112"> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="86" y="465.999996" width="70" height="70" id="svg_52" rx="10"/> <text fill="#bf0000" stroke-width="0" x="110" y="520.999996" id="svg_53" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">(</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="166" y="465.999996" width="70" height="70" id="svg_54" rx="10"/> <text fill="#bf0000" stroke-width="0" x="195" y="520.999996" id="svg_55" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">)</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="246" y="465.999996" width="70" height="70" id="svg_56" rx="10"/> <text fill="#bf0000" stroke-width="0" x="270" y="520.999996" id="svg_57" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">[</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="326" y="465.999996" width="70" height="70" id="svg_58" rx="10"/> <text fill="#bf0000" stroke-width="0" x="350" y="520.999996" id="svg_59" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">]</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="406" y="466.00001" width="70" height="70" id="svg_60" rx="10"/> <text fill="#bf0000" stroke-width="0" x="430" y="521.00001" id="svg_61" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">{</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="486" y="465.999996" width="70" height="70" id="svg_62" rx="10"/> <text fill="#bf0000" stroke-width="0" x="515" y="520.999996" id="svg_63" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">}</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="566" y="465.999996" width="70" height="70" id="svg_64" rx="10"/> <text style="cursor: move;" fill="#bf0000" stroke-width="0" x="585" y="520.999996" id="svg_65" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">&lt;</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="646" y="465.999996" width="70" height="70" id="svg_68" rx="10"/> <text fill="#bf0000" stroke-width="0" x="656" y="520.999996" id="svg_69" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold"/> <text style="cursor: move;" fill="#bf0000" stroke-width="0" x="665" y="520.999996" id="svg_78" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">&gt;</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="726" y="465.999996" width="70" height="70" id="svg_66" rx="10"/> <text fill="#bf0000" stroke-width="0" x="736" y="520.999996" id="svg_67" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold"/> <text fill="#bf0000" stroke-width="0" x="755" y="520.999996" id="svg_107" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">+</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="806" y="465.999996" width="70" height="70" id="svg_109" rx="10"/> <text fill="#bf0000" stroke-width="0" x="816" y="520.999996" id="svg_110" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold"/> <text fill="#bf0000" stroke-width="0" x="830" y="520.999996" id="svg_111" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">-</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="886" y="465.999996" width="70" height="70" id="svg_113" rx="10"/> <text fill="#bf0000" stroke-width="0" x="896" y="520.999996" id="svg_114" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold"/> <text fill="#bf0000" stroke-width="0" x="908" y="520.999996" id="svg_115" font-size="55" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">=</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="306" y="545" width="300" height="55" id="svg_71" rx="10"/> <rect fill="#00bfbf" stroke="#ffff00" stroke-width="5" x="650" y="544.999996" width="140" height="55" id="svg_73" rx="10"/> <text style="cursor: move;" fill="#ffff00" stroke-width="0" x="690" y="585" id="svg_74" font-size="28" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">?123</text> <rect fill="#56ffff" stroke="#00ff00" stroke-width="5" x="880" y="545" width="140" height="55" id="svg_76" rx="10"/> <text fill="#bf0000" stroke-width="0" x="900" y="585" id="svg_77" font-size="30" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold">CLEAR</text> </g> <text stroke="null" fill="]]..mousecolclk..[[" stroke-width="10" x="]]..(screen.getMouseX()*(1024)-35)..[[" y="]]..(screen.getMouseY()*(612)+40)..[[" id="svg_6" font-size="100" font-family="Helvetica, Arial, sans-serif" text-anchor="start" xml:space="preserve" font-weight="bold" font-style="italic">+</text> </svg>]] local buttonNo = evaluateButtons() if PWMouseDown then PWMouseX = screen.getMouseX() PWMouseY = screen.getMouseY() if buttonNo ~= PWButtonSelected or PWMouseX < 0.05 or PWMouseX > 0.95 or PWMouseY < 0.05 or PWMouseY > 0.95 then if PWButtonSelected > 0 then onButtonUp(PWButtonSelected) end PWButtonSelected = 0 end end page = page .. [[</div></body></html>]] screen.setHTML(page) end end Json Paste
     
    {"slots":{"0":{"name":"screen","type":{"events":[],"methods":[]}},"1":{"name":"door","type":{"events":[],"methods":[]}},"2":{"name":"slot3","type":{"events":[],"methods":[]}},"3":{"name":"slot4","type":{"events":[],"methods":[]}},"4":{"name":"slot5","type":{"events":[],"methods":[]}},"5":{"name":"slot6","type":{"events":[],"methods":[]}},"6":{"name":"slot7","type":{"events":[],"methods":[]}},"7":{"name":"slot8","type":{"events":[],"methods":[]}},"8":{"name":"slot9","type":{"events":[],"methods":[]}},"9":{"name":"slot10","type":{"events":[],"methods":[]}},"-1":{"name":"unit","type":{"events":[],"methods":[]}},"-2":{"name":"system","type":{"events":[],"methods":[]}},"-3":{"name":"library","type":{"events":[],"methods":[]}}},"handlers":[{"code":"PWMouseX = x\nPWMouseY = y\nPWMouseDown = true\nPWAttention = 0\nPWDislikeButton = 0\nPWLikeButton = 0\nPWButtonSelected = evaluateButtons()\nonButtonDown(PWButtonSelected)","filter":{"args":[{"variable":"*"},{"variable":"*"}],"signature":"mouseDown(x,y)","slotKey":"0"},"key":"0"},{"code":"\nPWMouseX = x\nPWMouseY = y\nPWMouseDown = false\nlocal buttonNo = evaluateButtons()\nif PWButtonSelected > 0 and PWButtonSelected == buttonNo then\n onButtonUp(buttonNo)\n onClick(buttonNo)\nend\nPWButtonSelected = -buttonNo","filter":{"args":[{"variable":"*"},{"variable":"*"}],"signature":"mouseUp(x,y)","slotKey":"0"},"key":"1"},{"code":"keyb = \"Goodbye\"\nunit.exit()","filter":{"args":[{"value":"exit"}],"signature":"tick(timerId)","slotKey":"-1"},"key":"2"},{"code":"unit.hide()\n-------------------------system start----------------------------------------------------------\n-- Internal variables\nkeyb=\"\"\n-- set variables so that there is no error at the start\n\nbutcolclk1 = \"#00ff00\"\nbutcolclk2 = \"#00ff00\"\nmousecolclk = \"cyan\"\nconsta=0\nPWButtons = {}\nPWMouseX = 0\nPWMouseY = 0\nPWMouseDown = false\nPWButtonSelected = 0\nPWAttention = 0\nPWDislikeButton = 0\nPWLikeButton = 0\nPWHintButton = 0\nPWAttentionMessage = \"\"\nPWAttentionVisible = false\nstartupnow = 1\npassword = \"Pass\"--export:\n\n\n\n\nfunction updateScreen() \nif startupnow == 1 then ----- engine stat end emitter start\n tablex.clear(PWButtons, button)\n for i = 1,1 do\n local button = {id = (\"b\"..1), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=1/100, right=6.5/100}\n table.insert(PWButtons, button)\nend\n for i = 2,2 do\n local button = {id = (\"b\"..2), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=8/100, right=14/100}\n table.insert(PWButtons, button)\nend\n for i = 3,3 do\n local button = {id = (\"b\"..3), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=15/100, right=22/100}\n table.insert(PWButtons, button)\nend\n for i = 4,4 do \n local button = {id = (\"b\"..4), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=23/100, right=30/100}\n table.insert(PWButtons, button)\nend\n for i = 5,5 do \n local button = {id = (\"b\"..5), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=31/100, right=38/100}\n table.insert(PWButtons, button)\nend\n for i = 6,6 do \n local button = {id = (\"b\"..6), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=39/100, right=46/100}\n table.insert(PWButtons, button)\nend\n for i = 7,7 do \n local button = {id = (\"b\"..7), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=47/100, right=53/100}\n table.insert(PWButtons, button)\nend\n for i = 8,8 do \n local button = {id = (\"b\"..8), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=54/100, right=61/100}\n table.insert(PWButtons, button)\nend\n for i = 9,9 do \n local button = {id = (\"b\"..9), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=62/100, right=69/100}\n table.insert(PWButtons, button)\nend\n for i = 10,10 do \n local button = {id = (\"b\"..10), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=70/100, right=77/100}\n table.insert(PWButtons, button)\nend\n for i = 11,11 do \n local button = {id = (\"b\"..11), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=78/100, right=85/100}\n table.insert(PWButtons, button)\nend\n for i = 12,12 do \n local button = {id = (\"b\"..12), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=86/100, right=100/100}\n table.insert(PWButtons, button)\nend\n\n\n\n for i = 13,13 do \n local button = {id = (\"b\"..13), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=4/100, right=10/100}\n table.insert(PWButtons, button)\nend\n for i = 14,14 do\n local button = {id = (\"b\"..14), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=11.5/100, right=18/100}\n table.insert(PWButtons, button)\nend\n for i = 15,15 do\n local button = {id = (\"b\"..15), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=19/100, right=26/100}\n table.insert(PWButtons, button)\nend\n for i = 16,16 do\n local button = {id = (\"b\"..16), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=27/100, right=34/100}\n table.insert(PWButtons, button)\nend\n for i = 17,17 do \n local button = {id = (\"b\"..17), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=35/100, right=42/100}\n table.insert(PWButtons, button)\nend\n for i = 18,18 do \n local button = {id = (\"b\"..18), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=43/100, right=50/100}\n table.insert(PWButtons, button)\nend\n for i = 19,19 do \n local button = {id = (\"b\"..19), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=51/100, right=58/100}\n table.insert(PWButtons, button)\nend\n for i = 20,20 do \n local button = {id = (\"b\"..20), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=59/100, right=65/100}\n table.insert(PWButtons, button)\nend\n for i = 21,21 do\n local button = {id = (\"b\"..21), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=66.5/100, right=73/100}\n table.insert(PWButtons, button)\nend\n for i = 22,22 do\n local button = {id = (\"b\"..22), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=74/100, right=89/100}\n table.insert(PWButtons, button)\nend\n\n\n for i = 23,23 do\n local button = {id = (\"b\"..23), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=8/100, right=15/100}\n table.insert(PWButtons, button)\nend\n for i = 24,24 do \n local button = {id = (\"b\"..24), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=16/100, right=23/100}\n table.insert(PWButtons, button)\nend\n for i = 25,25 do \n local button = {id = (\"b\"..25), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=24/100, right=31/100}\n table.insert(PWButtons, button)\nend\n for i = 26,26 do \n local button = {id = (\"b\"..26), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=32/100, right=39/100}\n table.insert(PWButtons, button)\nend\n for i = 27,27 do \n local button = {id = (\"b\"..27), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=40/100, right=46/100}\n table.insert(PWButtons, button)\nend\n for i = 28,28 do \n local button = {id = (\"b\"..28), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=47/100, right=54/100}\n table.insert(PWButtons, button)\nend\n for i = 29,29 do \n local button = {id = (\"b\"..29), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=55/100, right=62/100}\n table.insert(PWButtons, button)\nend\n for i = 30,30 do \n local button = {id = (\"b\"..30), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=63/100, right=70/100}\n table.insert(PWButtons, button)\nend\n for i = 31,31 do \n local button = {id = (\"b\"..31), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=71/100, right=85/100}\n table.insert(PWButtons, button)\nend\n\n\n for i = 32,32 do \n local button = {id = (\"b\"..32), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=30/100, right=59/100}\n table.insert(PWButtons, button)\nend\n for i = 33,33 do \n local button = {id = (\"b\"..33), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=63/100, right=77/100}\n table.insert(PWButtons, button)\nend\n for i = 34,34 do\n local button = {id = (\"b\"..34), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=85/100, right=100/100}\n table.insert(PWButtons, button)\nend\n for i = 35,35 do \n local button = {id = (\"b\"..35), enabled=true, td=\"<td>\", top=90/100, bottom=100/100, left=1/100, right=18/100}\n table.insert(PWButtons, button)\nend\nfunction evaluateButtons()\n local selected = 0\n \n if #PWButtons >= 1 then\n\n -- Set button styles\n for i, button in ipairs(PWButtons) do\n if button.left < PWMouseX and PWMouseX < button.right and button.top < PWMouseY and PWMouseY < button.bottom then\n if PWMouseDown and PWButtonSelected == i then\n end\n selected = i\n end\n if not button.enabled then\n end\n\n end\n end\n return selected\nend\n\n\nfunction onButtonDown(buttonNo)\n local button = PWButtons[buttonNo] \n if not button or not button.enabled then\n\treturn\n end\nend\nfunction onButtonUp(buttonNo)\n local button = PWButtons[buttonNo] \n if not button or not button.enabled then\n return\n end\n \n\nfunction onClick(buttonNo)\n local button = PWButtons[buttonNo] \n if not button or not button.enabled then\n return\n end\nend\n if buttonNo == 1 then\n keyb=keyb..\"Q\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 2 then\n keyb=keyb..\"W\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 3 then\n keyb=keyb..\"E\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 4 then\n keyb=keyb..\"R\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 5 then\n keyb=keyb..\"T\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 6 then\n keyb=keyb..\"Y\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 7 then\n keyb=keyb..\"U\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 8 then\n keyb=keyb..\"I\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 9 then\n keyb=keyb..\"O\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 10 then\n keyb=keyb..\"P\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 11 then\n\n elseif buttonNo == 12 then\n keyb = \"\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 13 then\n keyb=keyb..\"A\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 14 then\n keyb=keyb..\"S\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 15 then\n keyb=keyb..\"D\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 16 then\n keyb=keyb..\"F\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 17 then\n keyb=keyb..\"G\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 18 then\n keyb=keyb..\"H\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 19 then\n keyb=keyb..\"J\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 20 then\n keyb=keyb..\"K\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 21 then\n keyb=keyb..\"L\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 22 then ----enterbutton\n if keyb == password then\n keyb=\"\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n door.activate()\n keyb=\"Access Granted\"\n unit.setTimer(\"exit\",5) \n elseif keyb ~= password then \n keyb=\"\"\n keyb=\"Access DENIED\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n unit.setTimer(\"exit\",1)\n door.deactivate()\n end\n \n elseif buttonNo == 23 then\n keyb=keyb..\"Z\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 24 then\n keyb=keyb..\"X\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 25 then\n keyb=keyb..\"C\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 26 then\n keyb=keyb..\"V\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 27 then\n keyb=keyb..\"B\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 28 then\n keyb=keyb..\"N\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 29 then\n keyb=keyb..\"M\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 30 then\n keyb=keyb..\".\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 31 then\n startupnow = 1.1\n elseif buttonNo == 32 then\n keyb=keyb..\" \"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 33 then\n startupnow = 1.2\n elseif buttonNo == 34 then\n\n elseif buttonNo == 35 then\n\n end\nend\n\nif screen.getMouseState() == 1 then\n mousecolclk = \"purple\"\n else\n mousecolclk = \"cyan\"\n end\n \nif screen.getMouseState() == 1 and butselectclk1 == 1 then\n butcolclk1 = \"purple\"\n elseif screen.getMouseState() == 0 and butselectclk1 == 1 then\n butcolclk1 = \"limegreen\"\n butselectclk1 = 0 \n\nelseif screen.getMouseState() == 1 and butselectclk1 == 2 then\n butcolclk2 = \"purple\"\n elseif screen.getMouseState() == 0 and butselectclk1 == 2 then\n butcolclk2 = \"limegreen\"\n butselectclk2 = 0 \n end\n \n \n local page = [[\n<svg viewBox=\"0 0 1024 612\">\n<g>\n<title>background</title>\n<rect x=\"-1\" y=\"-1\" width=\"1026\" height=\"614\"/>\n<g display=\"none\">\n<rect width=\"100%\" height=\"100%\" fill=\"url(#gridpattern)\" stroke-width=\"0\"/>\n</g>\n</g>\n<g>\n<title>Layer 1</title>\n<rect x=\"7\" y=\"5\" width=\"1012\" height=\"290\" rx=\"20\" fill=\"#007f7f\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<rect x=\"1\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"14.997276\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Q</text>\n<rect x=\"80\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"90\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">W</text>\n<rect x=\"160\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"178\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">E</text>\n<rect x=\"240\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"255\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">R</text>\n<rect x=\"320\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"337\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">T</text>\n<rect x=\"400\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"417\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Y</text>\n<rect x=\"480\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"496\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">U</text>\n<rect x=\"560\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"586\" y=\"361.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">I</text>\n<rect x=\"640\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"654\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">O</text>\n<rect x=\"720\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"740\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">P</text>\n<rect x=\"880\" y=\"306\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"895\" y=\"350\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">CLEAR</text>\n<rect x=\"800\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"802\" y=\"350\" cursor=\"move\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\"></text>\n<rect x=\"41\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"59\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">A</text>\n<rect x=\"121\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"136\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">S</text>\n<rect x=\"201\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"218\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">D</text>\n<rect x=\"281\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"298\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">F</text>\n<rect x=\"361\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"377\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">G</text>\n<rect x=\"441\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"455\" y=\"440.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">H</text>\n<rect x=\"521\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"540\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">J</text>\n<rect x=\"601\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"619\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">K</text>\n<rect x=\"761\" y=\"385\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"785\" y=\"430\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Enter</text>\n<rect x=\"681\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"700\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">L</text>\n<rect x=\"86\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"101\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Z</text>\n<rect x=\"166\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"183\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">X</text>\n<rect x=\"246\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"263\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">C</text>\n<rect x=\"326\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"342\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">V</text>\n<rect x=\"406\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"420\" y=\"521.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">B</text>\n<rect x=\"486\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"500\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">N</text>\n<rect x=\"566\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"578\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">M</text>\n<rect x=\"646\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"656\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\"/>\n<rect x=\"306\" y=\"545\" width=\"300\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<rect x=\"726\" y=\"466\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"750\" y=\"510\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">SHIFT</text>\n<rect x=\"650\" y=\"545\" width=\"140\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"690\" y=\"585\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"28\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">?123</text>\n<rect x=\"880\" y=\"545\" width=\"140\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"882\" y=\"585\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\"></text>\n<text x=\"674\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">.</text>\n\n<text x=\"50\" y=\"280\" fill=\"#0000ff\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"25\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">]]..keyb..[[</text>\n</g>\n\n\n<text stroke=\"null\" fill=\"]]..mousecolclk..[[\" stroke-width=\"10\" x=\"]]..(screen.getMouseX()*(1024)-35)..[[\" y=\"]]..(screen.getMouseY()*(612)+40)..[[\" id=\"svg_6\" font-size=\"100\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\" font-style=\"italic\">+</text>\n\n </svg>]] \n local buttonNo = evaluateButtons()\n if PWMouseDown then\n PWMouseX = screen.getMouseX()\n PWMouseY = screen.getMouseY()\n if buttonNo ~= PWButtonSelected or PWMouseX < 0.05 or PWMouseX > 0.95 or PWMouseY < 0.05 or PWMouseY > 0.95 then\n if PWButtonSelected > 0 then\n onButtonUp(PWButtonSelected)\n end\n PWButtonSelected = 0\n end \n end\n\n\n\n page = page .. [[</div></body></html>]]\n screen.setHTML(page)\n \n\n\n\n\n\n\n--------------------small letter keyboard\n\n\n\n\nelseif startupnow == 1.1 then\n\n tablex.clear(PWButtons, button)\n for i = 1,1 do\n local button = {id = (\"b\"..1), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=1/100, right=6.5/100}\n table.insert(PWButtons, button)\nend\n for i = 2,2 do\n local button = {id = (\"b\"..2), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=8/100, right=14/100}\n table.insert(PWButtons, button)\nend\n for i = 3,3 do\n local button = {id = (\"b\"..3), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=15/100, right=22/100}\n table.insert(PWButtons, button)\nend\n for i = 4,4 do \n local button = {id = (\"b\"..4), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=23/100, right=30/100}\n table.insert(PWButtons, button)\nend\n for i = 5,5 do \n local button = {id = (\"b\"..5), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=31/100, right=38/100}\n table.insert(PWButtons, button)\nend\n for i = 6,6 do \n local button = {id = (\"b\"..6), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=39/100, right=46/100}\n table.insert(PWButtons, button)\nend\n for i = 7,7 do \n local button = {id = (\"b\"..7), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=47/100, right=53/100}\n table.insert(PWButtons, button)\nend\n for i = 8,8 do \n local button = {id = (\"b\"..8), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=54/100, right=61/100}\n table.insert(PWButtons, button)\nend\n for i = 9,9 do \n local button = {id = (\"b\"..9), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=62/100, right=69/100}\n table.insert(PWButtons, button)\nend\n for i = 10,10 do \n local button = {id = (\"b\"..10), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=70/100, right=77/100}\n table.insert(PWButtons, button)\nend\n for i = 11,11 do \n local button = {id = (\"b\"..11), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=78/100, right=85/100}\n table.insert(PWButtons, button)\nend\n for i = 12,12 do \n local button = {id = (\"b\"..12), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=86/100, right=100/100}\n table.insert(PWButtons, button)\nend\n\n\n\n for i = 13,13 do \n local button = {id = (\"b\"..13), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=4/100, right=10/100}\n table.insert(PWButtons, button)\nend\n for i = 14,14 do\n local button = {id = (\"b\"..14), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=11.5/100, right=18/100}\n table.insert(PWButtons, button)\nend\n for i = 15,15 do\n local button = {id = (\"b\"..15), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=19/100, right=26/100}\n table.insert(PWButtons, button)\nend\n for i = 16,16 do\n local button = {id = (\"b\"..16), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=27/100, right=34/100}\n table.insert(PWButtons, button)\nend\n for i = 17,17 do \n local button = {id = (\"b\"..17), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=35/100, right=42/100}\n table.insert(PWButtons, button)\nend\n for i = 18,18 do \n local button = {id = (\"b\"..18), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=43/100, right=50/100}\n table.insert(PWButtons, button)\nend\n for i = 19,19 do \n local button = {id = (\"b\"..19), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=51/100, right=58/100}\n table.insert(PWButtons, button)\nend\n for i = 20,20 do \n local button = {id = (\"b\"..20), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=59/100, right=65/100}\n table.insert(PWButtons, button)\nend\n for i = 21,21 do\n local button = {id = (\"b\"..21), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=66.5/100, right=73/100}\n table.insert(PWButtons, button)\nend\n for i = 22,22 do\n local button = {id = (\"b\"..22), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=74/100, right=89/100}\n table.insert(PWButtons, button)\nend\n\n\n for i = 23,23 do\n local button = {id = (\"b\"..23), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=8/100, right=15/100}\n table.insert(PWButtons, button)\nend\n for i = 24,24 do \n local button = {id = (\"b\"..24), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=16/100, right=23/100}\n table.insert(PWButtons, button)\nend\n for i = 25,25 do \n local button = {id = (\"b\"..25), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=24/100, right=31/100}\n table.insert(PWButtons, button)\nend\n for i = 26,26 do \n local button = {id = (\"b\"..26), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=32/100, right=39/100}\n table.insert(PWButtons, button)\nend\n for i = 27,27 do \n local button = {id = (\"b\"..27), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=40/100, right=46/100}\n table.insert(PWButtons, button)\nend\n for i = 28,28 do \n local button = {id = (\"b\"..28), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=47/100, right=54/100}\n table.insert(PWButtons, button)\nend\n for i = 29,29 do \n local button = {id = (\"b\"..29), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=55/100, right=62/100}\n table.insert(PWButtons, button)\nend\n for i = 30,30 do \n local button = {id = (\"b\"..30), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=63/100, right=70/100}\n table.insert(PWButtons, button)\nend\n for i = 31,31 do \n local button = {id = (\"b\"..31), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=71/100, right=85/100}\n table.insert(PWButtons, button)\nend\n\n\n for i = 32,32 do \n local button = {id = (\"b\"..32), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=30/100, right=59/100}\n table.insert(PWButtons, button)\nend\n for i = 33,33 do \n local button = {id = (\"b\"..33), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=63/100, right=77/100}\n table.insert(PWButtons, button)\nend\n for i = 34,34 do\n local button = {id = (\"b\"..34), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=85/100, right=100/100}\n table.insert(PWButtons, button)\nend\n for i = 35,35 do \n local button = {id = (\"b\"..35), enabled=true, td=\"<td>\", top=90/100, bottom=100/100, left=1/100, right=18/100}\n table.insert(PWButtons, button)\nend\n\nfunction evaluateButtons()\n local selected = 0\n \n if #PWButtons >= 1 then\n\n -- Set button styles\n for i, button in ipairs(PWButtons) do\n if button.left < PWMouseX and PWMouseX < button.right and button.top < PWMouseY and PWMouseY < button.bottom then\n if PWMouseDown and PWButtonSelected == i then\n end\n selected = i\n end\n if not button.enabled then\n end\n\n end\n end\n return selected\nend\n\nfunction onButtonDown(buttonNo)\n local button = PWButtons[buttonNo] \n if not button or not button.enabled then\n\treturn\n end\nend\nfunction onButtonUp(buttonNo)\n local button = PWButtons[buttonNo] \n if not button or not button.enabled then\n return\n end\n \n\nfunction onClick(buttonNo)\n local button = PWButtons[buttonNo] \n if not button or not button.enabled then\n return\n end\nend\n if buttonNo == 1 then\n keyb=keyb..\"q\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 2 then\n keyb=keyb..\"w\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 3 then\n keyb=keyb..\"e\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 4 then\n keyb=keyb..\"r\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 5 then\n keyb=keyb..\"t\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 6 then\n keyb=keyb..\"y\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 7 then\n keyb=keyb..\"u\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 8 then\n keyb=keyb..\"i\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 9 then\n keyb=keyb..\"o\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 10 then\n keyb=keyb..\"p\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 11 then\n\n elseif buttonNo == 12 then\n keyb = \"\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 13 then\n keyb=keyb..\"a\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 14 then\n keyb=keyb..\"s\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 15 then\n keyb=keyb..\"d\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 16 then\n keyb=keyb..\"f\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 17 then\n keyb=keyb..\"g\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 18 then\n keyb=keyb..\"h\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 19 then\n keyb=keyb..\"j\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 20 then\n keyb=keyb..\"k\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 21 then\n keyb=keyb..\"l\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 22 then\n if keyb == password then\n keyb=\"\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n door.activate()\n keyb=\"Access Granted\"\n unit.setTimer(\"exit\",5) \n elseif keyb ~= password then \n keyb=\"\"\n keyb=\"Access DENIED\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n unit.setTimer(\"exit\",1)\n door.deactivate()\n end\n elseif buttonNo == 23 then\n keyb=keyb..\"z\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 24 then\n keyb=keyb..\"x\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 25 then\n keyb=keyb..\"c\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 26 then\n keyb=keyb..\"v\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 27 then\n keyb=keyb..\"b\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 28 then\n keyb=keyb..\"n\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 29 then\n keyb=keyb..\"m\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 30 then\n keyb=keyb..\".\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 31 then\n startupnow = 1\n elseif buttonNo == 32 then\n keyb=keyb..\" \"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 33 then\n startupnow = 1.2\n elseif buttonNo == 34 then\n\n elseif buttonNo == 35 then\n\n end\nend\n\n\nif screen.getMouseState() == 1 then\n mousecolclk = \"purple\"\n else\n mousecolclk = \"cyan\"\n end\n\nif screen.getMouseState() == 1 and butselectclk1 == 1 then\n butcolclk1 = \"purple\"\n elseif screen.getMouseState() == 0 and butselectclk1 == 1 then\n butcolclk1 = \"limegreen\"\n butselectclk1 = 0 \n\nelseif screen.getMouseState() == 1 and butselectclk1 == 2 then\n butcolclk2 = \"purple\"\n elseif screen.getMouseState() == 0 and butselectclk1 == 2 then\n butcolclk2 = \"limegreen\"\n butselectclk2 = 0 \n end\n \n \n local page = [[\n<svg viewBox=\"0 0 1024 612\">\n<g>\n<title>background</title>\n<rect x=\"-1\" y=\"-1\" width=\"1026\" height=\"614\"/>\n<g display=\"none\">\n<rect width=\"100%\" height=\"100%\" fill=\"url(#gridpattern)\" stroke-width=\"0\"/>\n</g>\n</g>\n<g>\n<title>Layer 1</title>\n<rect x=\"7\" y=\"5\" width=\"1012\" height=\"290\" rx=\"20\" fill=\"#007f7f\" stroke=\"#0f0\" stroke-width=\"5\"/>\n\n<rect x=\"1\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"14.997276\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">q</text>\n<rect x=\"80\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"90\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">w</text>\n<rect x=\"160\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"178\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">e</text>\n<rect x=\"240\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"255\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">r</text>\n<rect x=\"320\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"337\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">t</text>\n<rect x=\"400\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"417\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">y</text>\n<rect x=\"480\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"496\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">u</text>\n<rect x=\"560\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"586\" y=\"361.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">i</text>\n<rect x=\"640\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"654\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">o</text>\n<rect x=\"720\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"740\" y=\"360.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">p</text>\n<rect x=\"880\" y=\"306\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"895\" y=\"350\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">CLEAR</text>\n<rect x=\"800\" y=\"306\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"802\" y=\"350\" cursor=\"move\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\"></text>\n<rect x=\"41\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"59\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">a</text>\n<rect x=\"121\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"136\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">s</text>\n<rect x=\"201\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"218\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">d</text>\n<rect x=\"281\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"298\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">f</text>\n<rect x=\"361\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"377\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">g</text>\n<rect x=\"441\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"455\" y=\"440.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">h</text>\n<rect x=\"521\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"540\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">j</text>\n<rect x=\"601\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"619\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">k</text>\n<rect x=\"761\" y=\"385\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"785\" y=\"430\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">Enter</text>\n<rect x=\"681\" y=\"385\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"700\" y=\"439.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">l</text>\n<rect x=\"86\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"101\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">z</text>\n<rect x=\"166\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"183\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">x</text>\n<rect x=\"246\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"263\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">c</text>\n<rect x=\"326\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"342\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">v</text>\n<rect x=\"406\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"420\" y=\"521.00001\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">b</text>\n<rect x=\"486\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"500\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">n</text>\n<rect x=\"566\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"578\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">m</text>\n<rect x=\"646\" y=\"466\" width=\"70\" height=\"70\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n\n<rect x=\"306\" y=\"545\" width=\"300\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<rect x=\"726\" y=\"466\" width=\"140\" height=\"70\" rx=\"10\" fill=\"#00bfbf\" stroke=\"#00ff00\" stroke-width=\"5\"/>\n<text x=\"750\" y=\"510\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">SHIFT</text>\n<rect x=\"650\" y=\"545\" width=\"140\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"690\" y=\"585\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"28\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">?123</text>\n<rect x=\"880\" y=\"545\" width=\"140\" height=\"55\" rx=\"10\" fill=\"#56ffff\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<text x=\"882\" y=\"585\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"30\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\"></text>\n<text x=\"674\" y=\"520.999996\" fill=\"#bf0000\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"55\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">.</text>\n\n<text x=\"50\" y=\"280\" fill=\"#0000ff\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"25\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">]]..keyb..[[</text>\n</g>\n\n\n<text stroke=\"null\" fill=\"]]..mousecolclk..[[\" stroke-width=\"10\" x=\"]]..(screen.getMouseX()*(1024)-35)..[[\" y=\"]]..(screen.getMouseY()*(612)+40)..[[\" id=\"svg_6\" font-size=\"100\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\" font-style=\"italic\">+</text>\n\n </svg>]] \n local buttonNo = evaluateButtons()\n if PWMouseDown then\n PWMouseX = screen.getMouseX()\n PWMouseY = screen.getMouseY()\n if buttonNo ~= PWButtonSelected or PWMouseX < 0.05 or PWMouseX > 0.95 or PWMouseY < 0.05 or PWMouseY > 0.95 then\n if PWButtonSelected > 0 then\n onButtonUp(PWButtonSelected)\n end\n PWButtonSelected = 0\n end \n end\n\n\n\n page = page .. [[</div></body></html>]]\n screen.setHTML(page)\n\n\n\n\nelseif startupnow == 1.2 then ----- emitter end\n tablex.clear(PWButtons, button)\n for i = 1,1 do\n local button = {id = (\"b\"..1), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=1/100, right=6.5/100}\n table.insert(PWButtons, button)\nend\n for i = 2,2 do\n local button = {id = (\"b\"..2), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=8/100, right=14/100}\n table.insert(PWButtons, button)\nend\n for i = 3,3 do\n local button = {id = (\"b\"..3), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=15/100, right=22/100}\n table.insert(PWButtons, button)\nend\n for i = 4,4 do \n local button = {id = (\"b\"..4), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=23/100, right=30/100}\n table.insert(PWButtons, button)\nend\n for i = 5,5 do \n local button = {id = (\"b\"..5), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=31/100, right=38/100}\n table.insert(PWButtons, button)\nend\n for i = 6,6 do \n local button = {id = (\"b\"..6), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=39/100, right=46/100}\n table.insert(PWButtons, button)\nend\n for i = 7,7 do \n local button = {id = (\"b\"..7), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=47/100, right=53/100}\n table.insert(PWButtons, button)\nend\n for i = 8,8 do \n local button = {id = (\"b\"..8), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=54/100, right=61/100}\n table.insert(PWButtons, button)\nend\n for i = 9,9 do \n local button = {id = (\"b\"..9), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=62/100, right=69/100}\n table.insert(PWButtons, button)\nend\n for i = 10,10 do \n local button = {id = (\"b\"..10), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=70/100, right=77/100}\n table.insert(PWButtons, button)\nend\n for i = 11,11 do \n local button = {id = (\"b\"..11), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=78/100, right=85/100}\n table.insert(PWButtons, button)\nend\n for i = 12,12 do \n local button = {id = (\"b\"..12), enabled=true, td=\"<td>\", top=49/100, bottom=60/100, left=86/100, right=93/100}\n table.insert(PWButtons, button)\nend\n\n\n\n for i = 13,13 do \n local button = {id = (\"b\"..13), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=4/100, right=10/100}\n table.insert(PWButtons, button)\nend\n for i = 14,14 do\n local button = {id = (\"b\"..14), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=11.5/100, right=18/100}\n table.insert(PWButtons, button)\nend\n for i = 15,15 do\n local button = {id = (\"b\"..15), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=19/100, right=26/100}\n table.insert(PWButtons, button)\nend\n for i = 16,16 do\n local button = {id = (\"b\"..16), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=27/100, right=34/100}\n table.insert(PWButtons, button)\nend\n for i = 17,17 do \n local button = {id = (\"b\"..17), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=35/100, right=42/100}\n table.insert(PWButtons, button)\nend\n for i = 18,18 do \n local button = {id = (\"b\"..18), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=43/100, right=50/100}\n table.insert(PWButtons, button)\nend\n for i = 19,19 do \n local button = {id = (\"b\"..19), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=51/100, right=58/100}\n table.insert(PWButtons, button)\nend\n for i = 20,20 do \n local button = {id = (\"b\"..20), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=59/100, right=65/100}\n table.insert(PWButtons, button)\nend\n for i = 21,21 do\n local button = {id = (\"b\"..21), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=66.5/100, right=73/100}\n table.insert(PWButtons, button)\nend\n for i = 22,22 do\n local button = {id = (\"b\"..22), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=74/100, right=82/100}\n table.insert(PWButtons, button)\nend\n for i = 23,23 do\n local button = {id = (\"b\"..23), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=82.5/100, right=90/100}\n table.insert(PWButtons, button)\nend\n for i = 24,24 do\n local button = {id = (\"b\"..24), enabled=true, td=\"<td>\", top=62/100, bottom=73/100, left=90/100, right=97/100}\n table.insert(PWButtons, button)\nend\n\n\n for i = 25,25 do\n local button = {id = (\"b\"..23), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=8/100, right=15/100}\n table.insert(PWButtons, button)\nend\n for i = 26,26 do \n local button = {id = (\"b\"..26), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=16/100, right=23/100}\n table.insert(PWButtons, button)\nend\n for i = 27,27 do \n local button = {id = (\"b\"..27), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=24/100, right=31/100}\n table.insert(PWButtons, button)\nend\n for i = 28,28 do \n local button = {id = (\"b\"..28), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=32/100, right=39/100}\n table.insert(PWButtons, button)\nend\n for i = 29,29 do \n local button = {id = (\"b\"..29), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=40/100, right=46/100}\n table.insert(PWButtons, button)\nend\n for i = 30,30 do \n local button = {id = (\"b\"..30), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=47/100, right=54/100}\n table.insert(PWButtons, button)\nend\n for i = 31,31 do \n local button = {id = (\"b\"..31), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=55/100, right=62/100}\n table.insert(PWButtons, button)\nend\n for i = 32,32 do \n local button = {id = (\"b\"..32), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=63/100, right=70/100}\n table.insert(PWButtons, button)\nend\n for i = 33,33 do \n local button = {id = (\"b\"..33), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=71/100, right=78/100}\n table.insert(PWButtons, button)\nend\n for i = 34,34 do \n local button = {id = (\"b\"..34), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=79/100, right=86/100}\n table.insert(PWButtons, button)\nend\n for i = 35,35 do \n local button = {id = (\"b\"..35), enabled=true, td=\"<td>\", top=75/100, bottom=87/100, left=86.5/100, right=94/100}\n table.insert(PWButtons, button)\nend\n\n for i = 36,36 do \n local button = {id = (\"b\"..36), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=30/100, right=59/100}\n table.insert(PWButtons, button)\nend\n for i = 37,37 do \n local button = {id = (\"b\"..37), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=63/100, right=77/100}\n table.insert(PWButtons, button)\nend\n for i = 38,38 do\n local button = {id = (\"b\"..38), enabled=true, td=\"<td>\", top=88/100, bottom=98/100, left=85/100, right=100/100}\n table.insert(PWButtons, button)\nend\n for i = 39,39 do \n local button = {id = (\"b\"..39), enabled=true, td=\"<td>\", top=90/100, bottom=100/100, left=1/100, right=18/100}\n table.insert(PWButtons, button)\nend\nfunction evaluateButtons()\n local selected = 0\n \n if #PWButtons >= 1 then\n\n\n -- Set button styles\n for i, button in ipairs(PWButtons) do\n if button.left < PWMouseX and PWMouseX < button.right and button.top < PWMouseY and PWMouseY < button.bottom then\n if PWMouseDown and PWButtonSelected == i then\n end\n selected = i\n end\n if not button.enabled then\n end\n\n end\n end\n return selected\nend\n\n\nfunction onButtonDown(buttonNo)\n local button = PWButtons[buttonNo] \n if not button or not button.enabled then\n\treturn\n end\nend\nfunction onButtonUp(buttonNo)\n local button = PWButtons[buttonNo] \n if not button or not button.enabled then\n return\n end\n \n\nfunction onClick(buttonNo)\n local button = PWButtons[buttonNo] \n if not button or not button.enabled then\n return\n end\nend\n if buttonNo == 1 then\n keyb=keyb..\"1\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 2 then\n keyb=keyb..\"2\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 3 then\n keyb=keyb..\"3\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 4 then\n keyb=keyb..\"4\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 5 then\n keyb=keyb..\"5\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n\t\thint(1, 5)\n elseif buttonNo == 6 then\n keyb=keyb..\"6\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 7 then\n keyb=keyb..\"7\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 8 then\n keyb=keyb..\"8\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 9 then\n keyb=keyb..\"9\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 10 then\n keyb=keyb..\"0\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 11 then\n keyb=keyb..\",\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 12 then\n keyb=keyb..\"?\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 13 then\n keyb=keyb..\"!\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 14 then\n keyb=keyb..\"@\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 15 then\n keyb=keyb..\"#\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 16 then\n keyb=keyb..\"$\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 17 then\n keyb=keyb..\"%\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 18 then\n keyb=keyb..\"^\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 19 then\n keyb=keyb..\"&\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 20 then\n keyb=keyb..\"*\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 21 then\n keyb=keyb..\"~\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 22 then\n keyb=keyb..\";\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 23 then\n keyb=keyb..\":\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 24 then\n keyb=keyb..\"'\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 25 then\n keyb=keyb..\"(\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 26 then\n keyb=keyb..\")\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 27 then\n keyb=keyb..\"[\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 28 then\n keyb=keyb..\"]\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 29 then\n keyb=keyb..\"{\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 30 then\n keyb=keyb..\"}\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 31 then\n keyb=keyb..\"<\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 32 then\n keyb=keyb..\">\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 33 then\n keyb=keyb..\"+\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 34 then\n keyb=\"-\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 35 then\n keyb=keyb..\"=\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 36 then\n keyb=keyb..\" \"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 37 then\n startupnow = 1\n elseif buttonNo == 38 then\n keyb=\"\"\n screen.setText(30,10,7,keyb)\n consta=string.len(keyb)\n elseif buttonNo == 39 then\n\n\n end\nend\n\nif screen.getMouseState() == 1 then\n mousecolclk = \"purple\"\n else\n mousecolclk = \"cyan\"\n end\n\nif screen.getMouseState() == 1 and butselectclk1 == 1 then\n butcolclk1 = \"purple\"\n elseif screen.getMouseState() == 0 and butselectclk1 == 1 then\n butcolclk1 = \"limegreen\"\n butselectclk1 = 0 \n\nelseif screen.getMouseState() == 1 and butselectclk1 == 2 then\n butcolclk2 = \"purple\"\n elseif screen.getMouseState() == 0 and butselectclk1 == 2 then\n butcolclk2 = \"limegreen\"\n butselectclk2 = 0 \n end\n \n \n local page = [[\n<svg viewBox=\"0 0 1024 612\">\n<g>\n<title>background</title>\n<rect x=\"-1\" y=\"-1\" width=\"1026\" height=\"614\"/>\n<g display=\"none\">\n<rect width=\"100%\" height=\"100%\" fill=\"url(#gridpattern)\" stroke-width=\"0\"/>\n</g>\n</g>\n<g>\n<title>Layer 1</title>\n<rect x=\"7\" y=\"5\" width=\"1012\" height=\"290\" rx=\"20\" fill=\"#007f7f\" stroke=\"#0f0\" stroke-width=\"5\"/>\n<g fill=\"#ffff00\" fill-opacity=\"null\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"20\" font-weight=\"bold\" stroke=\"#00ff00\" stroke-width=\"0\">\n\n<text x=\"50\" y=\"280\" fill=\"#0000ff\" font-family=\"Helvetica, Arial, sans-serif\" font-size=\"25\" font-style=\"italic\" font-weight=\"bold\" stroke-width=\"0\" xml:space=\"preserve\">]]..keyb..[[</text>\n</g>\n <g id=\"svg_47\">\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"1\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_1\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"20\" y=\"360.999996\" id=\"svg_3\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">1</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"80\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_8\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"100\" y=\"360.999996\" id=\"svg_9\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">2</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"160\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_11\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"180\" y=\"360.999996\" id=\"svg_12\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">3</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"240\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_14\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"260\" y=\"360.999996\" id=\"svg_15\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">4</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"320\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_17\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"340\" y=\"360.999996\" id=\"svg_18\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">5</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"400\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_20\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"420\" y=\"360.999996\" id=\"svg_21\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">6</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"480\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_23\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"500\" y=\"360.999996\" id=\"svg_24\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">7</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"560\" y=\"306.00001\" width=\"70\" height=\"70\" id=\"svg_26\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"580\" y=\"361.00001\" id=\"svg_27\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">8</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"640\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_29\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"660\" y=\"360.999996\" id=\"svg_30\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">9</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"720\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_32\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"740\" y=\"360.999996\" id=\"svg_33\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">0</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"800\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_35\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"825\" y=\"350\" id=\"svg_36\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">,</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"880\" y=\"305.999996\" width=\"70\" height=\"70\" id=\"svg_38\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"900\" y=\"360\" id=\"svg_39\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">?</text>\n </g>\n <g id=\"svg_108\">\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"41\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_10\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"65\" y=\"439.999996\" id=\"svg_13\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">!</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"121\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_16\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"127\" y=\"439.999996\" id=\"svg_19\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">@</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"201\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_22\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"220\" y=\"439.999996\" id=\"svg_25\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">#</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"281\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_28\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"300\" y=\"439.999996\" id=\"svg_31\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">$</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"361\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_34\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"371\" y=\"439.999996\" id=\"svg_37\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">%</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"441\" y=\"385.00001\" width=\"70\" height=\"70\" id=\"svg_40\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"460\" y=\"440.00001\" id=\"svg_41\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">^</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"521\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_42\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"535\" y=\"439.999996\" id=\"svg_43\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">&amp;</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"601\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_44\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"625\" y=\"439.999996\" id=\"svg_45\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">*</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"681\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_48\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"700\" y=\"439.999996\" id=\"svg_49\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">~</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"761\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_118\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"785\" y=\"439.999996\" id=\"svg_119\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">;</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"841\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_121\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"865\" y=\"439.999996\" id=\"svg_122\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">:</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"921\" y=\"384.999996\" width=\"70\" height=\"70\" id=\"svg_127\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"950\" y=\"439.999996\" id=\"svg_128\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">'</text>\n </g>\n <g id=\"svg_112\">\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"86\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_52\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"110\" y=\"520.999996\" id=\"svg_53\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">(</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"166\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_54\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"195\" y=\"520.999996\" id=\"svg_55\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">)</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"246\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_56\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"270\" y=\"520.999996\" id=\"svg_57\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">[</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"326\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_58\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"350\" y=\"520.999996\" id=\"svg_59\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">]</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"406\" y=\"466.00001\" width=\"70\" height=\"70\" id=\"svg_60\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"430\" y=\"521.00001\" id=\"svg_61\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">{</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"486\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_62\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"515\" y=\"520.999996\" id=\"svg_63\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">}</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"566\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_64\" rx=\"10\"/>\n <text style=\"cursor: move;\" fill=\"#bf0000\" stroke-width=\"0\" x=\"585\" y=\"520.999996\" id=\"svg_65\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">&lt;</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"646\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_68\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"656\" y=\"520.999996\" id=\"svg_69\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\"/>\n <text style=\"cursor: move;\" fill=\"#bf0000\" stroke-width=\"0\" x=\"665\" y=\"520.999996\" id=\"svg_78\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">&gt;</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"726\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_66\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"736\" y=\"520.999996\" id=\"svg_67\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"755\" y=\"520.999996\" id=\"svg_107\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">+</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"806\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_109\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"816\" y=\"520.999996\" id=\"svg_110\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"830\" y=\"520.999996\" id=\"svg_111\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">-</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"886\" y=\"465.999996\" width=\"70\" height=\"70\" id=\"svg_113\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"896\" y=\"520.999996\" id=\"svg_114\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"908\" y=\"520.999996\" id=\"svg_115\" font-size=\"55\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">=</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"306\" y=\"545\" width=\"300\" height=\"55\" id=\"svg_71\" rx=\"10\"/>\n <rect fill=\"#00bfbf\" stroke=\"#ffff00\" stroke-width=\"5\" x=\"650\" y=\"544.999996\" width=\"140\" height=\"55\" id=\"svg_73\" rx=\"10\"/>\n <text style=\"cursor: move;\" fill=\"#ffff00\" stroke-width=\"0\" x=\"690\" y=\"585\" id=\"svg_74\" font-size=\"28\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">?123</text>\n <rect fill=\"#56ffff\" stroke=\"#00ff00\" stroke-width=\"5\" x=\"880\" y=\"545\" width=\"140\" height=\"55\" id=\"svg_76\" rx=\"10\"/>\n <text fill=\"#bf0000\" stroke-width=\"0\" x=\"900\" y=\"585\" id=\"svg_77\" font-size=\"30\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\">CLEAR</text>\n </g>\n\n<text stroke=\"null\" fill=\"]]..mousecolclk..[[\" stroke-width=\"10\" x=\"]]..(screen.getMouseX()*(1024)-35)..[[\" y=\"]]..(screen.getMouseY()*(612)+40)..[[\" id=\"svg_6\" font-size=\"100\" font-family=\"Helvetica, Arial, sans-serif\" text-anchor=\"start\" xml:space=\"preserve\" font-weight=\"bold\" font-style=\"italic\">+</text>\n\n </svg>]] \n local buttonNo = evaluateButtons()\n if PWMouseDown then\n PWMouseX = screen.getMouseX()\n PWMouseY = screen.getMouseY()\n if buttonNo ~= PWButtonSelected or PWMouseX < 0.05 or PWMouseX > 0.95 or PWMouseY < 0.05 or PWMouseY > 0.95 then\n if PWButtonSelected > 0 then\n onButtonUp(PWButtonSelected)\n end\n PWButtonSelected = 0\n end \n end\n\n\n\n page = page .. [[</div></body></html>]]\n screen.setHTML(page)\n \nend\nend\n\n\n\n\n\n\n\n\n","filter":{"args":[],"signature":"start()","slotKey":"-2"},"key":"3"},{"code":"updateScreen()\n","filter":{"args":[],"signature":"update()","slotKey":"-2"},"key":"4"},{"code":"page = [[<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1024 600\"><defs><style>.cls-1{fill:#fff;}.cls-2{fill:red;}</style></defs><rect class=\"cls-1\" width=\"1024\" height=\"600\"/><rect class=\"cls-2\" width=\"1024\" height=\"281\"/><path class=\"cls-1\" d=\"M164.05,122.19V50.61h36.87q10.25,0,15.67,1.76a16.65,16.65,0,0,1,8.74,6.52,19.78,19.78,0,0,1,3.32,11.59,19.14,19.14,0,0,1-9.53,17.29,26.73,26.73,0,0,1-7.76,2.83,22,22,0,0,1,5.75,2.64A22,22,0,0,1,220.65,97a28.24,28.24,0,0,1,3.1,4.45l10.71,20.74h-25l-11.83-21.87c-1.49-2.83-2.83-4.67-4-5.52a9.24,9.24,0,0,0-5.42-1.66h-1.95v29.05Zm22.22-42.57h9.32a33.44,33.44,0,0,0,5.86-1A5.81,5.81,0,0,0,205,76.39a7.26,7.26,0,0,0-.8-9.47Q202,65.06,196,65.06h-9.71Z\"/><path class=\"cls-1\" d=\"M241.49,50.61h59.28V65.89H263.66V77.27h34.42v14.6H263.66V106h38.18v16.21H241.49Z\"/><path class=\"cls-1\" d=\"M309.9,98.51,331,97.19a16,16,0,0,0,2.78,7.82q3.42,4.33,9.76,4.34,4.74,0,7.3-2.22a6.66,6.66,0,0,0,2.57-5.15,6.58,6.58,0,0,0-2.44-5q-2.44-2.2-11.33-4.15Q325,89.58,318.84,84.16a17.48,17.48,0,0,1-6.25-13.82,18.79,18.79,0,0,1,3.19-10.43,21.25,21.25,0,0,1,9.62-7.71q6.42-2.81,17.61-2.81,13.71,0,20.92,5.1t8.57,16.24L351.65,72c-.56-3.22-1.72-5.57-3.49-7a11.21,11.21,0,0,0-7.35-2.2q-3.85,0-5.81,1.64a5,5,0,0,0-2,4,4,4,0,0,0,1.62,3.07q1.56,1.43,7.42,2.64,14.51,3.12,20.77,6.32A21.84,21.84,0,0,1,372,88.31a20.13,20.13,0,0,1,2.85,10.59A22.72,22.72,0,0,1,371,111.6a23.81,23.81,0,0,1-10.64,8.81q-6.84,3-17.24,3-18.25,0-25.29-7A27.7,27.7,0,0,1,309.9,98.51Z\"/><path class=\"cls-1\" d=\"M381,50.61h67.23V68.29H425.62v53.9H403.5V68.29H381Z\"/><path class=\"cls-1\" d=\"M458.48,122.19V50.61h36.87q10.26,0,15.67,1.76a16.61,16.61,0,0,1,8.74,6.52,19.71,19.71,0,0,1,3.32,11.59,19.16,19.16,0,0,1-9.52,17.29,26.81,26.81,0,0,1-7.77,2.83,22.21,22.21,0,0,1,5.76,2.64A22.46,22.46,0,0,1,515.08,97a28.24,28.24,0,0,1,3.1,4.45l10.71,20.74h-25l-11.82-21.87c-1.5-2.83-2.83-4.67-4-5.52a9.24,9.24,0,0,0-5.42-1.66H480.7v29.05ZM480.7,79.62H490a33.58,33.58,0,0,0,5.86-1,5.84,5.84,0,0,0,3.59-2.25,7.25,7.25,0,0,0-.81-9.47c-1.46-1.24-4.22-1.86-8.25-1.86H480.7Z\"/><path class=\"cls-1\" d=\"M536.85,50.61H559v71.58H536.85Z\"/><path class=\"cls-1\" d=\"M622.55,92.9l19.38,5.86a35.76,35.76,0,0,1-6.15,13.62,26.72,26.72,0,0,1-10.43,8.25q-6.23,2.79-15.84,2.78-11.67,0-19.07-3.39t-12.77-11.93q-5.37-8.53-5.37-21.86,0-17.76,9.45-27.3t26.73-9.54q13.53,0,21.27,5.47t11.5,16.8L621.72,76a16.85,16.85,0,0,0-2.15-4.78A12.68,12.68,0,0,0,615,67.31,14,14,0,0,0,597.5,72q-3,4.49-3,14.09,0,11.91,3.61,16.32t10.16,4.41q6.35,0,9.59-3.56T622.55,92.9Z\"/><path class=\"cls-1\" d=\"M647.64,50.61h67.24V68.29H692.32v53.9H670.2V68.29H647.64Z\"/><path class=\"cls-1\" d=\"M724.84,50.61h59.28V65.89H747V77.27h34.42v14.6H747V106h38.18v16.21H724.84Z\"/><path class=\"cls-1\" d=\"M797.4,50.61h32.86q9.72,0,15.7,2.64a25.56,25.56,0,0,1,9.89,7.57,31.3,31.3,0,0,1,5.66,11.47,53.35,53.35,0,0,1,1.76,13.87q0,11.48-2.61,17.8a29.51,29.51,0,0,1-7.25,10.59,23.69,23.69,0,0,1-10,5.69,51.48,51.48,0,0,1-13.19,2H797.4Zm22.12,16.21v39.11h5.42q6.93,0,9.86-1.53A10.39,10.39,0,0,0,839.39,99q1.67-3.83,1.66-12.42,0-11.38-3.71-15.58T825,66.82Z\"/><path class=\"cls-1\" d=\"M410.55,230.38H385.44L382,242.19H359.36l26.91-71.58h24.12l26.9,71.58H414.13ZM406,214.9l-7.9-25.73-7.82,25.73Z\"/><path class=\"cls-1\" d=\"M444.62,242.19V170.61h36.86q10.26,0,15.68,1.76a16.69,16.69,0,0,1,8.74,6.52,20.21,20.21,0,0,1-6.21,28.88,26.81,26.81,0,0,1-7.77,2.83,21.89,21.89,0,0,1,5.76,2.64,22.82,22.82,0,0,1,3.54,3.76,29,29,0,0,1,3.1,4.45L515,242.19H490l-11.82-21.87q-2.25-4.24-4-5.52a9.26,9.26,0,0,0-5.42-1.66h-2v29.05Zm22.21-42.57h9.33a33.58,33.58,0,0,0,5.86-1,5.84,5.84,0,0,0,3.59-2.25,7.25,7.25,0,0,0-.81-9.47q-2.19-1.86-8.25-1.86h-9.72Z\"/><path class=\"cls-1\" d=\"M522.06,170.61h59.28v15.28H544.23v11.38h34.42v14.6H544.23V226h38.18v16.21H522.06Z\"/><path class=\"cls-1\" d=\"M638.33,230.38H613.22l-3.49,11.81H587.15l26.9-71.58h24.13l26.9,71.58H641.91Zm-4.59-15.48-7.9-25.73L618,214.9Z\"/><path d=\"M77.59,318.57H94.11l21.56,31.68V318.57h16.68v57.27H115.67L94.23,344.4v31.44H77.59Z\"/><path d=\"M141.88,347.25q0-14,7.82-21.84t21.75-7.81q14.3,0,22,7.67t7.74,21.51q0,10-3.38,16.46a24,24,0,0,1-9.77,10q-6.37,3.57-15.91,3.58-9.69,0-16-3.09A24.13,24.13,0,0,1,145.83,364Q141.89,357.29,141.88,347.25Zm17.7.07q0,8.67,3.22,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.83-3.71t3.12-13.32q0-8.09-3.26-11.81a11.13,11.13,0,0,0-8.85-3.73,10.76,10.76,0,0,0-8.59,3.78Q159.58,338.58,159.58,347.32Z\"/><path d=\"M274.7,318.57h17.65v34.12a28.82,28.82,0,0,1-1.58,9.58,20.77,20.77,0,0,1-5,7.89,19.8,19.8,0,0,1-7.09,4.74,35.58,35.58,0,0,1-12.38,1.92,78.23,78.23,0,0,1-9.13-.59,23.88,23.88,0,0,1-8.26-2.32,20.74,20.74,0,0,1-6.07-4.94,18.05,18.05,0,0,1-3.77-6.6,34.3,34.3,0,0,1-1.64-9.68V318.57h17.66V353.5a10,10,0,0,0,2.59,7.32,11.18,11.18,0,0,0,14.38,0q2.59-2.6,2.6-7.36Z\"/><path d=\"M304.19,318.57h16.52l21.56,31.68V318.57H359v57.27H342.27L320.83,344.4v31.44H304.19Z\"/><path d=\"M405.14,366.39H385.05l-2.8,9.45H364.19l21.52-57.27H405l21.52,57.27H408ZM401.47,354l-6.33-20.58L388.89,354Z\"/><path d=\"M466.69,318.57h17.65v34.12a28.57,28.57,0,0,1-1.58,9.58,20.65,20.65,0,0,1-5,7.89,19.8,19.8,0,0,1-7.09,4.74,35.54,35.54,0,0,1-12.38,1.92,77.93,77.93,0,0,1-9.12-.59,23.75,23.75,0,0,1-8.26-2.32,20.78,20.78,0,0,1-6.08-4.94,18.2,18.2,0,0,1-3.77-6.6,34.3,34.3,0,0,1-1.64-9.68V318.57h17.66V353.5a10,10,0,0,0,2.59,7.32,11.18,11.18,0,0,0,14.38,0q2.6-2.6,2.6-7.36Z\"/><path d=\"M492,318.57h53.79v14.14H527.78v43.13H510.09V332.71H492Z\"/><path d=\"M553.91,318.57h17.7v20H591v-20h17.77v57.27H591V352.67H571.61v23.17h-17.7Z\"/><path d=\"M618.25,347.25q0-14,7.81-21.84t21.76-7.81q14.29,0,22,7.67t7.74,21.51q0,10-3.38,16.46a24.08,24.08,0,0,1-9.77,10q-6.39,3.57-15.92,3.58-9.69,0-16-3.09A24.13,24.13,0,0,1,622.2,364Q618.24,357.29,618.25,347.25Zm17.7.07q0,8.67,3.22,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.83-3.71t3.12-13.32q0-8.09-3.26-11.81a11.16,11.16,0,0,0-8.85-3.73,10.75,10.75,0,0,0-8.59,3.78Q635.95,338.58,636,347.32Z\"/><path d=\"M687.35,375.84V318.57h29.49q8.2,0,12.54,1.41a13.46,13.46,0,0,1,7,5.21,16.18,16.18,0,0,1-5,23.11,21.45,21.45,0,0,1-6.21,2.27,17.31,17.31,0,0,1,4.6,2.11,17.56,17.56,0,0,1,2.83,3,22.32,22.32,0,0,1,2.48,3.56l8.57,16.59h-20l-9.46-17.5a13.35,13.35,0,0,0-3.21-4.42,7.43,7.43,0,0,0-4.33-1.32h-1.56v23.24Zm17.78-34.06h7.46a26.65,26.65,0,0,0,4.68-.78,4.69,4.69,0,0,0,2.87-1.8,5.79,5.79,0,0,0-.64-7.58q-1.75-1.49-6.6-1.48h-7.77Z\"/><path d=\"M750.05,318.57h17.73v57.27H750.05Z\"/><path d=\"M779,318.57h50.08V330L797,363.53h33.32v12.31H776V364l31.8-33.16H779Z\"/><path d=\"M838.21,318.57h47.42V330.8H856v9.1h27.53v11.68H856v11.29h30.54v13H838.21Z\"/><path d=\"M896.26,318.57h26.29q7.77,0,12.56,2.11a20.52,20.52,0,0,1,7.91,6.06,25.15,25.15,0,0,1,4.53,9.18A42.44,42.44,0,0,1,949,347q0,9.18-2.09,14.24a23.5,23.5,0,0,1-5.8,8.48,19,19,0,0,1-8,4.55,41.07,41.07,0,0,1-10.54,1.56H896.26Zm17.69,13v31.29h4.34q5.55,0,7.89-1.23a8.31,8.31,0,0,0,3.67-4.3q1.33-3.06,1.33-9.94,0-9.11-3-12.46t-9.84-3.36Z\"/><path d=\"M244.48,414.57h29.41q9.62,0,14.4,4.57t4.78,13q0,8.67-5.21,13.56t-15.92,4.88h-9.69v21.25H244.48ZM262.25,439h4.34q5.12,0,7.19-1.78a5.72,5.72,0,0,0,2.07-4.55,6.35,6.35,0,0,0-1.8-4.57q-1.8-1.87-6.76-1.88h-5Z\"/><path d=\"M302.29,414.57h47.42V426.8H320v9.1h27.54v11.68H320v11.29h30.54v13H302.29Z\"/><path d=\"M360.34,471.84V414.57h29.49q8.21,0,12.54,1.41a13.4,13.4,0,0,1,7,5.21,16.17,16.17,0,0,1-5,23.11,21.41,21.41,0,0,1-6.22,2.27,17.25,17.25,0,0,1,4.61,2.11,18,18,0,0,1,2.83,3,22.32,22.32,0,0,1,2.48,3.56l8.57,16.59h-20l-9.46-17.5a13.22,13.22,0,0,0-3.2-4.42,7.43,7.43,0,0,0-4.33-1.32h-1.57v23.24Zm17.77-34.06h7.46a26.71,26.71,0,0,0,4.69-.78,4.72,4.72,0,0,0,2.87-1.8,5.79,5.79,0,0,0-.64-7.58q-1.75-1.49-6.6-1.48h-7.78Z\"/><path d=\"M419.25,452.89l16.83-1.05a12.9,12.9,0,0,0,2.23,6.25,9.35,9.35,0,0,0,7.81,3.48,8.67,8.67,0,0,0,5.84-1.78,5.32,5.32,0,0,0,2.05-4.12,5.26,5.26,0,0,0-1.95-4q-1.95-1.76-9.06-3.32-11.64-2.61-16.61-6.95a14,14,0,0,1-5-11.06A15.08,15.08,0,0,1,424,422a17,17,0,0,1,7.7-6.17q5.13-2.23,14.08-2.24,11,0,16.74,4.08t6.85,13l-16.68,1a7.79,7.79,0,0,0-8.67-7.38,7.14,7.14,0,0,0-4.65,1.31,4,4,0,0,0-1.56,3.18,3.16,3.16,0,0,0,1.29,2.46q1.24,1.14,5.94,2.11,11.6,2.51,16.62,5.06a17.42,17.42,0,0,1,7.3,6.35,16,16,0,0,1,2.29,8.48,18.16,18.16,0,0,1-3.05,10.15,19.06,19.06,0,0,1-8.51,7.05,34.47,34.47,0,0,1-13.79,2.41q-14.61,0-20.24-5.63A22.17,22.17,0,0,1,419.25,452.89Z\"/><path d=\"M477.88,443.25q0-14,7.81-21.84t21.76-7.81q14.3,0,22,7.67t7.73,21.51q0,10-3.37,16.46a24.08,24.08,0,0,1-9.77,10q-6.39,3.57-15.92,3.58-9.69,0-16-3.09a24.1,24.1,0,0,1-10.3-9.77Q477.88,453.29,477.88,443.25Zm17.69.07q0,8.67,3.23,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.82-3.71t3.13-13.32q0-8.09-3.26-11.81a11.16,11.16,0,0,0-8.85-3.73,10.75,10.75,0,0,0-8.59,3.78Q495.56,434.58,495.57,443.32Z\"/><path d=\"M546.86,414.57h16.53L585,446.25V414.57h16.68v57.27H585L563.5,440.4v31.44H546.86Z\"/><path d=\"M613.5,414.57H630l21.56,31.68V414.57h16.68v57.27H651.59L630.14,440.4v31.44H613.5Z\"/><path d=\"M680,414.57h47.42V426.8H697.72v9.1h27.54v11.68H697.72v11.29h30.55v13H680Z\"/><path d=\"M737.8,414.57h17.7v43.17h27.61v14.1H737.8Z\"/><path d=\"M58.11,510.57H91.24q8.28,0,12.71,4.1a13.28,13.28,0,0,1,4.44,10.16,12.8,12.8,0,0,1-3.17,8.71,14,14,0,0,1-6.17,3.83q6.18,1.49,9.08,5.1a14,14,0,0,1,2.91,9.08,15.62,15.62,0,0,1-2.07,8,15.26,15.26,0,0,1-5.66,5.62,18.73,18.73,0,0,1-6.72,1.88,77.57,77.57,0,0,1-7.93.78H58.11ZM76,533h7.7q4.14,0,5.76-1.42A5.2,5.2,0,0,0,91,527.49a4.91,4.91,0,0,0-1.62-3.91q-1.62-1.41-5.64-1.41H76Zm0,22.5h9c3.05,0,5.19-.54,6.44-1.62a5.46,5.46,0,0,0,1.88-4.35,5,5,0,0,0-1.86-4.08q-1.85-1.54-6.5-1.55H76Z\"/><path d=\"M120.26,510.57h47.42V522.8H138v9.1h27.54v11.68H138v11.29h30.54v13H120.26Z\"/><path d=\"M172.29,510.57H192l11.54,19.32,11.56-19.32H234.6l-22.27,33.28v24H194.6v-24Z\"/><path d=\"M233.27,539.25q0-14,7.81-21.84t21.76-7.81q14.3,0,22,7.67t7.74,21.51q0,10-3.38,16.46a24.08,24.08,0,0,1-9.77,10q-6.39,3.57-15.92,3.58-9.69,0-16-3.09a24.15,24.15,0,0,1-10.3-9.77Q233.27,549.29,233.27,539.25Zm17.69.07q0,8.67,3.23,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.83-3.71t3.12-13.32q0-8.09-3.26-11.81A11.16,11.16,0,0,0,262.8,523a10.75,10.75,0,0,0-8.59,3.78Q251,530.57,251,539.32Z\"/><path d=\"M302.25,510.57h16.53l21.56,31.68V510.57H357v57.27H340.34L318.89,536.4v31.44H302.25Z\"/><path d=\"M369,510.57H395.3q7.77,0,12.56,2.11a20.44,20.44,0,0,1,7.91,6.06,25.15,25.15,0,0,1,4.53,9.18A42.44,42.44,0,0,1,421.71,539q0,9.18-2.09,14.24a23.75,23.75,0,0,1-5.8,8.48,19.1,19.1,0,0,1-8,4.55,41.14,41.14,0,0,1-10.55,1.56H369Zm17.7,13v31.29H391q5.55,0,7.89-1.23a8.33,8.33,0,0,0,3.68-4.3q1.32-3.06,1.32-9.94,0-9.11-3-12.46c-2-2.24-5.26-3.36-9.84-3.36Z\"/><path d=\"M453.66,510.57h53.79v14.14H489.4v43.13H471.71V524.71h-18Z\"/><path d=\"M515.54,510.57h17.69v20h19.34v-20h17.77v57.27H552.57V544.67H533.23v23.17H515.54Z\"/><path d=\"M582.8,510.57h17.74v57.27H582.8Z\"/><path d=\"M610.14,548.89l16.84-1a12.8,12.8,0,0,0,2.23,6.25,9.34,9.34,0,0,0,7.81,3.48,8.69,8.69,0,0,0,5.84-1.78,5.32,5.32,0,0,0,2-4.12,5.26,5.26,0,0,0-1.95-4q-2-1.75-9.07-3.32-11.64-2.61-16.6-7a14,14,0,0,1-5-11.06,15.08,15.08,0,0,1,2.56-8.34,17,17,0,0,1,7.7-6.17q5.13-2.23,14.08-2.24,11,0,16.74,4.08t6.85,13l-16.68,1a7.79,7.79,0,0,0-8.67-7.38,7.1,7.1,0,0,0-4.65,1.31,4,4,0,0,0-1.56,3.18,3.16,3.16,0,0,0,1.29,2.46q1.24,1.14,5.94,2.11,11.6,2.5,16.62,5.06a17.48,17.48,0,0,1,7.3,6.35,16,16,0,0,1,2.29,8.48,18.16,18.16,0,0,1-3.05,10.15,19.06,19.06,0,0,1-8.51,7,34.47,34.47,0,0,1-13.79,2.41q-14.61,0-20.24-5.63A22.23,22.23,0,0,1,610.14,548.89Z\"/><path d=\"M697.61,510.57H727q9.62,0,14.39,4.57t4.79,13q0,8.67-5.22,13.56t-15.91,4.88h-9.69v21.25H697.61ZM715.38,535h4.33c3.42,0,5.81-.59,7.19-1.78a5.72,5.72,0,0,0,2.07-4.55,6.38,6.38,0,0,0-1.79-4.57c-1.2-1.25-3.46-1.88-6.76-1.88h-5Z\"/><path d=\"M753.23,539.25q0-14,7.81-21.84t21.76-7.81q14.3,0,22,7.67t7.74,21.51q0,10-3.38,16.46a24.08,24.08,0,0,1-9.77,10q-6.39,3.57-15.92,3.58-9.69,0-16-3.09A24.13,24.13,0,0,1,757.18,556Q753.22,549.29,753.23,539.25Zm17.7.07q0,8.67,3.22,12.46a10.9,10.9,0,0,0,8.77,3.79q5.7,0,8.83-3.71t3.12-13.32q0-8.09-3.26-11.81a11.15,11.15,0,0,0-8.85-3.73,10.75,10.75,0,0,0-8.59,3.78Q770.93,530.57,770.93,539.32Z\"/><path d=\"M822.8,510.57h17.74v57.27H822.8Z\"/><path d=\"M853.35,510.57h16.52l21.56,31.68V510.57h16.68v57.27H891.43L870,536.4v31.44H853.35Z\"/><path d=\"M915.85,510.57h53.79v14.14h-18v43.13H933.9V524.71h-18Z\"/></svg>]]\nscreen.setHTML(page)\ndoor.deactivate()","filter":{"args":[],"signature":"stop()","slotKey":"-2"},"key":"5"}],"methods":[],"events":[]}  
  9. Like
    Zamiel7 got a reaction from Heidenherz in How Much Can Your Ship Carry?   
    Fair enough, I suppose. That being said, if you're going to flex on people for "doing it wrong" and not share with the class how you're "doing it right," people are bound to be a little skeptical ?
  10. Like
    Zamiel7 reacted to Moosegun in What is the deal with voxel obstruction?   
    Not actually true, voxels SHOULD effect element placing and they do show as effecting it within build mode, if you place voxels behind an engine etc it will turn red, which is supposed to show it has reduced output, if you look in your reports when flying the ship you will see that all the elements should have reduced effectiveness due to being blocked.  This mean that whilst you ship can function, its performance is greatly reduced.  How well this reduction is working in game I couldnt tell you, slightly surprised you didnt show us an image of your actually flight performance, rather than this image, which really doesnt show us much.

    Trying to work out if this is a post based on actual evidence (that the output reduction is not working) or a knee jerk post from the new player.
     

    Here is a test i did, see one engine is covered by voxels and is showing red

    Here is the readout showing the element is 86% obstructed, which suggests that you conclusion that voxels do not effect element performance might be a little wide of the mark.
  11. Like
    Zamiel7 reacted to Cytoxx in Space Radar   
    Just found out recently when using 'V' I do see whoever is around me.
    Not blind anymore - now I'm comfortable hitting space any time
  12. Like
    Zamiel7 reacted to Cytoxx in Space Radar   
    Yesterday I wanted to fly from Jago to Teoma.
    After a while just before reaching maximum speed I got one-shotted (I guess - since I only received the message that I died and was back at my base).
    I didn't even realize that I was getting attacked. And, blue-eyed as I was, I didn't had a radar installed.
     
    Today I rebuilt my ship, plus an XS space radar. On my way again to Teoma!
    Just after exiting the safe zone (the radar doesn't work inside that zone), the radar shows me some text: an entity with name i.e. Luna, plus a distance - 0.5su, and that I'm out of range (for a lock-on I guess).
    That distance slowly increased, so I think it was static. I looked around, couldn't see anything in my vicinity.
     
    Now some questions I would like to have cleared up, please:
     
    - If I encounter somebody and it's coming closer, how do I know in what direction to fly for avoiding it?
    - How do pirates know where I am (maybe even in which direction I'm flying and my speed) so they can intercept and attack me?
     
     
     
     
     
  13. Like
    Zamiel7 reacted to JohnnyTazer in Predictions and Ore Shortages   
    I try to let people know, but mining high tier ore on moons is a waste of time even after a fresh reset.  They are crazy rare.  Almost all the veterans know that.  If you are looking for a specific ore thats T2 ore above, its always better to go to a planet that has it.  ALWAYS.  Its a trap some new people fall into.  "oh man i have to travel 3 hours to go mine gold?....wait there is some on this moon!" 
  14. Like
    Zamiel7 reacted to Anderson Williams in Leaving safe zone is consenting to PvP.   
    Thats not accurate especially in the context you have supplied. Lets say I played a game like Star-craft and was destroying my buddies base. By your assertion if I kill all of his units he continues to spawn I am a griefer. If I played a full loot MMO, which we do... and the target I have selected to fight has armored their core, as they should it will take me time to kill it. 

    If you say that me killing the same guy 10 times to get to his core is griefing, then what you are saying is... Once i shoot his ship and he dies, thats it I should disengage and move on. Not kill the ship, not be rewarded for pvping by taking the ship. I kill the guy one time, and he gets to say 'oh gee willickers you got me!' respawn, get back in his ship and leave. No thats not how it works.
    You are suggesting that by playing the game, as it is intended to be played... we are bad people. Thats not true nor accurate.
    There are no social consequences, this comment could be misconstrued in a way to suggest that if someone kills you or someone else... YOU may do something bad to them. IRL.
    This is the long and short of it.
    No.


    So I just wanna say, though my opinion is stupid and no one really cares... that the game has pvp. The game has pvp orgs which are large and like to fight. They are bound, because so many of you feel pvp shouldn't exist or safe zones for days. I told you how this was gonna go and none of you listened. Since you forced pvpers to have very limited means to pvping they have to take what they can get. So they hunt the commerce and trade lanes.

    When atmo pvp comes... there are gonna be wars. Empire vs NG, or like BOO vs NG, or like numerous other orgs vs NG/DSI/Others.. and its gonna be a blast. You guys will have the occasional commerce raiding but we are gonna be hunting each other and we will not cry and whine about it.

    The real problem here is that you guys feel you should not have to endure any risk for your reward, which borks the game. You guys made your own orgs because you wanna make something and be the leader, and instead of joining a larger more powerful org and working out how to PROTECT your convoys you felt that we should just ignore you because thats how its gonna work.

    Thats not.. at all how its going to work.


    But you lads will learn in time. Build relations with pvp orgs, join orgs that will protect you! Form mutual defense treaties... all of that stuff. Stop sitting in your corner playing blocks in a warzone, saying that no one should be able to touch your block city because... you built it. Imagine how this will work when they implement defense mechanisms, imagine that NQ will create a way for you to protect your ships that you wont even bother to learn because 'eww'. And you will still die. Then you will whine that you died from pvp, in a game with pvp, in an area that is clearly marked, for pvp.

    Join a pvp org, there are so many orgs offering defense for your convoys, there are ways around getting killed in the pipe. We see people defeating our tactics almost daily... when atmo pvp comes there will be wars between the larger orgs and you guys are gonna have a blast. Stop being salty over what is actually alot of fun. And Joacorderio stop projecting. C'mon hugs for everyone!
  15. Like
    Zamiel7 reacted to Mordgier in The Point of Designing a Cool Ship?   
    PVP needs to be rebalanced from the ground up.
     
    Hit chance needs to be entirely based on the profile of the ship from the angle it's being shot at - not the core size.
     
    Vector differences must play a much larger role. 
     
    L weapons should have tracking that is pitiful. An L missile should simply be unable to effectively hit a small ship that is changing it's vector.
     
    HP of voxels need to be rebalanced from the ground up and not just be weight based. More complicated to make voxels should have benefits over simple to make voxels.
     
    A power system needs to be added to further cripple xs ships mounting L weapons - it should be viable to mount upsized guns, but it should come with some serious downsides - IE having to have a ton of capacitors that get drained fully just from a single shot and need time to recharge etc.
     
     
    I disagree that building good looking ships for pvp is pointless. It doesn't matter if your cube is shot up or your pretty pirate ship. You're likley going to be scrapping them both and redeploying from BP anyway because fixing voxels currently is too much of a hassle. Easier to scrap and redeploy.
     
    The only reason people are doing cubes currently is that there is an advantage for filling the build grid but no penalties.
     
    Ultimately a pvp ship that doesn't get hit due to a small profile is better than one that gets hit a bunch but lives - you don't have to fix the ship that never got hit.
  16. Like
    Zamiel7 got a reaction from HairballHacker in Leaving safe zone is consenting to PvP.   
    Attempting to extrapolate any kind of concrete truths about a person's morality from how they play a videogame is so incredibly sophomoric. It's the rough equivalent of someone trying to diagnose mental illness after taking one psychology class. No reasonable person would take an argument like that seriously.
  17. Like
    Zamiel7 reacted to JohnnyTazer in Leaving safe zone is consenting to PvP.   
    Morals in a video game where we have fun and shoot space lazers at internet pixels, and have the ability to say "good fight!" after its over whether you win or lose.  Ok buddy.  You do you.
  18. Like
    Zamiel7 reacted to Mod-Mondlicht in PVP possible in "Safe Zone"   
    Hey folks,
     
    first of all: don't tell others their statement is "bullshit" or that their assumption is "stupid" - this doesn't help anyone. Keep it nice and let the other party know that you disagree with them in a polite way. Thanks!
     
    Now on topic
    All I can tell you so far is that a formal policy will follow soon.
     
    I don't speak for NQ now, but I want to help evaluate the situation for the time being. It's a bit of a long read, but there will be a short version at the end - don't jump there if you don't want any spoilers 
     
    As I see it there is a very basic concept to consider. First of all there's the question of what we do know and what we don't. Next how to make an educated guess about things we do not know for sure just yet. Since @NQ-Naerais gave a very clear statement about the "zero tolerance policy towards cheating and exploiting" in that previously linked announcement, I think it would be a good idea to start with the definition of exploits, because I don't see this provided by NQ yet. In case I just missed it, please point me towards it - thanks in advance.
     
    In order to make an educated guess about what might or might not be considered an exploit I'll just use the first reference that comes to mind: Wikipedia article "Video game exploit"
    And I quote the first sentence:
    I don't know if NQ shares this exact definition, but I think it's good enough for this evaluation.
    Now that we got this covered it leads us to the next question: What is the intent of the game's designer here?
     
    Having read this thread I think everyone agrees that the intent of the maneuver permission on own tiles is to enable landowners to move all constructs out of the way that are parked on their tile. So far so easy.
     
    Where people seem to disagree is on the question if this permission is intended to allow docking such constructs in order to take them away far outside the boundaries of the maneuver tool and the owned tile(s) on or for which the permission has been granted in the first place.
     
    But there's a problem - I can't find a Wikipedia article about NQ's intent regarding this. So if we want to proceed to evaluate the situation before that formal policy is released we have to find a different approach.
     
    Again, having read this thread I took note about your opinions and while some aren't exactly clear, I found that 4 people are in favor of this being intended/allowed, while 11 people oppose that assessment/opinion. Further I found 1 "probably in favor" and 3 "probably against" as well as 2 more people against it who added some constraints like "stealing in general would be cool, but not like this" or "against it but don't think it's an exploit". Don't confuse these numbers with a vote tho - it's just an observation and I don't even guarantee that I got everything right  
     
    So this is just a very rough approximation, but to sum it up:
    5 people think it's more or less ok
    16 people think it's not ok
     
    Now I could try to make an educated guess based on this and say that the landowner's maneuver permission is probably not intended to be used for docking. That right to maneuver is probably just intended to be used to maneuver constructs off the landowners claimed tile in order to solve another issue and nothing else. So just based on your comments here the probability for this being an exploit is rather high.
     
    Granted, it's always hard to guess someone's intent and to base this on the opinions of players instead of Novaquark employees further dilutes the accuracy of this speculation. But if we include the possibility that NQ might take players' feedback into their considerations, it counteracts this dilution a bit.
     
    I can't tell you what is going to happen or what that formal policy is going to say, but personally I'd like to strongly advise against using this mechanic to dock and abduct for the time being. At the very best I think it's dangerous to do it - especially since there is a certain level of awareness that there's a good chance it will actually be considered an exploit and it may be hard to claim "But I didn't know!" - pure speculation on my part tho and just meant to convey why I think it's a dangerous path to follow.
     
    If you remember the aforementioned "zero tolerance policy" regarding exploits, at least I wouldn't want to take that chance even if I rounded the numbers down to "only" 3 to 1 against me. Or if I move the "3 probably against" from the original numbers towards the "in favor" side it still results in 13 to 8 against and I wouldn't bet my access on odds like these. But it's your account and your own risk to take if you decide to go for it anyways - after all, as moderator, as said repeatedly, I don't speak for NQ regarding game-related things.
     
     
    So much for the evaluation. My guess is as good as yours, but if I may further add my own opinion/guess: since construct owners have to deliberately grant the "maneuver construct" permission using the RDMS, it's clear that it's not meant to be granted to enemies. I see the fact that this permission is being granted to landowners as an exception that's solely meant to solve an actual issue and for nothing else. I think it's meant to enable landowners to help them keep their land usable and this permission should not transpire outside the owner's land in any form. That should exclude the option to use it to dock constructs to your own if not granted explicitly through the RDMS by the owner of the parked construct.
     
    You remember the "EVE doesn't give you a warning" sentiment on this thread, which was countered by "this isn't EVE"? Just consider that DU gives everyone a distance indication as soon as they approach or leave the PVP Zone. Players flying towards a planet get a notification that reads something along the lines of "You have entered the Safe Zone". Again, not speaking for NQ, but I think planet surfaces so far are "intended to become unsafe" once territorial warfare gets introduced - not before.
     
    I think attacking from non-pvp space into pvp space is clearly not ok, but the only thing I actually know is that a formal policy will follow soon. Again, until then I just recommend to think twice about how sure you are regarding the developer's intend.
     
    When you confirmed the existence of a "possible exploit" and there's any doubt if this is intended, the safest route to take is: make a report and get permission first before you use it. In that case you will always have the report on your side for the first time you did it, if it remains the only time you did it. This is just in case if it will actually be considered an exploit that you just discovered. I think exploits don't need to be specifically listed in order to be punished, because you can't list anything that has not been discovered yet  
     
    Here's the promised short version. The whole essay above boils down to:
     
    Mellow greetings
    Mondlicht
  19. Like
    Zamiel7 got a reaction from figuah in New Player Experience is bad because of distance to free tiles   
    Yeah, I mean, I'm all for improving the new player experience since it's so important for a game like this, but if players are getting turned off explicitly because of 20-30km travel times, then they simply aren't going to enjoy this game regardless. This is not a game for people who want instant gratification, and no amount of improvements to the new player experience are going to change that.
  20. Like
    Zamiel7 got a reaction from GraXXoR in PVP possible in "Safe Zone"   
    I think it's important when discussing mechanics to avoid falling into the trap of arguing semantics. Whether or not this behavior is techincally a bug or not doesn't mean much; all that matters is whether NQ specifically deems it an exploit of game mechanics. Personally, I don't think it's actually that clear-cut of an abuse, and it could go either way.
     
    What we have here is a fairly straightforward application of established game mechanics. As has been stated, you need to be able to maneuver dynamic constructs on your territory to prevent people from just dropping a big box ship over your stuff and preventing you from leaving or accessing it. That much is clear and sensible, and it likely won't change. Claiming territory that has a ship parked on it with the intent of maneuvering that ship onto a larger dynamic core and then ferrying it off to the PvP Zone for breaking it down and stealing it is a complex application of the mechanic in question, and it does require a lot of variables to be true for it to work:
    The dynamic construct has to located on an unclaimed tile. The owner of the construct has to be offline or otherwise away from the ship for long enough for the "aggressor" to claim the territory (15 minutes), maneuver the ship onto a larger construct (~30 seconds), and then fly that construct into a PvP zone and destroy it (hard to estimate how long this would take, but I reckon it could be done in about 20-30 minutes if it took place on Alioth, for example). The "aggressor" needs to have a larger core sized construct than the "victim" that can lift the stolen craft into space and haul it to the PvP zone (easy enough for XS/S cores, but more difficult for M cores like the OP's example). Besides all of these variables, the "aggressor" also has to deem that it's even worth it to steal the ship. Claiming the territory is probably going to at least cost over 100,000 quantas because it's unlikely anyone doing this doesn't already have territory claimed (though it's entirely possible they have a friend who hasn't claimed territory and can do it for free, I suppose), so it's not going to be worth it to steal new players' ships that are going to be worth less than that. Sure, some people might "do it for lols" but I can't imagine that will happen a whole lot. The real victims here are going to be people that have stuff actually worth stealing who, presumably, have a better working understanding of the game.
     
    However, even with all this said, I can see this becoming a problem if a lot of people start doing it. It would be pretty simple to design a Medium or Large ship that's sole purpose is to troll around looking for people parked on unclaimed territory, then quickly and efficiently steal their ships. It would still require the victim to not be paying attention for a decent period of time though, so NQ's ruling on this could go either way.
  21. Like
    Zamiel7 got a reaction from Anopheles in New Player Experience is bad because of distance to free tiles   
    This point about Sanctuary is spot on. It doesn't make a lot of sense that the game starts players on Alioth, asks them to move to Sanctuary to finish the tutorial, and then the mechanics of the game essentially force them to either move back to Alioth or another planet if they want to progress at a reasonable pace. It would make a lot more sense to start players on Sanctuary, have them complete the basic tutorial of the game there, and then have that basic intro conclude on one of the Districts of Alioth where they can either complete the rest of the available tutorials or forge out on their own.
     
    Sanctuary is a deadend. There is currently no reason to be there other than the game telling you to go there, but it could have some value as the literal starting place for new players who are just trying to learn the basic mechanics. It just doesn't make sense to move players there if they aren't starting there.
  22. Like
    Zamiel7 reacted to Frigidman in New Player Experience is bad because of distance to free tiles   
    Well, on the side topic about if Alioth (or any of the current safe zone) suddenly becomes PVP, I can assure you the loss of subscriptions will outweigh the gain of any new subscriptions because of that change. So as a business decision, it would be in their best interest to leave the 'safe zones' as they are, and simply expand the universe with more systems that are hostile with greater rewards and reasons to venture to them.
     
    As it stands now, this game is 'one system'. Hardly the "Universe" they tout it as. Expanding outward, to many systems, is what they should focus on... not cutting back on what exists and alienating a chunk of their playerbase for no good reason than to troll their own customers.
     
  23. Like
    Zamiel7 got a reaction from michaelk in New Player Experience is bad because of distance to free tiles   
    This point about Sanctuary is spot on. It doesn't make a lot of sense that the game starts players on Alioth, asks them to move to Sanctuary to finish the tutorial, and then the mechanics of the game essentially force them to either move back to Alioth or another planet if they want to progress at a reasonable pace. It would make a lot more sense to start players on Sanctuary, have them complete the basic tutorial of the game there, and then have that basic intro conclude on one of the Districts of Alioth where they can either complete the rest of the available tutorials or forge out on their own.
     
    Sanctuary is a deadend. There is currently no reason to be there other than the game telling you to go there, but it could have some value as the literal starting place for new players who are just trying to learn the basic mechanics. It just doesn't make sense to move players there if they aren't starting there.
  24. Like
    Zamiel7 reacted to Frigidman in New Player Experience is bad because of distance to free tiles   
    This Exactly!
     
    It was our thought as well after having completed the tutorial and ending there, and then we realized .... hmm ... we should move all this back to Alioth and just make "Home" there to launch out from.
     
    Alioth as well could have more of the advanced tutorials (the military, organization, and industrial schools). Keeping those off and out of the Sanctuary districts... keeping Sanctuary truly the place for people to get their feet wet with the basics of simple mining and building to learn how to exist.
     
    They could even then go so far, as when you place your first real TCU, the SCU you placed is removed 1 week later, abandoning any and all things left there for newbs to hunt and pick over (if you happened to leave anything behind).
     
     
  25. Like
    Zamiel7 got a reaction from Frigidman in New Player Experience is bad because of distance to free tiles   
    This point about Sanctuary is spot on. It doesn't make a lot of sense that the game starts players on Alioth, asks them to move to Sanctuary to finish the tutorial, and then the mechanics of the game essentially force them to either move back to Alioth or another planet if they want to progress at a reasonable pace. It would make a lot more sense to start players on Sanctuary, have them complete the basic tutorial of the game there, and then have that basic intro conclude on one of the Districts of Alioth where they can either complete the rest of the available tutorials or forge out on their own.
     
    Sanctuary is a deadend. There is currently no reason to be there other than the game telling you to go there, but it could have some value as the literal starting place for new players who are just trying to learn the basic mechanics. It just doesn't make sense to move players there if they aren't starting there.
×
×
  • Create New...