Thomads

Stavox - Fartskilt m. bødemulighed

Dec 26th, 2018
577
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.99 KB | None | 0 0
  1. @name NewSpeed
  2. @inputs [EGP1]:wirelink [Speed1]:entity
  3. @outputs
  4. @persist [Speed1N, Cooldown1, SpaceLimit, IndexMul, SpeedGift, SpeedChance, SpeedState, Active]:number [Table]:table
  5. @trigger
  6.  
  7. if(first() | dupefinished()) {
  8.    
  9.     runOnChat(1)
  10.    
  11.     #Skal der uddeles boeder?
  12.     Active = 0
  13.     #Fartgraensen
  14.     Speed1N = 30
  15.     #Hvor meget skal farten vaere over foer en boede bliver givet?
  16.     SpaceLimit = 2.5
  17.    
  18.    
  19.     ##VIRKER IKKE
  20.     #Skal gaver vaere taendte? (0 = Nej, 1 = Ja)
  21.     #SpeedState = 0
  22.     #Hvor mange penge modtager bilisten der overholder fartgraensen?
  23.     #SpeedGift = 10
  24.     #Hvad er chancen for, at man modtager en taknemmeligheds gave? (0% = ingen, 1 = 100%)
  25.     #SpeedChance = 80
  26.     ##VIRKER IKKE
  27.    
  28.  
  29.     ###
  30.     NrSign = 0
  31.    
  32.     function void wirelink:drawSign() {
  33.         if(NrSign){ IndexMul = 30 } else { IndexMul = 1 }
  34.         This:egpClear()
  35.         #base
  36.         This:egpBox(IndexMul, vec2(256,100), vec2(250,280)) This:egpColor(IndexMul,vec4(165,165,165,255))
  37.         This:egpBox(IndexMul+1, vec2(256,100), vec2(235,265)) This:egpColor(IndexMul+1,vec4(115,115,115,255))
  38.         This:egpBox(IndexMul+2, vec2(256,100), vec2(220,250))
  39.         #base foot
  40.         This:egpBox(IndexMul+3, vec2(320,390), vec2(20,300)) This:egpColor(IndexMul+3, vec4(100,100,100,255))
  41.         This:egpBox(IndexMul+4, vec2(192,390), vec2(20,300)) This:egpColor(IndexMul+4, vec4(100,100,100,255))
  42.         #lights
  43.         This:egpCircle(IndexMul+5, vec2(325,15), vec2(32,32)) This:egpColor(IndexMul+5, vec4(0,0,0,255))
  44.         This:egpCircle(IndexMul+6, vec2(187,15), vec2(32,32)) This:egpColor(IndexMul+6, vec4(0,0,0,255))
  45.         #lightsFront
  46.         This:egpCircle(IndexMul+12, vec2(325,15), vec2(30,30)) This:egpColor(IndexMul+12, vec4(135,92,0,255))
  47.         This:egpCircle(IndexMul+13, vec2(187,15), vec2(30,30)) This:egpColor(IndexMul+13, vec4(135,92,0,255))
  48.         #txt
  49.         This:egpText(IndexMul+7,"Din", vec2(256,40)) This:egpColor(IndexMul+7, vec4(256,0,0,255)) This:egpSize(IndexMul+7, 55) This:egpAlign(IndexMul+7,1)
  50.         This:egpText(IndexMul+8,"fart", vec2(256,80)) This:egpColor(IndexMul+8, vec4(256,0,0,255)) This:egpSize(IndexMul+8, 55) This:egpAlign(IndexMul+8,1)
  51.         #baseKmt
  52.         This:egpBox(IndexMul+9, vec2(236,180), vec2(156,70)) This:egpColor(IndexMul+9, vec4(80,80,80,255))
  53.         This:egpText(IndexMul+10,"", vec2(291,141)) This:egpColor(IndexMul+10, vec4(255,174,0,255)) This:egpSize(IndexMul+10, 75) This:egpAlign(IndexMul+10,2)
  54.         This:egpText(IndexMul+11,"km/t", vec2(363,171)) This:egpColor(IndexMul+11, vec4(0,0,0,255)) This:egpSize(IndexMul+11, 22) This:egpAlign(IndexMul+11,2)
  55.     }
  56.    
  57.     function void wirelink:speed(Col:array, Speed:string) {
  58.         This:egpColor(IndexMul+12, vec(Col[1,number],Col[2,number],Col[3,number]))
  59.         This:egpColor(IndexMul+13, vec(Col[1,number],Col[2,number],Col[3,number]))
  60.         This:egpSetText(IndexMul+10,Speed)
  61.     }
  62.    
  63.     function void entity:giveTicket(Fine:number,Measured:number) {
  64.         if(!Table:exists(This:steamID())) {
  65.             concmd("say /wanted " + This:steamID() + " [Fartm"+aa()+"ler] Fartgr"+ae()+"nsen i omr"+aa()+"de: " + Speed1N + "Km/t. M"+aa()+"lt hastighed: " + Measured + "Km/t [+"+(Measured-Speed1N)+"] Udregnet b"+oe()+"de: " + Fine:toString() +"kr.")
  66.             timer("makePM",3000)
  67.             Table[This:steamID(),array] = array(This,Fine,0)
  68.         }
  69.     }
  70.    
  71.    
  72.     EGP1:drawSign()
  73.     timer("checkList",60000)
  74. }
  75.  
  76.  
  77. #Ranger
  78.  
  79. if(Speed1:isVehicle() & Cooldown1 == 0 & Speed1:kmh() >= 1) {
  80.     EGP1:speed(array(255,174,0),Speed1:kmh():toString())
  81.     Cooldown1 = 1
  82.     timer("reset1",4000)
  83.     if(Speed1:kmh() <= Speed1N & SpeedState == 1) {
  84.         Test = floor(randint(SpeedChance,101)/100,1)
  85.         if(Test == 1 & SpeedChance != 0) {
  86.             concmd("say /pm "+Speed1:driver():steamID()+" [Fartm"+aa()+"ler] Tak fordi du overholder f"+ae()+"rdselsloven. En lille gave er blevet sendt afsted til dig.")
  87.             moneyGive(Speed1:driver(),SpeedGift)  
  88.         }
  89.     }elseif(!Table:exists(Speed1:driver():steamID()) & Active == 1) {
  90.             if(!Speed1:elsOn()) {
  91.                 if(Speed1:kmh()-SpaceLimit > Speed1N) {
  92.                     Speed1:driver():giveTicket(calculateFine(Speed1N,Speed1:kmh()), Speed1:kmh())
  93.                     Speed1:driver():setFine(calculateFine(Speed1N,Speed1:kmh()))    
  94.                 }
  95.             }
  96.     }
  97. }
  98.  
  99. #Timers
  100.  
  101. if(chatClk()) {
  102.     if(Table:exists(lastSpoke():steamID())){
  103.         A = lastSpoke():lastSaid():lower():explode(" ")
  104.         if(A[1,string]=="!betal") {
  105.             hideChat(1)
  106.             moneyRequest(lastSpoke(),Table[lastSpoke():steamID(),array][2,number],"Fartb"+oe()+"de")
  107.         }
  108.     }
  109. }elseif(clk("makePM")) {
  110.     foreach(K, Ply:entity = players()) {
  111.         if(Table:exists(Ply:steamID()) & Table[Ply:steamID(),array][3,number] == 0) {
  112.             concmd("say /pm " + Table[Ply:steamID(),array][1,entity]:steamID() + " [Auto] Du har f"+aa()+"et en fartb"+oe()+"de. Fjern efters"+oe()+"gelsen ved at skrive !betal")  
  113.             Table[Ply:steamID(),array][3,number] = 1  
  114.         }
  115.     }
  116. }elseif(clk("checkList")) {
  117.     foreach(K, Ply:entity = players()) {
  118.         if(Table:exists(Ply:steamID()) & !Ply:isWanted()) {
  119.             printColor(vec(255,215,0),"[Fartm"+aa()+"ler] ",vec(255,255,255),"Fjernede ", vec(255,150,0), Ply:name(), vec(255,255,255), "s b"+oe()+"de, idet spilleren ikke l"+ae()+"ngere er efters"+oe()+"gt.")
  120.             Table:remove(Ply:steamID())
  121.         }
  122.     }
  123. timer("checkList",10000)
  124. }
  125.      
  126.  
  127. if(moneyClk("Fartb"+oe()+"de")) {
  128.     if(Table:exists(moneyClkPlayer():steamID())){
  129.         printColor(vec(255,215,0),"[Fartm"+aa()+"ler] ",vec(255,150,0),moneyClkPlayer():name(), vec(255,255,255), " betalte sin fartb"+oe()+"de!")
  130.         concmd("say /unwanted "+moneyClkPlayer():steamID())
  131.         Table:remove(moneyClkPlayer():steamID())
  132.     }
  133. }
  134.  
  135. if(clk("reset1")) {
  136.     Cooldown1 = 0
  137.     EGP1:speed(array(153,104,0),"")
  138. }
Add Comment
Please, Sign In to add comment