Magus

(Wiremod Expression 2) Lodkagan Login Example

Aug 3rd, 2012
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 16.56 KB | None | 0 0
  1. @name Admin Screen
  2. @inputs EGP:wirelink Key
  3. @outputs
  4. @persist [Offset_X Offset_Y Menu Interval Set]:number
  5. @persist [S UN PW LoginName SearchByName]:string
  6. @persist E:entity
  7. @trigger
  8. # Expression 2 Chip by Magus / Lodkagan
  9. # Example for the Login Library
  10. #[ --- Used EGP ID's ---
  11.     function background
  12.     01 Background
  13.     02 Taskbar
  14.     03 Taskbar (Line)
  15.     04 Time    (Text)
  16.    
  17.     function menu01
  18.     05 Login Screen (Box)
  19.     06 Login Screen (Text)
  20.     07 Login Screen (TextLine)
  21.     08 Rounded Box  (Username)
  22.     09 Rounded Box  (Password)
  23.     10 Name         (Text)
  24.     11 Pass         (Text)
  25.     12 Input Name   (Input Text) (Max 10)
  26.     13 Input Pass   (Input Text) (Max 10)
  27.     14 Wrong PW/UN  (Text)
  28.    
  29.     function menu02
  30.     05 Background
  31.     06 Text Layout
  32.     07 Rounded Box  (Input)
  33.     08 Text Input
  34.    
  35.     function menu03
  36.     05 Background
  37.     06 Rounded Box  (Input)
  38.     07 Text Input
  39.    
  40.     function menu04
  41.     05 Background
  42.     06 Rounded Box  (Input)
  43.     07 Text Input
  44.    
  45.     function menu05
  46.     05 Background
  47.     06 Rounded Box  (Input)
  48.     07 Text Input
  49.    
  50.     function menu06
  51.     05 Background
  52.     06 Rounded Box  (Input)
  53.     07 Text Input
  54.    
  55.     function menu07
  56.     05 Background
  57.     06 Rounded Box  (Input)
  58.     07 Text Input
  59.    
  60.     function menu08
  61.     05 Background
  62.     06 Rounded Box  (Input)
  63.     07 Text Input
  64.    
  65.     function menu09
  66.     05 Background
  67.     06 Rounded Box  (Input)
  68.     07 Text Input
  69.    
  70.     function menu10
  71.     05 Background
  72.     06 Rounded Box  (Input)
  73.     07 Text Input
  74.    
  75.     function menu11
  76.     05 Background
  77.     06 Rounded Box  (Input)
  78.     07 Text Input
  79. ]#
  80.  
  81. interval(Interval)
  82.  
  83. if(first()) {
  84.     # --- Includes ---
  85.     #include "lib/login"
  86.    
  87.     # ------------------------------------------------------------------------
  88.     # --- Config ---
  89.     # ------------------------------------------------------------------------
  90.     Offset_X = 0    # X Offset (Default: 0)
  91.     Offset_Y = 0    # Y Offset (Default: 0)
  92.     Interval = 1500 # ChipSpeed in Milliseconds (Default: 1500 ( 1.5 sec. ))
  93.    
  94.     addUser("Magus","Test")
  95.     addUser("Admin","Password")
  96.    
  97.     # ------------------------------------------------------------------------
  98.     # --- Functions ---
  99.     # ------------------------------------------------------------------------
  100.    
  101.     function void background() {
  102.         EGP:egpClear()
  103.        
  104.         EGP:egpRoundedBox(1,vec2(256+Offset_X,256+Offset_Y),vec2(512,512))
  105.         EGP:egpColor(1,vec4(0,0,255,255))
  106.        
  107.         EGP:egpBox(2,vec2(256+Offset_X,501+Offset_Y),vec2(512,21))
  108.         EGP:egpColor(2,vec4(255,255,255,255))
  109.        
  110.         EGP:egpLine(3,vec2(450+Offset_X,490+Offset_Y),vec2(450+Offset_X,512+Offset_Y))
  111.         EGP:egpSize(3,3)
  112.         EGP:egpColor(3,vec4(0,0,0,255))
  113.        
  114.         EGP:egpText(4,time("hour")+":"+time("min"),vec2(455+Offset_X,492+Offset_Y))
  115.         EGP:egpColor(4,vec4(0,0,0,255))
  116.     }
  117.    
  118.     function void menu01() {
  119.         background()
  120.        
  121.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(175,125))
  122.         EGP:egpColor(5,vec4(150,150,150,255))
  123.        
  124.         EGP:egpText(6,"Login Screen",vec2(210+Offset_X,200+Offset_Y))
  125.         EGP:egpColor(6,vec4(255,0,0,255))
  126.        
  127.         EGP:egpLine(7,vec2(169+Offset_X,220+Offset_Y),vec2(344+Offset_X,220+Offset_Y))
  128.         EGP:egpSize(7,3)
  129.         EGP:egpColor(7,vec4(0,0,0,255))
  130.        
  131.         EGP:egpRoundedBox(8,vec2(280+Offset_X,250+Offset_Y),vec2(120,15))
  132.         EGP:egpColor(8,vec4(255,255,255,255))
  133.        
  134.         EGP:egpRoundedBox(9,vec2(280+Offset_X,280+Offset_Y),vec2(120,15))
  135.         EGP:egpColor(9,vec4(255,255,255,255))
  136.        
  137.         EGP:egpText(10,"Name:",vec2(170+Offset_X,240+Offset_Y))
  138.         EGP:egpColor(10,vec4(255,0,0,255))
  139.        
  140.         EGP:egpText(11,"  Pass:",vec2(170+Offset_X,270+Offset_Y))
  141.         EGP:egpColor(11,vec4(255,0,0,255))
  142.        
  143.         EGP:egpText(12,"",vec2(230+Offset_X,240+Offset_Y))
  144.         EGP:egpColor(12,vec4(0,0,0,255))
  145.        
  146.         EGP:egpText(13,"",vec2(230+Offset_X,270+Offset_Y))
  147.         EGP:egpColor(13,vec4(0,0,0,255))
  148.        
  149.         EGP:egpText(14,"Invalid ID and Pwd!",vec2(185+Offset_X,295+Offset_Y))
  150.         EGP:egpColor(14,vec4(255,0,0,255))
  151.        
  152.         Menu = 1.0
  153.     }
  154.    
  155.     function void menu02() {
  156.         background()
  157.        
  158.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  159.         EGP:egpColor(5,vec4(150,150,150,255))
  160.        
  161.         EGP:egpTextLayout(6,"
  162.        01 - Get Player Status
  163.        02 -
  164.        03 -
  165.        04 -
  166.        05 -
  167.        06 -
  168.        07 -
  169.        08 -
  170.        09 -
  171.        80 - add new User
  172.        90 - Abmelden
  173.        ",vec2(81+Offset_X,81+Offset_Y),vec2(406+Offset_X,406+Offset_Y))
  174.        
  175.         EGP:egpRoundedBox(7,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  176.         EGP:egpColor(7,vec4(255,255,255,255))
  177.        
  178.         EGP:egpText(8,"",vec2(115+Offset_X,390+Offset_Y))
  179.         EGP:egpColor(8,vec4(0,0,0,255))
  180.        
  181.         Menu = 2.0
  182.     }
  183.    
  184.     function void menu03() { # 01
  185.         background()
  186.        
  187.         S = ""
  188.        
  189.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  190.         EGP:egpColor(5,vec4(150,150,150,255))
  191.        
  192.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  193.         EGP:egpColor(6,vec4(255,255,255,255))
  194.        
  195.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  196.         EGP:egpColor(7,vec4(0,0,0,255))
  197.        
  198.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  199.         EGP:egpColor(8,vec4(50,150,0,255))
  200.        
  201.         EGP:egpText(9,"Enter a name to search the player.",vec2(115+Offset_X,370+Offset_Y))
  202.         EGP:egpColor(9,vec4(255,0,0,255))
  203.        
  204.         # Player stats
  205.        
  206.         EGP:egpText(10,E:name(),vec2(230+Offset_X,100+Offset_Y))
  207.         EGP:egpColor(10,vec4(255,0,0,255))
  208.        
  209.         EGP:egpText(11,"Health: "+E:health(),vec2(120+Offset_X,140+Offset_Y))
  210.         EGP:egpColor(11,vec4(255,0,0,255))
  211.        
  212.         EGP:egpText(12,"Armor: "+E:armor(),vec2(120+Offset_X,160+Offset_Y))
  213.         EGP:egpColor(12,vec4(255,0,0,255))
  214.        
  215.         EGP:egpText(13,"Pos X: "+round(E:pos():x()),vec2(120+Offset_X,200+Offset_Y))
  216.         EGP:egpColor(13,vec4(255,0,0,255))
  217.        
  218.         EGP:egpText(14,"Pos Y: "+round(E:pos():y()),vec2(120+Offset_X,220+Offset_Y))
  219.         EGP:egpColor(14,vec4(255,0,0,255))
  220.        
  221.         EGP:egpText(15,"Pos Z: "+round(E:pos():z()),vec2(120+Offset_X,240+Offset_Y))
  222.         EGP:egpColor(15,vec4(255,0,0,255))
  223.        
  224.         EGP:egpText(16,"AimPos X: "+round(E:aimPos():x()),vec2(220+Offset_X,200+Offset_Y))
  225.         EGP:egpColor(16,vec4(255,0,0,255))
  226.        
  227.         EGP:egpText(17,"AimPos Y: "+round(E:aimPos():y()),vec2(220+Offset_X,220+Offset_Y))
  228.         EGP:egpColor(17,vec4(255,0,0,255))
  229.        
  230.         EGP:egpText(18,"AimPos Z: "+round(E:aimPos():z()),vec2(220+Offset_X,240+Offset_Y))
  231.         EGP:egpColor(18,vec4(255,0,0,255))
  232.        
  233.         Menu = 3.0
  234.     }
  235.    
  236.     function void menu04() { # 02
  237.         background()
  238.        
  239.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  240.         EGP:egpColor(5,vec4(150,150,150,255))
  241.        
  242.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  243.         EGP:egpColor(6,vec4(255,255,255,255))
  244.        
  245.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  246.         EGP:egpColor(7,vec4(0,0,0,255))
  247.        
  248.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  249.         EGP:egpColor(8,vec4(50,150,0,255))
  250.        
  251.         S = ""
  252.        
  253.         Menu = 4.0
  254.     }
  255.    
  256.     function void menu05() { # 03
  257.         background()
  258.        
  259.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  260.         EGP:egpColor(5,vec4(150,150,150,255))
  261.        
  262.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  263.         EGP:egpColor(6,vec4(255,255,255,255))
  264.        
  265.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  266.         EGP:egpColor(7,vec4(0,0,0,255))
  267.        
  268.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  269.         EGP:egpColor(8,vec4(50,150,0,255))
  270.        
  271.         S = ""
  272.        
  273.         Menu = 5.0
  274.     }
  275.    
  276.     function void menu06() { # 04
  277.         background()
  278.        
  279.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  280.         EGP:egpColor(5,vec4(150,150,150,255))
  281.        
  282.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  283.         EGP:egpColor(6,vec4(255,255,255,255))
  284.        
  285.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  286.         EGP:egpColor(7,vec4(0,0,0,255))
  287.        
  288.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  289.         EGP:egpColor(8,vec4(50,150,0,255))
  290.        
  291.         S = ""
  292.        
  293.         Menu = 6.0
  294.     }
  295.    
  296.     function void menu07() { # 05
  297.         background()
  298.        
  299.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  300.         EGP:egpColor(5,vec4(150,150,150,255))
  301.        
  302.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  303.         EGP:egpColor(6,vec4(255,255,255,255))
  304.        
  305.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  306.         EGP:egpColor(7,vec4(0,0,0,255))
  307.        
  308.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  309.         EGP:egpColor(8,vec4(50,150,0,255))
  310.        
  311.         S = ""
  312.        
  313.         Menu = 7.0
  314.     }
  315.    
  316.     function void menu08() { # 06
  317.         background()
  318.        
  319.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  320.         EGP:egpColor(5,vec4(150,150,150,255))
  321.        
  322.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  323.         EGP:egpColor(6,vec4(255,255,255,255))
  324.        
  325.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  326.         EGP:egpColor(7,vec4(0,0,0,255))
  327.        
  328.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  329.         EGP:egpColor(8,vec4(50,150,0,255))
  330.        
  331.         S = ""
  332.        
  333.         Menu = 8.0
  334.     }
  335.    
  336.     function void menu09() { # 07
  337.         background()
  338.        
  339.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  340.         EGP:egpColor(5,vec4(150,150,150,255))
  341.        
  342.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  343.         EGP:egpColor(6,vec4(255,255,255,255))
  344.        
  345.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  346.         EGP:egpColor(7,vec4(0,0,0,255))
  347.        
  348.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  349.         EGP:egpColor(8,vec4(50,150,0,255))
  350.        
  351.         S = ""
  352.        
  353.         Menu = 9.0
  354.     }
  355.    
  356.     function void menu10() { # 08
  357.         background()
  358.        
  359.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  360.         EGP:egpColor(5,vec4(150,150,150,255))
  361.        
  362.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  363.         EGP:egpColor(6,vec4(255,255,255,255))
  364.        
  365.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  366.         EGP:egpColor(7,vec4(0,0,0,255))
  367.        
  368.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  369.         EGP:egpColor(8,vec4(50,150,0,255))
  370.        
  371.         S = ""
  372.        
  373.         Menu = 10.0
  374.     }
  375.    
  376.     function void menu11() { # 09
  377.         background()
  378.        
  379.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  380.         EGP:egpColor(5,vec4(150,150,150,255))
  381.        
  382.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  383.         EGP:egpColor(6,vec4(255,255,255,255))
  384.        
  385.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  386.         EGP:egpColor(7,vec4(0,0,0,255))
  387.        
  388.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  389.         EGP:egpColor(8,vec4(50,150,0,255))
  390.        
  391.         S = ""
  392.        
  393.         Menu = 11.0
  394.     }
  395.    
  396.     function void menu12() { # 80
  397.         background()
  398.        
  399.         EGP:egpRoundedBox(5,vec2(256+Offset_X,256+Offset_Y),vec2(350,350))
  400.         EGP:egpColor(5,vec4(150,150,150,255))
  401.        
  402.         EGP:egpRoundedBox(6,vec2(255+Offset_X,400+Offset_Y),vec2(300,15))
  403.         EGP:egpColor(6,vec4(255,255,255,255))
  404.        
  405.         EGP:egpText(7,"",vec2(115+Offset_X,390+Offset_Y))
  406.         EGP:egpColor(7,vec4(0,0,0,255))
  407.        
  408.         EGP:egpText(8,"F3 to go back.",vec2(115+Offset_X,355+Offset_Y))
  409.         EGP:egpColor(8,vec4(50,150,0,255))
  410.        
  411.         S = ""
  412.        
  413.         Menu = 12.0
  414.     }
  415.    
  416.     function void abmelden() {
  417.         LoginName = ""
  418.         Set = 0
  419.         UN = ""
  420.         PW = ""
  421.         S = ""
  422.         menu01()
  423.     }
  424.    
  425.     background()
  426.     menu01()
  427.    
  428. }
  429.  
  430. if(inputClk()) {
  431.     if(Key) {
  432.         if(Key > 47 & Key < 123) { S += toChar(Key) }
  433.         if(Key == 127) {
  434.             S = S:sub(1,S:length()-1)
  435.             PW = PW:sub(1,PW:length()-1)
  436.         }
  437.     }
  438.     # ------------------------------------------------------------------------
  439.     # --- Menu Code ---
  440.     # ------------------------------------------------------------------------
  441.     if(Menu == 1.0) {
  442.         if(Set == 1) {
  443.             while(PW:length() < S:length()) { PW += "*" }
  444.             EGP:egpSetText(13,PW)
  445.             if(Key == 13 & S != "") { Set = 3 }
  446.         } elseif( Set == 0 ) {
  447.             EGP:egpSetText(12,S)
  448.             if(Key == 13 & S != "") {
  449.                 EGP:egpAlpha(14,0)
  450.                 Set = 1
  451.                 UN = S
  452.                 S = ""
  453.             }
  454.         } else {
  455.             local ID = checkUserPassword(UN,S)
  456.             if(ID != 0) {
  457.                 LoginName = getUserIDName(ID)
  458.                 Set = 0
  459.                 S = ""
  460.                 menu02()
  461.             }
  462.             else {
  463.                 UN = ""
  464.                 S = ""
  465.                 EGP:egpSetText(13,"")
  466.                 EGP:egpSetText(12,"")
  467.                 EGP:egpAlpha(14,255)
  468.                 Set = 0
  469.             }
  470.         }
  471.     } elseif(Menu == 2.0) {
  472.         EGP:egpSetText(8,S)
  473.        
  474.         if(Key == 13) {
  475.                 if(S == "01" | S == "1") {menu03()}
  476.             elseif(S == "02" | S == "2") {menu04()}
  477.             elseif(S == "03" | S == "3") {menu05()}
  478.             elseif(S == "04" | S == "4") {menu06()}
  479.             elseif(S == "05" | S == "5") {menu07()}
  480.             elseif(S == "06" | S == "6") {menu08()}
  481.             elseif(S == "07" | S == "7") {menu09()}
  482.             elseif(S == "08" | S == "8") {menu10()}
  483.             elseif(S == "09" | S == "9") {menu11()}
  484.             elseif(S == "80") {menu12()}
  485.             elseif(S == "90") {abmelden()}
  486.         }
  487.     } elseif(Menu == 3.0) {
  488.         EGP:egpSetText(7,S)
  489.        
  490.         if(Key == 165) {menu02()}
  491.         if(Key == 13) {
  492.             SearchByName = S
  493.             S = ""
  494.            
  495.         }
  496.        
  497.     } elseif(Menu == 4.0) {
  498.         EGP:egpSetText(7,S)
  499.        
  500.         if(Key == 165) {menu02()}
  501.        
  502.     } elseif(Menu == 5.0) {
  503.         EGP:egpSetText(7,S)
  504.        
  505.         if(Key == 165) {menu02()}
  506.        
  507.     } elseif(Menu == 6.0) {
  508.         EGP:egpSetText(7,S)
  509.        
  510.         if(Key == 165) {menu02()}
  511.        
  512.     } elseif(Menu == 7.0) {
  513.         EGP:egpSetText(7,S)
  514.        
  515.         if(Key == 165) {menu02()}
  516.        
  517.     } elseif(Menu == 8.0) {
  518.         EGP:egpSetText(7,S)
  519.        
  520.         if(Key == 165) {menu02()}
  521.        
  522.     } elseif(Menu == 9.0) {
  523.         EGP:egpSetText(7,S)
  524.        
  525.         if(Key == 165) {menu02()}
  526.        
  527.     } elseif(Menu == 10.0) {
  528.         EGP:egpSetText(7,S)
  529.        
  530.         if(Key == 165) {menu02()}
  531.        
  532.     } elseif(Menu == 11.0) {
  533.         EGP:egpSetText(7,S)
  534.        
  535.         if(Key == 165) {menu02()}
  536.        
  537.     } elseif(Menu == 12.0) {
  538.         EGP:egpSetText(7,S)
  539.        
  540.         if(Key == 165) {menu02()}
  541.        
  542.     }
  543. } else {
  544.     EGP:egpSetText(4,time("hour")+":"+time("min"))
  545.    
  546.     if(Menu == 3.0) {
  547.         E = findPlayerByName(SearchByName)
  548.         EGP:egpSetText(10,E:name())
  549.         EGP:egpSetText(11,"Health: "+E:health())
  550.         EGP:egpSetText(12,"Armor: "+E:armor())
  551.        
  552.         EGP:egpSetText(13,"Pos X: "+round(E:pos():x()))
  553.         EGP:egpSetText(14,"Pos Y: "+round(E:pos():y()))
  554.         EGP:egpSetText(15,"Pos Z: "+round(E:pos():z()))
  555.        
  556.         EGP:egpSetText(16,"AimPos X: "+round(E:aimPos():x()))
  557.         EGP:egpSetText(17,"AimPos Y: "+round(E:aimPos():y()))
  558.         EGP:egpSetText(18,"AimPos Z: "+round(E:aimPos():z()))
  559.     }
  560. }
Advertisement
Add Comment
Please, Sign In to add comment