Hop til indhold
Stavox

Chat commands


Expel

Recommended Posts

runOnChat(1),

 

if(chatClk(owner)){

    local S = lastSaid():lower():explode(" "),

 

    if(S:string(1) == "!hej"){

        print("hej med dig")

    }

}

 

 

Det kan gøres på rimeligt mange måder, men det er sådan jeg plejer at gøre.

Link til kommentar
Del på andre sites

1 time siden, Scaled skrev:

runOnChat(1),

 

if(chatClk(owner)){

    local S = lastSaid():lower():explode(" "),

 

    if(S:string(1) == "!hej"){

        print("hej med dig")

    }

}

 

 

Det kan gøres på rimeligt mange måder, men det er sådan jeg plejer at gøre.

Man skal selvfølgelig ikke skrive "if chatClk owner" hvis alle skal kunne bruge den.

Link til kommentar
Del på andre sites

@persist Titel:string

 

runOnChat(1),

 

if(chatClk(owner)){

    local S = lastSaid():lower:explode(" "):string(1),

 

    if(S == "!titel"){

        hideChat(1),

        Titel = lastSaid():sub(8,lastSaid():length()),

        print("Titlen er "+Titel)

    }

}

 

Igen, du kan gøre det på flere måder. Eksperimenter med det i stedet for alle de spørgsmål.

Link til kommentar
Del på andre sites

Har prøvet selv i Ca 2 - 3 uger så tænkte at jeg nu ville prøve at spørge

1 time siden, Scaled skrev:

@persist Titel:string

 

runOnChat(1),

 

if(chatClk(owner)){

    local S = lastSaid():lower:explode(" "):string(1),

 

    if(S == "!titel"){

        hideChat(1),

        Titel = lastSaid():sub(8,lastSaid():length()),

        print("Titlen er "+Titel)

    }

}

 

Igen, du kan gøre det på flere måder. Eksperimenter med det i stedet for alle de spørgsmål.

Nogle der vil prøve at forklare koden vil gerne lære at kode det og ikke bare at kopiere

 Hvis i har tid og lyst

Link til kommentar
Del på andre sites

1 time siden, ibex123 skrev:

Har prøvet selv i Ca 2 - 3 uger så tænkte at jeg nu ville prøve at spørge

Nogle der vil prøve at forklare koden vil gerne lære at kode det og ikke bare at kopiere

 Hvis i har tid og lyst

runOnChat(1)

Dette giver E2en lov til at tjekke chatten.

if(chatClk(owner)){
}

Denne kommando tjekker om det ejeren der skriver i chatten.

T = lastSaid():lower():explode(" ")

Dette er vel bare en form for forkortelse, I guess.

if(T[1,string]=="/hej"){
}

Denne tjekker om den sidste besked der blev skrevet er: /hej

hideChat(1)
print("Hello!")

Dette er bare hvad E2en skal gøre, hvis den klikker 1

 

Hele E2en

if(first()) {
	runOnChat(1)
}

elseif(chatClk(owner())) {
	T = lastSaid():lower():explode(" ")
	if(T[1,string] == "/hej") {
		hideChat(1)
		print("Hello!")
	}
}

Der er selvfølgelig mange forskellige måder at opsætte sådan en E2, men det er i hvert fald sådan jeg ville gøre 🙂

Link til kommentar
Del på andre sites

32 minutter siden, Maloni skrev:

@Bims nu er du jo så klog at du bør give en version der bruger switch cases + der er ingen grund til det elseif du har skrevet i den overstående kode

Det er da fint nok at bruge elseif der og der er ingen grund til at bruge switch cases, hvis man alligevel har kun 1 eller 2 chat commands.

Link til kommentar
Del på andre sites

20 minutter siden, Bims skrev:

Det er da fint nok at bruge elseif der og der er ingen grund til at bruge switch cases, hvis man alligevel har kun 1 eller 2 chat commands.

Sandt nok dog bruger jeg aldrig elseif på den måde du gør men hvis nu Ibex vil lave en e2 med en del chatcommands så lande vise ham ellers gør jeg

Link til kommentar
Del på andre sites

@persist Titel:string

 

runOnChat(1),

 

if(chatClk(owner())){

    local S = lastSaid():lower():explode(" "):string(1),

 

    switch(S){

        case "!titel",

            hideChat(1),

            Titel = lastSaid():sub(8,lastSaid():length()),

            print("Titlen er "+Titel)

        break

       

         case "!titelnavn",

             hideChat(1),

             print("Titlen er "+Titel)

         break

    }

}

 

Med switch og cases.

Link til kommentar
Del på andre sites

1 minut siden, Scaled skrev:

@persist Titel:string

 

runOnChat(1),

 

if(chatClk(owner)){

    local S = lastSaid():lower:explode(" "):string(1),

 

    switch(S){

        case "!titel",

            hideChat(1),

            Titel = lastSaid():sub(8,lastSaid():length()),

            print("Titlen er "+Titel)

        break

       

         case "!titelnavn",

             hideChat(1),

             print("Titlen er "+Titel)

         break

    }

}

 

Med switch og cases.

mangler du ikke default,

???

Link til kommentar
Del på andre sites

12 minutter siden, Scaled skrev:

Jeg mener ikke man behøver default eller break - jeg bruger ihvertfald aldrig default, dog bruger jeg normalt heller ikke switch til chatcommands.

Hmn, kan godt se man faktisk ikke behøver default, men du har et par andre fejl i din E2.. @ibex123 her er Scaleds bare fixed.

@persist Titel:string

if(first()) {
    runOnChat(1)
}

elseif(chatClk(owner())) {
    local S = lastSaid():lower():explode(" "):string(1)
    switch(S) {
		
	case "!titel",
        hideChat(1)
        Titel = lastSaid():explode(" "):string(2)
        print("E2en nye titel er: "+Titel)
        break
		
	case "!titelnavn",
	hideChat(1)
	print("Titel: "+Titel)
	break

	}
}

 

Link til kommentar
Del på andre sites

5 minutter siden, Bims skrev:

Hmn, kan godt se man faktisk ikke behøver default, men du har et par andre fejl i din E2.. @ibex123 her er Scaleds bare fixed.


@persist Titel:string

if(first()) {
    runOnChat(1)
}

elseif(chatClk(owner())) {
    local S = lastSaid():lower():explode(" "):string(1)
    switch(S) {
		
	case "!titel",
        hideChat(1)
        Titel = lastSaid():explode(" "):string(2)
        print("E2en nye titel er: "+Titel)
        break
		
	case "!titelnavn",
	hideChat(1)
	print("Titel: "+Titel)
	break

	}
}

 

Jeg mener, at hvis du skriver lastSaid():lower():explode(" "):string(2), så er startbogstavet ikke stort. Altså hvis du vil kalde den "Hej", så angiver den bare Titel som "hej", Derfor bruger jeg sub. Det skal du dog ikke hænge mig op på.

Derudover behøver runOnChat(1), ikke at stå i if(first()) for at virke.

 

Så der er teknisk set ingen fejl @Bims, rekt hehe

Link til kommentar
Del på andre sites

29 minutter siden, Scaled skrev:

local S = lastSaid():lower:explode(" "):string(1),

 

30 minutter siden, Scaled skrev:

if(chatClk(owner)){

 

8 minutter siden, Scaled skrev:

Så der er teknisk set ingen fejl @Bims, rekt hehe

Så det er der ikke?!?!

Du mangler vidst et par ()

rekt, HEHEHEHEHE

Udover det har jeg ikke brugt lower() til at definere titel string.

Så det burde printe Hej som Hej

20 minutter siden, Bims skrev:

Titel = lastSaid():explode(" "):string(2)

 

Link til kommentar
Del på andre sites

Nu har jeg dog lavet en ny version, ved dog ikke hvor meget mere optimeret den er men er praktisk hvis man ønsker at hvide hvordan man gør sådan at alle kommands skal starte med fx !gunshop og også hvordan man giver et variabel et nummer via chat commands

@persist Num:number

if(first()) {
    runOnChat(1)
}

if(chatClk(owner())){
    local S = owner():lastSaid():explode(" ")
    switch(S[1, string]:lower() == "!e2"){
    
    case S[2, string]:lower() == "hej",
     hideChat(1)
     print("Hello world")
    break
    
    case S[2, string]:lower() == "bye",
    hideChat(1)
    Num = S[3, string]:toNumber()
    print("Bye world "+Num)   
    }    

}


Her er malonis meget professionel forklaring på koden

Vi hopper bare ind i malonis stads fordi alt andet er allerede forklaret

switch(S[1, string]:lower() == "!e2")

Ok så nu har vi switch det er sådan set et if statement bare at det er mere optimeret og det siger Hvis det some ejeren af e2en sidst sage er !e2 så gør et eller andet sejt

 case S[2, string]:lower() == "hej",
     hideChat(1)
     print("Hello world")
 break

ok så nu har vi vores første case som er sådan set et if statement der bliver spurgt om hvis switch is true og caseb spørger om hvis det som ejeren skrev efter !e2 er ligmed hej så kører den hideChat(1) som gør at folk ikke kan se hvad du har skrevet og printer i din chat Hello World derefter kører det et break som sigere hvis dette ikke er sandt så fortsæt til næste case

    case S[2, string]:lower() == "bye",
    hideChat(1)
    Num = S[3, string]:toNumber()
    print("Bye world "+Num) 

Dette er så anden case som spørger om hvis det som ejeren sagde efter !e2 er bye så kør hideChat (Det har jeg forklaret) så siger den at variablet Num (Som er et nummer sjovt nok) er = det tredje ting der er blevet sagt og til sidst er der et :toNumber() tinge ling som konvertere stringet til et nummer derefter printer den Bye world og nummeret

 

 

Edit: nu hved jeg ikke hvor vigtigt det er at i S variablet at tilføje owner() men er maloni gør det alligevel fordi jeg er sej dog hvis i ved at man ikke skal bruge det så venligst sig det

Link til kommentar
Del på andre sites

Arkiveret

Dette emne er nu arkiveret og er lukket for yderligere svar

Gæst
Dette emne er nu lukket for yderligere svar
×
×
  • Tilføj...

COOKIE- OG PRIVATLIVSPOLITIK PÅ STAVOX.DK

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privatlivspolitik - Vilkår for brug.