Advertisement
Thomads

Stavox - Gundealer våbenbestiller

Dec 26th, 2018
712
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 17.52 KB | None | 0 0
  1. @name Gundealer Terminal
  2. @inputs [EGP]:wirelink [User]:entity
  3. @outputs
  4. @persist [Page,Company,Gname,CurrShopID]:string [CurrWep,Trans,Gscope,DelvPrice,Amount,Online]:number [CurUser]:entity [WepArray,WepPriceArray,Destination]:array
  5. @trigger
  6.  
  7. if(first() | dupefinished()) {
  8.    
  9.     CurrWep = 0
  10.     CurrShopID = "SWC"
  11.     Company = ""
  12.     Gname = "WebShop"
  13.     Gscope = 0
  14.     Amount = 1
  15.     Online = 0
  16.    
  17.     dsJoinGroup(Gname)
  18.     dsSetScope(Gscope)    
  19.    
  20.     WepArray = array("AK47","AK74","Famas","G4A3","Deagle","Glock-20","G36C","M4A1","KS-23","M14","M82","M24","M21","Raging Bull","M1911","OTs-33","P228","PP-19 Bizon","MP5","SKS","RPK-47","M3 Shotgun","SR-25","SG552","SG550","UZI")
  21.     WepPriceArray = array(3000,2900,2900,3200,750,550,3100,3100,2400,4000,7000,5600,6000,700,480,850,600,2100,2200,4800,3800,2600,5500,3000,3100,2100,5000)
  22.     Destination = getDestinationIDs()
  23.    
  24.     #########################
  25.    
  26.     runOnChat(1)
  27.    
  28.     function void getCheapComp() {
  29.         DelvPrice = 100000
  30.         Id = 0
  31.        
  32.         foreach(K, Comp:string = getDeliveryCompanyIDs()) {
  33.             Id++
  34.             PriceDeliver = getDeliveryCompany(Comp)["Prices",table]["FromWeb",number] + getDeliveryCompany(Comp)["Prices",table]["ToHouse",number]
  35.             PriceSend = getDeliveryCompany(Comp)["Prices",table]["FromPerson",number] + getDeliveryCompany(Comp)["Prices",table]["ToHouse",number]
  36.            
  37.             if((PriceDeliver + PriceSend) < DelvPrice) {
  38.                 DelvPrice = PriceDeliver
  39.                 Company = Comp
  40.                 CompanyName = getDeliveryCompany(Comp)["Name",string]
  41.             }
  42.         }
  43.            
  44.         if(Id == 0) {
  45.             EGP:egpSetText(44,"Statens Pakkeservice") EGP:egpColor(44,vec4(255,255,255,255))
  46.             EGP:egpSetText(42,"1750.-") EGP:egpColor(42,vec4(255, 127, 15,255))
  47.             DelvPrice = 1750
  48.             Company = ""
  49.         }else{
  50.             EGP:egpSetText(44,CompanyName) EGP:egpColor(44,vec4(255,255,255,255))
  51.             EGP:egpSetText(42,DelvPrice+".-") EGP:egpColor(42,vec4(34,159,232,255))
  52.         }
  53.     }
  54.    
  55.     function number egpClick(Index, Cursor:vector2){
  56.         EPos = EGP:egpPos(Index)
  57.         ESize = EGP:egpSize(Index)
  58.         if(inrange(Cursor, (EPos - ESize/2), (EPos + ESize/2)) ){
  59.             return 1
  60.         }
  61.         return 0
  62.     }    
  63.    
  64.    
  65.     function void wirelink:drawLogon() {
  66.         This:egpClear()
  67.         Amount = 1
  68.         This:egpBox( 1,vec2(0,0),vec2(1024,1024) )
  69.         This:egpMaterial(1,"console/background04")
  70.        
  71.         #Title
  72.         This:egpBox( 4,vec2(256,60),vec2(1024,60) ) This:egpColor(4, vec4(0,0,0,190) )
  73.         This:egpText(6,"Gundealer Terminal",vec2(256,33)) This:egpColor(6,vec4(255,255,255,255)) This:egpSize(6,50) This:egpAlign(6,1)
  74.        
  75.         #Login Button
  76.         This:egpBox( 5,vec2(256,395),vec2(300,70) ) This:egpColor(5, vec4(0,0,0,160) )
  77.         This:egpText(7,"Bestil v"+aa()+"ben",vec2(256,365)) This:egpColor(7,vec4(255,255,255,255)) This:egpSize(7,55) This:egpAlign(7,1)
  78.        
  79.         #Delivery
  80.         This:egpBox( 41,vec2(375,187),vec2(110,40) ) This:egpColor(41, vec4(0,0,0,210) )
  81.         This:egpBox( 47,vec2(191,187),vec2(220,40) ) This:egpColor(47, vec4(0,0,0,210) )
  82.         This:egpText(42,"",vec2(377,171)) This:egpColor(42,vec4(255,0,0,255)) This:egpSize(42,30) This:egpAlign(42,1)
  83.         This:egpText(49,"Fragtpris",vec2(152,171)) This:egpColor(49,vec4(255,255,255,255)) This:egpSize(49,30) This:egpAlign(49,1)
  84.        
  85.         #Delv. Comp. Name
  86.         This:egpBox( 43,vec2(256,130),vec2(350,45) ) This:egpColor(43, vec4(0,0,0,180) )
  87.         This:egpText(44,"",vec2(256,114)) This:egpColor(44,vec4(255,255,255,255)) This:egpSize(44,30) This:egpAlign(44,1)
  88.        
  89.         #Made by
  90.         This:egpText(67,"Udviklet af Thomads",vec2(256,495)) This:egpColor(67,vec4(255,255,255,255)) This:egpSize(67,15) This:egpAlign(67,1)
  91.        
  92.         Page = "Logon"
  93.         getCheapComp()
  94.     }
  95.    
  96.     function void wirelink:drawCategories() {
  97.        
  98.         This:egpClear()
  99.        
  100.         This:egpBox( 8,vec2(0,0),vec2(1024,1024) )
  101.         This:egpMaterial(8,"console/background06")
  102.        
  103.         #Kategorier
  104.         This:egpBox( 9,vec2(256,100),vec2(512,60) ) This:egpColor(9, vec4(0,0,0,110) )
  105.         This:egpBox( 10,vec2(256,180),vec2(400,60)) This:egpColor(10, vec4(0,0,0,90) )
  106.         This:egpBox( 11,vec2(256,250),vec2(400,60)) This:egpColor(11, vec4(0,0,0,90) )
  107.         This:egpBox( 12,vec2(256,320),vec2(400,60)) This:egpColor(12, vec4(0,0,0,90) )
  108.         This:egpBox( 13,vec2(256,390),vec2(400,60)) This:egpColor(13, vec4(0,0,0,90) )
  109.         This:egpBox( 14,vec2(256,460),vec2(400,60)) This:egpColor(14, vec4(0,0,0,90) )  
  110.        
  111.         #Fragt pris
  112.         This:egpBox( 26,vec2(102,32),vec2(175,45)) This:egpColor(26, vec4(0,204,0,120) )  
  113.         This:egpText(27,"Fragt pris",vec2(100,10)) This:egpColor(27,vec4(250,250,250,255)) This:egpSize(27,40) This:egpAlign(27,1)
  114.        
  115.         This:egpBox( 28,vec2(262,32),vec2(130,45)) This:egpColor(28, vec4(255,81,0,120) )  
  116.         This:egpText(29,DelvPrice+".-",vec2(208,10)) This:egpColor(29,vec4(250,250,250,255)) This:egpSize(29,40) This:egpAlign(27,1)
  117.        
  118.         #Quit
  119.         This:egpBox( 35,vec2(480,30),vec2(45,45)) This:egpColor(35, vec4(204,0,0,120) )  
  120.         This:egpText(36,"X",vec2(480,8)) This:egpSize(36,40) This:egpAlign(36,1)
  121.        
  122.         This:egpText(17,"V"+ae()+"lg kategori",vec2(256,80)) This:egpColor(17,vec4(250,250,250,255)) This:egpSize(17,37) This:egpAlign(17,1)
  123.         This:egpText(18,"Rifler",vec2(256,160)) This:egpColor(18,vec4(250,250,250,90)) This:egpSize(18,37) This:egpAlign(18,1)
  124.         This:egpText(19,"SMG'er",vec2(256,230)) This:egpColor(19,vec4(250,250,250,90)) This:egpSize(19,37) This:egpAlign(19,1)
  125.         This:egpText(20,"Shotguns",vec2(256,300)) This:egpColor(20,vec4(250,250,250,90)) This:egpSize(20,37) This:egpAlign(20,1)
  126.         This:egpText(21,"Snipere",vec2(256,370)) This:egpColor(21,vec4(250,250,250,90)) This:egpSize(21,37) This:egpAlign(21,1)
  127.         This:egpText(22,"Pistoler",vec2(256,440)) This:egpColor(22,vec4(250,250,250,90)) This:egpSize(22,37) This:egpAlign(22,1)
  128.        
  129.         Page = "Categories"
  130.     }
  131.    
  132.     function void amount(Index:number) {
  133.         CurrWep = Index
  134.        
  135.         EGP:egpBox( 51,vec2(0,0),vec2(1024,1024) ) EGP:egpColor(51, vec4(0,0,0,220))
  136.         EGP:egpColor(52, vec4(250,250,250,90))
  137.         EGP:egpColor(53, vec4(250,250,250,90))
  138.         EGP:egpColor(54, vec4(250,250,250,90))
  139.         EGP:egpBox( 55,vec2(256,256),vec2(350,150) ) EGP:egpColor(55, vec4(20,20,20,255))
  140.        
  141.         EGP:egpBox( 56,vec2(256,206),vec2(350,50) ) EGP:egpColor(56, vec4(90,90,90,255))
  142.         EGP:egpText(57,"V"+ae()+"lg antal",vec2(256,187)) EGP:egpColor(57,vec4(255,255,255,200)) EGP:egpSize(57,35) EGP:egpAlign(57,1)
  143.        
  144.         EGP:egpText(64,"1",vec2(185,262)) EGP:egpColor(64,vec4(255,255,255,200)) EGP:egpSize(64,35) EGP:egpAlign(64,1)
  145.        
  146.         #<
  147.         EGP:egpBox( 58,vec2(136,280),vec2(40,40) ) EGP:egpColor(58, vec4(90,90,90,255))
  148.         EGP:egpText(65,"<",vec2(135,260)) EGP:egpColor(65,vec4(255,255,255,200)) EGP:egpSize(65,35) EGP:egpAlign(65,1)
  149.        
  150.         #>
  151.         EGP:egpBox( 59,vec2(236,280),vec2(40,40) ) EGP:egpColor(59, vec4(90,90,90,255))
  152.         EGP:egpText(66,">",vec2(236,260)) EGP:egpColor(66,vec4(255,255,255,200)) EGP:egpSize(66,35) EGP:egpAlign(66,1)
  153.        
  154.         #Cancel
  155.         EGP:egpBox( 60,vec2(346,300),vec2(110,25) ) EGP:egpColor(60, vec4(200,0,0,255))
  156.         EGP:egpText(62,"Afvis",vec2(346,288)) EGP:egpColor(62,vec4(255,255,255,200)) EGP:egpSize(62,22) EGP:egpAlign(62,1)
  157.        
  158.         #Pay
  159.         EGP:egpBox( 61,vec2(346,265),vec2(110,25) ) EGP:egpColor(61, vec4(0,200,0,255))
  160.         EGP:egpText(63,"Betal",vec2(346,253)) EGP:egpColor(63,vec4(255,255,255,200)) EGP:egpSize(63,22) EGP:egpAlign(63,1)
  161.        
  162.     }
  163.    
  164.    
  165.     function void wirelink:drawRifles1() {
  166.         #Frem
  167.         This:egpBox(33,vec2(480,100),vec2(60,60)) This:egpColor(33,vec4(0,0,0,0))
  168.         This:egpTriangle(31,vec2(480,115),vec2(480,85),vec2(500,100))
  169.        
  170.         #Tilbage
  171.         This:egpBox(34,vec2(30,100),vec2(60,60)) This:egpColor(34,vec4(0,0,0,0))
  172.         This:egpRemove(30)
  173.        
  174.         This:egpSetText(17,"Rifler [1/3]")
  175.         This:egpSetText(18,"AK47")
  176.         This:egpSetText(19,"AK74")
  177.         This:egpSetText(20,"Famas")
  178.         This:egpSetText(21,"G3A1")
  179.         This:egpSetText(22,"G36C")
  180.        
  181.         Page = "Rifles1"
  182.        
  183.     }    
  184.    
  185.     function void wirelink:drawRifles2() {
  186.         #Frem
  187.         This:egpTriangle(31,vec2(480,115),vec2(480,85),vec2(500,100))
  188.        
  189.         #Tilbage
  190.         This:egpTriangle(30,vec2(30,115),vec2(30,85),vec2(10,100))
  191.        
  192.         This:egpSetText(17,"Rifler [2/3]")
  193.         This:egpSetText(18,"M4A1")
  194.         This:egpSetText(19,"M14")
  195.         This:egpSetText(20,"SKS")
  196.         This:egpSetText(21,"RPK-48")
  197.         This:egpSetText(22,"SG552")
  198.        
  199.         Page = "Rifles2"
  200.     }    
  201.    
  202.     function void wirelink:drawRifles3() {
  203.         #Frem
  204.         This:egpRemove(31)
  205.        
  206.         #Tilbage
  207.         This:egpTriangle(30,vec2(30,115),vec2(30,85),vec2(10,100))
  208.        
  209.         This:egpSetText(17,"Rifler [3/3]")
  210.         This:egpSetText(18,"SG550")
  211.         This:egpSetText(19,"")
  212.         This:egpSetText(20,"")
  213.         This:egpSetText(21,"")
  214.         This:egpSetText(22,"")
  215.        
  216.         Page = "Rifles3"
  217.     }  
  218.    
  219.     function void wirelink:drawSMG1() {
  220.         This:egpSetText(17,"SMG'er")
  221.         This:egpSetText(18,"PP-19 Bison")
  222.         This:egpSetText(19,"MP5")
  223.         This:egpSetText(20,"Uzi")
  224.         This:egpSetText(21,"")
  225.         This:egpSetText(22,"")
  226.        
  227.         Page = "SMG1"
  228.     }
  229.    
  230.     function void wirelink:drawShotguns1() {
  231.         This:egpSetText(17,"Shotguns")
  232.         This:egpSetText(18,"KS-23")
  233.         This:egpSetText(19,"M3 Shotgun")
  234.         This:egpSetText(20,"")
  235.         This:egpSetText(21,"")
  236.         This:egpSetText(22,"")
  237.        
  238.         Page = "Shotguns1"
  239.     }
  240.    
  241.     function void wirelink:drawSnipers1() {
  242.         This:egpSetText(17,"Snipers")
  243.         This:egpSetText(18,"M82")
  244.         This:egpSetText(19,"M24")
  245.         This:egpSetText(20,"M21")
  246.         This:egpSetText(21,"SR-25")
  247.         This:egpSetText(22,"")
  248.        
  249.         Page = "Snipers1"
  250.     }
  251.    
  252.     function void wirelink:drawPistols1() {
  253.         #Frem
  254.         This:egpBox(33,vec2(480,100),vec2(60,60)) This:egpColor(33,vec4(0,0,0,0))
  255.         This:egpTriangle(31,vec2(480,115),vec2(480,85),vec2(500,100))
  256.        
  257.         #Tilbage
  258.         This:egpBox(34,vec2(30,100),vec2(60,60)) This:egpColor(34,vec4(0,0,0,0))
  259.         This:egpRemove(30)
  260.        
  261.         This:egpSetText(17,"Pistoler [1/2]")
  262.         This:egpSetText(18,"Deagle")
  263.         This:egpSetText(19,"Glock-20")
  264.         This:egpSetText(20,"Raging Bull")
  265.         This:egpSetText(21,"M1911")
  266.         This:egpSetText(22,"OTs-33")
  267.        
  268.         Page = "Pistols1"
  269.     }
  270.    
  271.     function void wirelink:drawPistols2() {
  272.         #Frem
  273.         This:egpRemove(31)
  274.        
  275.         #Tilbage
  276.         This:egpTriangle(30,vec2(30,115),vec2(30,85),vec2(10,100))
  277.        
  278.         This:egpSetText(17,"Pistoler [2/2]")
  279.         This:egpSetText(18,"P228")
  280.         This:egpSetText(19,"")
  281.         This:egpSetText(20,"")
  282.         This:egpSetText(21,"")
  283.         This:egpSetText(22,"")
  284.        
  285.         Page = "Pistols2"
  286.     }
  287.    
  288.     function void drawPending() {
  289.         Trans = round(random(1,500))
  290.        
  291.         moneyRequest(CurUser, (DelvPrice+(WepPriceArray[CurrWep,number]*Amount)), "Transaktion #"+Trans, 10)
  292.        
  293.         EGP:egpBox( 40,vec2(0,0),vec2(1024,1024) ) EGP:egpColor(40, vec4(0,0,0,220))
  294.         EGP:egpColor(30, vec4(250,250,250,90))
  295.         EGP:egpColor(31, vec4(250,250,250,90))
  296.         EGP:egpColor(17, vec4(250,250,250,90))
  297.         EGP:egpBox( 37,vec2(256,256),vec2(500,100) ) EGP:egpColor(37, vec4(20,20,20,255))
  298.         EGP:egpText(38,"Transaktion igang...",vec2(256,227)) EGP:egpColor(38,vec4(255,255,0,200)) EGP:egpSize(38,55) EGP:egpAlign(38,1)
  299.     }
  300.    
  301.     function void wirelink:paymentAccepted() {
  302.         This:egpSetText(38,"Dit v"+aa()+"ben er bestilt!") This:egpColor(38,vec4(50,255,50,200))
  303.     }
  304.    
  305.     function void wirelink:paymentDenied() {
  306.         This:egpSetText(38,"Betaling afvist!") This:egpColor(38,vec4(255,50,50,200))  
  307.     }
  308.    
  309.     function void wirelink:removeAmount() {
  310.        
  311.        
  312.     }
  313.  
  314.     EGP:drawLogon()
  315.     getCheapComp()
  316.     timer("updatePrices",30000)
  317. }
  318.  
  319.  
  320. #Inputs
  321. Cursor = EGP:egpCursor(User)
  322. if(~User & User:keyUse() & ops()<100){
  323.     if(Page == "Logon") { CurUser = owner() }
  324.    
  325.     if(User == owner()) {
  326.    
  327.         #Categories - Nav
  328.         if(egpClick(5,Cursor) & Page == "Logon") {
  329.             EGP:drawCategories()
  330.             timer("UserDistance",5000)
  331.         }elseif(egpClick(10,Cursor) & Page == "Categories") {
  332.             EGP:drawRifles1()
  333.         }elseif(egpClick(11,Cursor) & Page == "Categories") {
  334.             EGP:drawSMG1()
  335.         }elseif(egpClick(12,Cursor) & Page == "Categories") {
  336.             EGP:drawShotguns1()
  337.         }elseif(egpClick(13,Cursor) & Page == "Categories") {
  338.             EGP:drawSnipers1()
  339.         }elseif(egpClick(14,Cursor) & Page == "Categories") {
  340.             EGP:drawPistols1()
  341.         }
  342.        
  343.         #Quit
  344.         elseif(egpClick(35,Cursor)) {
  345.             if(Page == "Categories") {
  346.                 EGP:drawLogon()
  347.             }else{
  348.                 EGP:drawCategories()
  349.             }
  350.         }
  351.        
  352.         #Amount picking
  353.         #<
  354.         elseif(egpClick(58,Cursor)) {
  355.             if(Amount >= 2) {
  356.                 Amount--
  357.                 EGP:egpSetText(64,Amount:toString())
  358.             }
  359.         }
  360.        
  361.         #>
  362.         elseif(egpClick(59,Cursor)) {
  363.             if(Amount <= 9) {
  364.                 Amount++
  365.                 EGP:egpSetText(64,Amount:toString())
  366.             }
  367.         }
  368.        
  369.         #Pay
  370.         elseif(egpClick(61,Cursor)) {
  371.             drawPending()
  372.         }
  373.        
  374.         #Cancel
  375.         elseif(egpClick(60,Cursor)) {
  376.             EGP:drawLogon()
  377.         }
  378.        
  379.         #Rifles - Nav
  380.         elseif(egpClick(33,Cursor) & Page == "Rifles1") {
  381.             EGP:drawRifles2()
  382.         }elseif(egpClick(33,Cursor) & Page == "Rifles2") {
  383.             EGP:drawRifles3()
  384.         }elseif(egpClick(34,Cursor) & Page == "Rifles2") {
  385.             EGP:drawRifles1()
  386.         }elseif(egpClick(34,Cursor) & Page == "Rifles3") {
  387.             EGP:drawRifles2()
  388.         }
  389.        
  390.         #Pistols - Nav
  391.         elseif(egpClick(33,Cursor) & Page == "Pistols1") {
  392.             EGP:drawPistols2()
  393.         }elseif(egpClick(34,Cursor) & Page == "Pistols2") {
  394.             EGP:drawPistols1()
  395.         }
  396.        
  397.         #1st Click
  398.         elseif(egpClick(10,Cursor) & Page != "Categories") {
  399.             if(Page == "Rifles1") { amount(1)
  400.             }elseif(Page == "Rifles2") { amount(8)
  401.             }elseif(Page == "Rifles3") { amount(25)
  402.             }elseif(Page == "SMG1") { amount(18)
  403.             }elseif(Page == "Shotguns1") { amount(9)
  404.             }elseif(Page == "Snipers1") { amount(11)
  405.             }elseif(Page == "Pistols1") { amount(5)
  406.             }elseif(Page == "Pistols2") { amount(17) }
  407.         }
  408.        
  409.         #2nd Click
  410.         elseif(egpClick(11,Cursor) & Page != "Categories") {
  411.             if(Page == "Rifles1") { amount(2)
  412.             }elseif(Page == "Rifles2") { amount(10)
  413.             }elseif(Page == "SMG1") { amount(19)
  414.             }elseif(Page == "Shotguns1") { amount(22)
  415.             }elseif(Page == "Snipers1") { amount(12)
  416.             }elseif(Page == "Pistols1") { amount(6) }
  417.         }
  418.        
  419.         #3rd Click
  420.         elseif(egpClick(12,Cursor) & Page != "Categories") {
  421.             if(Page == "Rifles1") { amount(3)
  422.             }elseif(Page == "Rifles2") { amount(20)
  423.             }elseif(Page == "SMG1") { amount(26)
  424.             }elseif(Page == "Snipers1") { amount(13)
  425.             }elseif(Page == "Pistols1") { amount(14) }
  426.         }
  427.        
  428.         #4th Click
  429.         elseif(egpClick(13,Cursor) & Page != "Categories") {
  430.             if(Page == "Rifles1") { amount(4)
  431.             }elseif(Page == "Rifles2") { amount(21)
  432.             }elseif(Page == "Snipers1") { amount(23)
  433.             }elseif(Page == "Pistols1") { amount(15) }
  434.         }
  435.        
  436.         #5th Click
  437.         elseif(egpClick(14,Cursor) & Page != "Categories") {
  438.             if(Page == "Rifles1") { amount(7)
  439.             }elseif(Page == "Rifles2") { amount(24)
  440.             }elseif(Page == "Pistols1") { amount(16) }
  441.         }
  442.    
  443.     }
  444. }
  445.  
  446. ######### MobilePay #########
  447. if(moneyClk("Transaktion #"+Trans)) {
  448.     timer("drawClk",100)
  449.     orderProduct(CurrShopID,CurrWep,Amount,Company,entity(Destination[1,number]))
  450.    
  451. }elseif(moneyNoClk() | moneyTimeout()) {
  452.     timer("drawNoClk",100)
  453. }
  454.  
  455. ######### TIMERS #########
  456. if(clk("drawNoClk")){
  457.     EGP:paymentDenied()
  458.     timer("drawLogin",3000)
  459. }
  460.  
  461. elseif(clk("drawClk")){
  462.     EGP:paymentAccepted()
  463.     timer("drawLogin",3000)}
  464.    
  465. elseif(clk("drawLogin")){
  466.     EGP:drawLogon() }
  467.    
  468. elseif(clk("updatePrices")){
  469.     getCheapComp()
  470.     timer("updatePrices",30000) }
  471.    
  472. elseif(clk("UserDistance")){
  473.     if(Page != "Logon" & CurUser:pos():distance( EGP:entity():pos()) > 200){
  474.         stoptimer("UserDistance")
  475.         EGP:drawLogon()
  476.        
  477.     }else {
  478.         timer("UserDistance",5000)
  479.     }
  480. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement