Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name Smart Taxi
- @inputs [EGP,EGP2]:wirelink [User,User2]:entity
- @outputs
- @persist [Title,Driver,Bestil,MSGTag]:string [StartGebyr,Takst,Status,Time,Rabat]:number [Distance]:array [CurUser]:entity
- @trigger
- if(first() | dupefinished()) {
- EGP:egpClear()
- runOnChat(1)
- Title = "Smart Taxi"
- Driver = owner():name()
- Bestil = "BESTIL"
- MSGTag = "[Smart Taxi] "
- Rabat = 0
- StartGebyr = 750*(1-Rabat)
- Takst = 50*(1-Rabat)
- Time = 0
- Status = 0
- print("Kommandoer:
- !start Thomads <- Starter en taxi tur med spilleren Thomads.
- !start <- Genstarter en iganv"+ae()+"rende taxi tur.
- !pause <- S"+ae()+"tter taximeteret p"+aa()+" pause.
- !slut <- Stopper en igangv"+ae()+"rende tur, og sender en pengeanmodning for taksten. ") print("
- !takst 100 <- S"+ae()+"tter taksten pr. 10 sekund til 100 kr.
- !startgebyr 3500 <- S"+ae()+"tter startgebyret til 3500 kr.
- !rabat 50 <- S"+ae()+"tter rabatten til 50%. V"+ae()+"lg mellem 0-99.")
- function void oMSG(Text:string, Color:vector) {
- printColor(vec(255,215,0),MSGTag,Color,Text)
- }
- function number egpClick(Index, Cursor:vector2){
- EPos = EGP:egpPos(Index)
- ESize = EGP:egpSize(Index)
- if(inrange(Cursor, (EPos - ESize/2), (EPos + ESize/2)) ){
- return 1
- }
- return 0
- }
- function string wirelink:getStatus() {
- if(Status == 0) {
- This:egpSetText(11,"Ledig")
- This:egpColor(11,vec(118,250,0))
- This:egpColor(20,vec(255,255,255))
- This:egpColor(21,vec(255,255,255))
- }elseif(Status == 2) {
- This:egpSetText(11,"Optaget")
- This:egpColor(11,vec(250,60,0))
- This:egpColor(20,vec(250,60,0))
- This:egpColor(21,vec(250,60,0))
- }
- }
- function void wirelink:drawScreen() {
- This:egpClear()
- This:egpBox( 1,vec2(256,256),vec2(512,512) )
- This:egpMaterial(1,"console/background06")
- This:egpText(2,Title,vec2(256,10)) This:egpSize(2,55) This:egpAlign(2,1) This:egpFont(2,"Courier New")
- This:egpBox(3,vec2(256,68),vec2(325,4))
- This:egpBox(7,vec2(130,158),vec2(190,70)) This:egpMaterial(7,"gui/center_gradient") This:egpColor(7,vec4(50,50,50,200))
- This:egpText(4,"Chauff"+oe()+"r",vec2(128,125)) This:egpSize(4,35) This:egpAlign(4,1) This:egpFont(4,"Courier New")
- This:egpBox(5,vec2(128,160),vec2(200,3))
- This:egpText(6,Driver,vec2(128,165)) This:egpSize(6,25) This:egpAlign(6,1) This:egpFont(6,"Courier New") This:egpColor(6,vec(118,250,0))
- This:egpBox(8,vec2(394,158),vec2(180,70)) This:egpMaterial(8,"gui/center_gradient") This:egpColor(8,vec4(50,50,50,200))
- This:egpText(9,"Status",vec2(384,125)) This:egpSize(9,35) This:egpAlign(9,1) This:egpFont(9,"Courier New")
- This:egpBox(10,vec2(384,160),vec2(200,3))
- This:egpText(11,"Ledig",vec2(384,165)) This:egpSize(11,25) This:egpAlign(11,1) This:egpFont(11,"Courier New") This:egpColor(11,vec(118,250,0))
- This:egpBox(12,vec2(138,268),vec2(180,70)) This:egpMaterial(12,"gui/center_gradient") This:egpColor(12,vec4(50,50,50,200))
- This:egpText(13,"Startgebyr",vec2(128,235)) This:egpSize(13,35) This:egpAlign(13,1) This:egpFont(13,"Courier New")
- This:egpBox(14,vec2(128,270),vec2(200,3))
- This:egpText(15,StartGebyr*(1-Rabat) + " kr.",vec2(128,275)) This:egpSize(15,25) This:egpAlign(15,1) This:egpFont(15,"Courier New") This:egpColor(15,vec(118,250,0))
- }
- function void wirelink:drawScreen2() {
- This:egpBox(16,vec2(394,268),vec2(180,70)) This:egpMaterial(16,"gui/center_gradient") This:egpColor(16,vec4(50,50,50,200))
- This:egpText(17,"Takst",vec2(384,235)) This:egpSize(17,35) This:egpAlign(17,1) This:egpFont(17,"Courier New")
- This:egpBox(18,vec2(384,270),vec2(200,3))
- This:egpText(19,Takst*(1-Rabat) + " kr/10 sek.",vec2(384,275)) This:egpSize(19,25) This:egpAlign(19,1) This:egpFont(19,"Courier New") This:egpColor(19,vec(118,250,0))
- This:egpText(20,Bestil,vec2(256,360)) This:egpSize(20,55) This:egpAlign(20,1) This:egpFont(20,"Courier New")
- This:egpBox(21,vec2(256,418),vec2(230,4))
- This:egpText(22,"Afventer bestilling",vec2(256,430)) This:egpSize(22,18) This:egpAlign(22,1) This:egpFont(22,"Courier New")
- This:egpText(24,"Lavet af Thomads | v1",vec2(256,497)) This:egpSize(24,15) This:egpAlign(24,1) This:egpFont(24,"Courier New")
- This:egpBox(23,vec2(256,408),vec2(230,90)) This:egpColor(23,vec4(0,0,0,0))
- This:egpBox(25,vec2(470,70),vec2(250,35)) This:egpColor(25,vec4(225,225,0,0)) This:egpAngle(25,-45)
- This:egpBoxOutline(26,vec2(470,70),vec2(250,35)) This:egpColor(26,vec4(255,255,255,0)) This:egpAngle(26,-45)
- This:egpText(27,"SPAR 25%",vec2(466,45)) This:egpAngle(27,-45) This:egpSize(27,28) This:egpAlign(27,1) This:egpColor(27,vec4(255,255,255,0))
- }
- function void startTaxi(Ply:string) {
- if(Status == 1 & findPlayerBySteamID(Ply):isPlayer()) {
- On = 1
- Time = 0
- Status = 2
- EGP:getStatus()
- EGP2:getStatus()
- CurUser = findPlayerBySteamID(Ply)
- print(CurUser:name())
- oMSG("Startede en tur med "+CurUser:name()+" med en takst p"+aa()+" " +Takst*(1-Rabat) + " kr / 10 sek.",vec(255,255,255))
- timer("takst",10000)
- }elseif(Status == 0){
- oMSG("Anmoder "+findPlayerBySteamID(Ply):name()+" om startgebyr...",vec(200,0,0))
- moneyRequest(findPlayerBySteamID(Ply), StartGebyr*(1-Rabat), "Startgebyr for taxi", 10)
- }elseif(Status == 2){
- oMSG("Du har allerde startet en tur. Skriv !slut for at starte forfra.",vec(200,0,0))
- }
- }
- function void genstartTaxi() {
- if(Status == 3) {
- timer("takst",10000)
- oMSG("Taximeteret fors"+ae()+"tter nu fra sidst.",vec(0,255,0))
- Status = 2
- }else{
- oMSG("Kunne ikke starte tur.",vec(200,0,0))
- }
- }
- function void pauseTaxi() {
- if(Status == 2) {
- Status = 3
- stoptimer("takst")
- oMSG("Satte taximeteret i bero. Brug !start for at t"+ae()+"nde det igen eller !slut for at afslutte turen.",vec(255,255,255))
- }else{
- oMSG("Taximeteret er ikke i gang!",vec(200,0,0))
- }
- }
- function void slutTaxi() {
- if(Status != 0) {
- Status = 0
- oMSG("Antal sekunder k"+oe()+"rt: " + Time*10 + " | Udregnet pris: " + (Time*Takst)*(1-Rabat) + "kr.",vec(255,255,255))
- if(CurUser:isPlayer() & CurUser:isValid()) {
- moneyRequest(CurUser, (Time*Takst)*(1-Rabat), "Taxi takst", 10)
- }else{
- oMSG("Kunne ikke sende anmodning til spiller.",vec(200,0,0))
- }
- EGP:egpSetText(22,"Afventer bestilling")
- EGP2:egpSetText(22,"Afventer bestilling")
- Time = 0
- EGP:getStatus()
- EGP2:getStatus()
- }else {
- oMSG("Der er ingen igangv"+ae()+"rende ture.",vec(200,0,0))
- }
- }
- function void wirelink:toggleDiscount() {
- if(Rabat > 0) {
- This:egpColor(25,vec4(255,255,0,255))
- This:egpColor(26,vec4(255,255,255,255))
- This:egpColor(27,vec4(0,0,0,255))
- This:egpSetText(27,"SPAR "+Rabat*100+"%")
- This:egpSetText(15,StartGebyr*(1-Rabat) + " kr.")
- This:egpSetText(19,Takst*(1-Rabat) + " kr/10 sek.")
- }else{
- This:egpColor(25,vec4(225,225,0,0))
- This:egpColor(26,vec4(255,255,255,0))
- This:egpColor(27,vec4(255,255,255,0))
- This:egpSetText(15,StartGebyr*(1-Rabat) + " kr.")
- This:egpSetText(19,Takst*(1-Rabat) + " kr/10 sek.")
- }
- }
- EGP:drawScreen()
- timer("drawSecond",2000)
- }
- if(Status > 0) {
- Distance = (owner():pos():distance( EGP:entity():pos())/100):toString():explode(".")
- Distance2 = (owner():pos():distance( EGP2:entity():pos())/100):toString():explode(".")
- EGP:egpSetText(22,"Afstand fra taxi: " + Distance[1,string] + "m.")
- EGP2:egpSetText(22,"Afstand fra taxi: " + Distance2[1,string] + "m.")
- }
- if(chatClk() & chatClk(owner())){
- A = owner():lastSaid():lower():explode(" ")
- if(A[1,string]:lower()=="!start") {
- hideChat(1)
- if(A[2,string]=="") {
- genstartTaxi()
- }else{
- startTaxi(findPlayerByName(A[2,string]):steamID())
- }
- }elseif(A[1,string]:lower()=="!pause") {
- hideChat(1)
- pauseTaxi()
- }elseif(A[1,string]:lower()=="!slut") {
- hideChat(1)
- slutTaxi()
- }elseif(A[1,string]:lower()=="!takst") {
- hideChat(1)
- if(A[2,string]:toNumber() > 0) {
- Takst = round(A[2,string]:toNumber())
- EGP:egpSetText(19,Takst*(1-Rabat) + " kr/10 sek.")
- EGP2:egpSetText(19,Takst*(1-Rabat) + " kr/10 sek.")
- oMSG("Satte takst til "+Takst+" kr.",vec(0,255,0))
- }else{
- oMSG("Ugyldig takst",vec(200,0,0))
- }
- }elseif(A[1,string]:lower()=="!startgebyr") {
- hideChat(1)
- if(A[2,string]:toNumber() > 0) {
- StartGebyr = round(A[2,string]:toNumber())
- EGP:egpSetText(15,StartGebyr*(1-Rabat) + " kr.")
- EGP2:egpSetText(15,StartGebyr*(1-Rabat) + " kr.")
- oMSG("Satte startgebyr til "+StartGebyr+" kr.",vec(0,255,0))
- }else{
- oMSG("Ugyldigt startgebyr",vec(200,0,0))
- }
- }elseif(A[1,string]:lower()=="!rabat") {
- hideChat(1)
- if(A[2,string]:toNumber() > 0 & A[2,string]:toNumber() < 100) {
- Rabat = A[2,string]:toNumber()/100
- oMSG("Satte rabatten til "+Rabat*100+"%",vec(0,255,0))
- EGP:toggleDiscount()
- EGP2:toggleDiscount()
- }elseif(A[2,string]:toNumber() == 0){
- Rabat = A[2,string]:toNumber()/100
- oMSG("Fjernede rabat.",vec(0,255,0))
- EGP:toggleDiscount()
- EGP2:toggleDiscount()
- }else{
- oMSG("Ugyldig rabat. V"+ae()+"lg 0 for at fjerne rabatten, eller 1-99% rabat",vec(200,0,0))
- }
- }
- }
- Cursor = EGP:egpCursor(User)
- Cursor2 = EGP2:egpCursor(User2)
- if(((~User & User:keyUse()) | (~User2 & User2:keyUse())) & ops()<100){
- if((egpClick(23,Cursor) | egpClick(23,Cursor2)) & Status == 0) {
- moneyRequest(User, StartGebyr*(1-Rabat), "Startgebyr for taxi", 10)
- moneyRequest(User2, StartGebyr*(1-Rabat), "Startgebyr for taxi", 10)
- }
- }
- if(moneyClk("Startgebyr for taxi")) {
- CurUser = moneyClkPlayer()
- Status = 1
- oMSG(CurUser:name() + " har bestilt en taxi.",vec(255,255,255))
- concmd("say /pm "+ CurUser:steamID()+" Bliv st"+aa()+"ende og afvent venligst taxiens ankomst. Taximeteret er sat i gang.")
- startTaxi(CurUser:steamID())
- }elseif(moneyClk("Taxi takst")) {
- oMSG(moneyClkPlayer():name() + " har betalt for sin taxi.",vec(0,255,0))
- }
- if(moneyNoClk("Taxi takst") | moneyTimeout("Taxi takst")) {
- oMSG(moneyNoClkPlayer():name() + " har IKKE betalt for sin taxi!",vec(255,0,0))
- }
- if(clk("takst")){
- Time++
- timer("takst",10000)
- }
- if(clk("drawSecond")) {
- EGP:drawScreen2()
- timer("drawSecond1",1000)
- }
- if(clk("drawSecond1")) {
- EGP2:drawScreen()
- timer("drawSecond2",1000)
- }
- if(clk("drawSecond2")) {
- EGP2:drawScreen2()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement