Scripts
Most weapon stats could only get caught by the server.
Also, they are a bit harder to change than you might think.
Anyways, I was just answering his question.
Thanks given by:
(03 Nov 10, 05:10AM)|BC|Wolf Wrote:
(03 Nov 10, 05:08AM)Ronald_Reagan Wrote: But you could with some C++ knowledge.

Don't encourage him to change weapon stats ;)
That only leads to more cheaters.

the status of the weapons are loaded from the server and not the client, correct? o.0
its more for make mods, not cheat :)
in cube2 , I use different skins for each player model, its more for fun.

other exemple: blue have a LMG with a 20 shots(strong, more recoil) and red have a assaultrifle with 30 rounds(weaker, less recoil), blue have a sniper one shot kill(strong, more fire interval) and blue a semiauto sniper( 2 shot kill, less fire interval), 50 ammo smg vs 30 ammo smg, rapid pistol vs strong pistol, auto shotgun vs strong shotgun...
teams would be balanced..

------------
would be interesting if AC were able to easily add weapons(like true combat elite, you can add more weapons using scripts).
Thanks given by:
Yes

I thought you were talking about different weapon skins. Yes, you can use different playerskins, find instructions in "packages>models>playermodels>custom" (path is by memory, so I could be wrong >_<)

I think that AC has enough balance issues as it is, and having different weapon stats would just make it even worse ;)

I would enjoy having the ability to easily add weapons. However, its only a pipe dream.
For one: It would be extremely complex to do this within the AC code (I believe)
For two: It would ruin some of the beauty of AC
For three: It is a slightly unnecessary feature of which time's could be used more effectively to do just as unimportant things, such as p_stat and on_death/on_eventhere.
Thanks given by:
i made this new tool "switch" wich is used in c++, im trying to import some usefull functions, if you're not familiar with c++ look at some examples below the code.

ahh btw i had to make 3 diferent "case" types:
*case (for simple number matching "=").
*case_cmp (use it if you're comparing with another word or letter "strcmp").
*case_str (use it if you want to take a word or a letter of a string "strstr").
and also there is the "default" and "break", if none of the cases were found, default will be executed.


switch
//switch script by =SA=macm

alias switch [ switch1 = $arg1; st = 0; def = 0]

alias case [
    cnumargs = $numargs;
    switch2 = [];
    if (= (strcmp (getalias (concatword "arg" $cnumargs)) "break") 1) [
        loop f (- $cnumargs 1) [if (= $f 0) [] [f = (+ $f 1); add2alias_ switch2 (getalias (concatword "arg" $f))]]
    ][
        loop f $cnumargs [if (= $f 0) [] [f = (+ $f 1); add2alias_ switch2 (getalias (concatword "arg" $f))]]
    ];
    if (= (strcmp (getalias (concatword "arg" $cnumargs)) "break") 1) [
        if (= (getalias (getalias switch1)) $arg1) [
            switch2; def = 1] []
    ] [
        if (= $st 0) [
            if (= (getalias (getalias switch1)) $arg1) [
                switch2; st = 1; def = 1
            ] []
        ] [switch2; def = 1]
    ]
]


alias case_cmp [
    cnumargs = $numargs;
    switch2 = [];
    if (= (strcmp (getalias (concatword "arg" $cnumargs)) "break") 1) [
        loop f (- $cnumargs 1) [if (= $f 0) [] [f = (+ $f 1); add2alias_ switch2 (getalias (concatword "arg" $f))]]
    ][
        loop f $cnumargs [if (= $f 0) [] [f = (+ $f 1); add2alias_ switch2 (getalias (concatword "arg" $f))]]
    ];
    if (= (strcmp (getalias (concatword "arg" $cnumargs)) "break") 1) [
        if (= (strcmp (getalias (getalias switch1)) $arg1) 1) [
            switch2; def = 1] []
        ] [
            if (= $st 0) [if (= (strcmp (getalias (getalias switch1)) $arg1) 1) [
            switch2; st = 1; def = 1] []
    ] [switch2; def = 1]]
]


alias case_str [
    cnumargs = $numargs;
    switch2 = [];
    if (= (strcmp (getalias (concatword "arg" $cnumargs)) "break") 1) [
        loop f (- $cnumargs 1) [if (= $f 0) [] [f = (+ $f 1); add2alias_ switch2 (getalias (concatword "arg" $f))]]
    ][
        loop f $cnumargs [if (= $f 0) [] [f = (+ $f 1); add2alias_ switch2 (getalias (concatword "arg" $f))]]
    ];
    if (= (strcmp (getalias (concatword "arg" $cnumargs)) "break") 1) [
        if (= (strstr (getalias (getalias switch1)) $arg1) 1) [
            switch2; def = 1] []
        ] [
            if (= $st 0) [if (= (strstr (getalias (getalias switch1)) $arg1) 1) [
            switch2; st = 1; def = 1] []
    ] [switch2; def = 1]]
]

alias default [
    if (= $def 0) [
        cnumargs = $numargs;
        switch2 = [];
        loop f $cnumargs [f = (+ $f 1); add2alias_ switch2 (getalias (concatword "arg" $f))];
        switch2
        ] [
    ]
]


examples of usage:
alias test [
switch x;
case 0     echo "zero"
case 1     echo "one"
case 2     echo "two"
case 3     echo "three"
default     echo "error - i dont have that number"
]

if x=1 output = one two three  (switching line)
if x=8 output = error - i dont have that number

alias test1 [
switch x;
case 0     echo "zero" break;
case 1     echo "one" break;
case 2     echo "two" break
case 3     echo "three" break
default     echo "error - i dont have that number"
]

if x=2 output= two
if x=6 output= error - i dont have that number

alias test2 [
con = $conline
switch con
case_str test     echo "you are testing" break;
case_str n         echo "no" break;
case_cmp y       echo "yes" break
default              echo "wtf are you doing???"
]

if there is "test" word or "test" in a word (example: testing) in the last console line      output= you are testing
if there is only the "y" letter in the last console line   output= yes
Thanks given by:
One step closer to a compiler, macm! GJ!
Thanks given by:
Great! :D
I gotta ask, how does this part work:
getalias (concatword "arg" $cnumargs)
When it doesn't have a $ in front of "arg"?
Like this:
getalias (concatword "$arg" $cnumargs)
Though it seems to work properly. Good job then! :D
Thanks given by:
Because getalias does that (retrieve value of a given symbol), like $ does. The difference is the indirection - $ binds to the next literal token (or changes the interpretation of it, if you prefer), whereas getalias obtains its argument like any other function.
Thanks given by:
hi,somebody can make a script.. for 1.0.4 server(maybe also for 1.1.03) "anticheat" when a player(hacker) kills more than 100 peoples get autoban,it would greatly complicate their "game"
Thanks given by:
you mean if someone has more than 100 frags, he is hacking?
Thanks given by:
well,150-200 frags definitely a hack,for 15 minutes not possible to kill
Thanks given by:
maybe dude is just gibbing all the time ?
and will get 200 kills
Thanks given by:
gibbing?you never played in assaultcube?:D it is as much as possible possible to kill 100-150 on the smallest custom map,200... not real,OR another script.. when hacker overheating he usually kill 30 - 50 peoples in one minute
Thanks given by:
Robtics got 150 some kills the other day on TDM ac_douze, and I assure you, he does not cheat. Don't just make assumptions about things and announce them publically if you have no real proof.
Thanks given by:
pufig, just cause you can't do it, doesn't mean others can't ;)

Though, I think an idea for the next version could be that anyone getting more than 250 should get autobanned. In my almost 2 years of Assaultcube I have never seen someone with 250+ frags (except, of course, the instant gib hackers :))
Thanks given by:
I've made a beast and named it the WholeString search tool.
It's like a cross between strcmp and strstr.
example:
/echo (wstr biglongword word)
0

/echo (wstr [big long word] word)
1

/echo (wstr [big long word] wordy)
0

/echo (wstr [if (= (currentprimary) 4) [echo [I heard every word]] [echo $curname don't need that crap!]] word)
1
It's really useful for picking words out of CubeScript punctuation, when usually the punctuation around the word is considered by the game engine as part of the string. I made an updated version of findbind.cfg using this.
Thanks given by:
(08 Nov 10, 12:00AM)Bukz Wrote: Robtics got 150 some kills the other day on TDM ac_douze, and I assure you, he does not cheat. Don't just make assumptions about things and announce them publically if you have no real proof.

Bukz i mean hacker kill 100 peoples and no 1 death himself... true??? hacker because usually no dies or dies 4 - 5 times in one round game,not more than 5 usually,this script will stop desire a hacker, because for the most important thing the hacker does not have any restrictions, any restriction will cause backlash
Thanks given by:
Nah, when I play against Bukz I always get over 100 frags but have 3 or fewer deaths. I shouldn't get kicked just for playing noobs!
Thanks given by:
ehh nice one DES|V-man, very usefull,
i remeber needing a script to find a letter in a word, like (at word 2) output: "r",
gave up after trying in many different ways :s
Thanks given by:
Thanks! :D
In order to isolate it from more than just CubeScript punctuation, it would require many more permutations, slowing down the process exponentially.
I'm already rather embarrassed that it's so inefficient... XD
Thanks given by:
Please stay on topic, unless if you're posting scripts, requesting help about scripts, or have something to say about scripts please keep it out of this thread.

In the spirit of the thread, a sneek peek at an upcoming stats collecting/reporting script by me and V-Man. :)
Thanks given by:
:O Beans have been spilt!
* V-Man works faster
Thanks given by:
New Whois feature.
Save a file with your mates/friends/enemies IP's as friend_list.cfg on /AssaultCube/config with this format:
Remember to add an empty space at the end of every friend line
[cubescript]alias friendlist [
123.123.123.x 123.123.123.80 "Megan Fox"
69.69.69.x 69.69.69.69 Beyonce
88.88.88.x 88.88.88.88 Shakira
][/cubescript]

Now copy and paste this to autoexec.cfg:

[cubescript]// Whois New feature by VallDiGna and DES|V-Man
exec config/friend_list.cfg
if (! (strstr $mapstartalways ishe)) [add2alias mapstartalways [sleep 1000 [ishe]]] []
ishe = [
if (strstr $conline "WHOIS ") [
if (> (listlen $friendlist) 0) [
if (&& (= (currole) 0) (! (strcmp (curserver 1) 60.234.72.144))) [ // NOT ADMIN AND NOT Randumkiwi Server
loop i (div (listlen $friendlist) 3)[
alias iterator (* $i 3)
if (strstr $conline (at $friendlist $iterator)) [
echo (format "This player is on same /24 IP-Range than %1" (at $friendlist (+ $iterator 2)))
][]
]
][
loop i (div (listlen $friendlist) 3)[
alias iterator (+ (* $i 3) 1)
if (strstr $conline (at $friendlist $iterator)) [
echo (format "This player is %1" (at $friendlist (+ $iterator 1)))
][]
]
]
][
echo "Friend list is empty! You don't have friends :D"
]
][]
sleep 1 [ishe]
][/cubescript]

Now, when you execute /whois command, if the player is on list, the real name will be displayed. something like this:
[Image: scripta.jpg]
Usefull if you've got friends who change nick, or if someone is impersonating other player.
Thanks given by:
MusicMan10 is in Beyonce's range! Nice script!
Thanks given by:
I forgot to mention, in order for Megan Fox to be considered the third item in the list, you'll want to put her name in quotes.
Thanks given by:
I got a request for a script, which would also help others hopefully :)

I have a long list of private servers for 1.1, but I would love for my to type something like /private and a menu to pop up with the list of servers so I can go through them with the arrow keys and with enter choose one and connect directly to it.

It's the scripter's decision whether to make categories for them like MyS Servers...M|A Servers...etc

I was also thinking for a way, like when you are telling others players the /connect to a server for a match/inter.

It would be damn easy for them to simply say the server name and for me to find it on the menu, it would be pretty tedious when I arrange a server and say the server name from the menu but the only way for knowing the /connect would be to look through my config.

So could it be possible that every time I click on a server to connect, it first echos it on the console 2-3 times so others can see as well and then takes me to that server; all in 1-2 seconds?

Here's the list for the interested ones :D

MYS
MyS CTF Classic GER
connect mys.aa.am 21034

MyS Train GER
connect mys.aa.am 20040

MyS Match #1 GER
connect mys.aa.am 21111 match

MyS Match #2 GER
connect mys.aa.am 22222 match

MyS Match #3 GER
connect mys.aa.am 23333 match

MyS Dm GER
connect mys.aa.am 20060

MyS Coop GER
connect mys.aa.am 20070

MyS Ctf GER
connect mys.aa.am 20030

MyS T/Osok GER
connect mys.aa.am 20020

MyS osok GER
connect mys.aa.am 20024

MyS KoF Germany Chris & Analpanda GER
connect mys.aa.am 20036

MyS LSS GER
connect mys.aa.am 20050

MyS 3030 |Private| GER
connect mys.aa.am 3030

MyS 3020 |Private| GER
connect mys.aa.am 3020

MyS 3010 |Private| GER
connect mys.aa.am 3010

MyS 3333 |Match| GER
connect mys.aa.am 3333 match

MyS 4444 |Match| GER
connect mys.aa.am 4444 match

MyS 5555 |Match| GER
connect mys.aa.am 5555 match

MyS Finland #1
connect fi.mysick.tk 28763

MyS Finland #2
connect fi.mysick.tk 28765

US MyS Train
connect us.mysick.tk 21040

US MyS CTF
connect us.mysick.tk 21030

US MyS Match #1
connect us.mysick.tk 21111 match

US MyS Match #2
connect us.mysick.tk 22222 match

=MyS= CTF Server POL
connnect pl.mysick.tk 4444

=MyS= T/OSOK Server POL
connect pl.mysick.tk 5555


TEE-WHY-DEE
connect match.tearyoudown.com 21000 match


BCFH
connect bcfh.game-server.cc 3040 war


w00p
connect sol.woop.us 9010 (United States)

connect idis.woop.us 9010 (France)

connect hlin.woop.us 9010 (United Kingdom)

connect hlin.woop.us 9030 (United Kingdom)

connect hlin.woop.us 9040 (United Kingdom)


I know this will take time to make, but I would be extremely thankful if someone set their foot into this, plus, it would also hopefully be helpful for others :)
Thanks given by:
Wolf: From DrauL

Bind to a key, e.g
bind "p" [showmenu "Private Connects"]

//Connects
//Main
newmenu "Private Connects"
menuitem "ausD" [showmenu "ausD"]
menuitem "MyS" [showmenu "MyS"]
menuitem "TyD" [connect match.tearyoudown.com 21000 match]
menuitem "BCFH" [connect bcfh.game-server.cc 3040 war]
menuitem "w00p" [showmenu "woop"]

//ausD
newmenu "ausD"
menuitem "ausD Clash" [say "I'm connecting to /connect ausd.info 9000"; connect ausd.info 9000]
menuitem "ausD Usaye 1100" [say "I'm connecting to /connect us.ausd.info 1100"; connect us.ausd.info 1100]
menuitem "ausD Usaye 1110" [say "I'm connecting to /connect us.ausd.info 1110"; connect us.ausd.info 1110]
menuitem "ausD Usaye 1120" [say "I'm connecting to /connect us.ausd.info 1120"; connect us.ausd.info 1120]
menuitem "ausD Usaye 1130" [say "I'm connecting to /connect us.ausd.info 1130"; connect us.ausd.info 1130]

//MyS
newmenu "MyS"
menuitem "MyS CTF Classic GER" [say "I'm connecting to /connect mys.aa.am 21034"; connect mys.aa.am 21034]
menuitem "MyS Train GER" [say "I'm connecting to /connect mys.aa.am 20040";connect mys.aa.am 20040]
menuitem "MyS Match #1 GER" [say "I'm connecting to /connect mys.aa.am 21111"; connect mys.aa.am 21111 match]
menuitem "MyS Match #2 GER" [say "I'm connecting to /connect mys.aa.am 22222"; connect mys.aa.am 22222 match]
menuitem "MyS Match #3 GER" [say "I'm connecting to /connect mys.aa.am 23333"; connect mys.aa.am 23333 match]
menuitem "MyS Dm GER" [say "I'm connecting to /connect mys.aa.am 20060"; connect mys.aa.am 20060]
menuitem "MyS Coop GER" [say "I'm connecting to /connect mys.aa.am 20070"; connect mys.aa.am 20070]
menuitem "MyS Ctf GER" [say "I'm connecting to /connect mys.aa.am 20030"; connect mys.aa.am 20030]
menuitem "MyS Tosok GER" [say "I'm connecting to /connect mys.aa.am 20020"; connect mys.aa.am 20020]
menuitem "MyS osok GER" [say "I'm connecting to /connect mys.aa.am 20024"; connect mys.aa.am 20024]
menuitem "MyS KoF Germany Chris & Analpanda GER" [say "I'm connecting to /connect mys.aa.am 20036"; connect mys.aa.am 20036]
menuitem "MyS LSS GER" [say "I'm connecting to /connect mys.aa.am 20050"; connect mys.aa.am 20050]
menuitem "MyS 3030 |Private| GER" [say "I'm connecting to /connect mys.aa.am 3030"; connect mys.aa.am 3030]
menuitem "MyS 3020 |Private| GER" [say "I'm connecting to /connect mys.aa.am 3020"; connect mys.aa.am 3020]
menuitem "MyS 3010 |Private| GER" [say "I'm connecting to /connect mys.aa.am 3010"; connect mys.aa.am 3010]
menuitem "MyS 3333 |Match| GER" [say "I'm connecting to /connect mys.aa.am 3333"; connect mys.aa.am 3333 match]
menuitem "MyS 4444 |Match| GER" [say "I'm connecting to /connect mys.aa.am 4444"; connect mys.aa.am 4444 match]
menuitem "MyS 5555 |Match| GER" [say "I'm connecting to /connect mys.aa.am 5555"; connect mys.aa.am 5555 match]
menuitem "MyS Finland #1" [say "I'm connecting to /connect fi.mysick.tk 28763"; connect fi.mysick.tk 28763]
menuitem "MyS Finland #2" [say "I'm connecting to /connect fi.mysick.tk 28765"; connect fi.mysick.tk 28765]
menuitem "US MyS Train" [say "I'm connecting to /connect us.mysick.tk 21040"; connect us.mysick.tk 21040]
menuitem "US MyS CTF" [say "I'm connecting to /connect us.mysick.tk 21030"; connect us.mysick.tk 21030]
menuitem "US MyS Match #1" [say "I'm connecting to /connect us.mysick.tk 21111"; connect us.mysick.tk 21111 match]
menuitem "US MyS Match #2" [say "I'm connecting to /connect us.mysick.tk 22222"; connect us.mysick.tk 22222 match]
menuitem "=MyS= CTF Server POL" [say "I'm connecting to /connect pl.mysick.tk 4444"; connect pl.mysick.tk 4444]
menuitem "=MyS= T/OSOK Server POL" [say "I'm connecting to /connect pl.mysick.tk 5555"; connect pl.mysick.tk 5555]

//w00p
newmenu "woop"
menuitemvar [concat sol 9010 United States] [connect sol.woop.us 9010]
menuitemvar [concat idis 9010 France] [connect idis.woop.us 9010]
menuitemvar [concat hlin 9010 UK] [connect hlin.woop.us 9010]
menuitemvar [concat hlin 9030 UK] [connect hlin.woop.us 9030]
menuitemvar [concat hlin 9040 UK] [connect hlin.woop.us 9040]
Thanks given by:
I LUV YOU DRAUL + CASTIEL <3

Only problem though, w00p menu doesn't work. Any ideas? :D
Thanks given by:
The "w00p" menu should work, but won't yell out the server in chat.
Thanks given by:
(16 Nov 10, 03:48AM)|BC|Wolf Wrote: I LUV YOU DRAUL + CASTIEL <3

Only problem though, w00p menu doesn't work. Any ideas? :D

Fixed, thanks for the help DES|Bukz, there was a missing ']'

//Connects
//Main
newmenu "Private Connects"
menuitem "ausD" [showmenu "ausD"]
menuitem "MyS" [showmenu "MyS"]
menuitem "TyD" [connect match.tearyoudown.com 21000 match]
menuitem "BCFH" [connect bcfh.game-server.cc 3040 war]
menuitem "w00p" [showmenu "woop"]

//ausD
newmenu "ausD"
menuitem "ausD Clash" [say "I'm connecting to /connect ausd.info 9000"; connect ausd.info 9000]
menuitem "ausD Usaye 1100" [say "I'm connecting to /connect us.ausd.info 1100"; connect us.ausd.info 1100]
menuitem "ausD Usaye 1110" [say "I'm connecting to /connect us.ausd.info 1110"; connect us.ausd.info 1110]
menuitem "ausD Usaye 1120" [say "I'm connecting to /connect us.ausd.info 1120"; connect us.ausd.info 1120]
menuitem "ausD Usaye 1130" [say "I'm connecting to /connect us.ausd.info 1130"; connect us.ausd.info 1130]

//MyS
newmenu "MyS"
menuitem "MyS CTF Classic GER" [say "I'm connecting to /connect mys.aa.am 21034"; connect mys.aa.am 21034]
menuitem "MyS Train GER" [say "I'm connecting to /connect mys.aa.am 20040";connect mys.aa.am 20040]
menuitem "MyS Match #1 GER" [say "I'm connecting to /connect mys.aa.am 21111"; connect mys.aa.am 21111 match]
menuitem "MyS Match #2 GER" [say "I'm connecting to /connect mys.aa.am 22222"; connect mys.aa.am 22222 match]
menuitem "MyS Match #3 GER" [say "I'm connecting to /connect mys.aa.am 23333"; connect mys.aa.am 23333 match]
menuitem "MyS Dm GER" [say "I'm connecting to /connect mys.aa.am 20060"; connect mys.aa.am 20060]
menuitem "MyS Coop GER" [say "I'm connecting to /connect mys.aa.am 20070"; connect mys.aa.am 20070]
menuitem "MyS Ctf GER" [say "I'm connecting to /connect mys.aa.am 20030"; connect mys.aa.am 20030]
menuitem "MyS Tosok GER" [say "I'm connecting to /connect mys.aa.am 20020"; connect mys.aa.am 20020]
menuitem "MyS osok GER" [say "I'm connecting to /connect mys.aa.am 20024"; connect mys.aa.am 20024]
menuitem "MyS KoF Germany Chris & Analpanda GER" [say "I'm connecting to /connect mys.aa.am 20036"; connect mys.aa.am 20036]
menuitem "MyS LSS GER" [say "I'm connecting to /connect mys.aa.am 20050"; connect mys.aa.am 20050]
menuitem "MyS 3030 |Private| GER" [say "I'm connecting to /connect mys.aa.am 3030"; connect mys.aa.am 3030]
menuitem "MyS 3020 |Private| GER" [say "I'm connecting to /connect mys.aa.am 3020"; connect mys.aa.am 3020]
menuitem "MyS 3010 |Private| GER" [say "I'm connecting to /connect mys.aa.am 3010"; connect mys.aa.am 3010]
menuitem "MyS 3333 |Match| GER" [say "I'm connecting to /connect mys.aa.am 3333"; connect mys.aa.am 3333 match]
menuitem "MyS 4444 |Match| GER" [say "I'm connecting to /connect mys.aa.am 4444"; connect mys.aa.am 4444 match]
menuitem "MyS 5555 |Match| GER" [say "I'm connecting to /connect mys.aa.am 5555"; connect mys.aa.am 5555 match]
menuitem "MyS Finland #1" [say "I'm connecting to /connect fi.mysick.tk 28763"; connect fi.mysick.tk 28763]
menuitem "MyS Finland #2" [say "I'm connecting to /connect fi.mysick.tk 28765"; connect fi.mysick.tk 28765]
menuitem "US MyS Train" [say "I'm connecting to /connect us.mysick.tk 21040"; connect us.mysick.tk 21040]
menuitem "US MyS CTF" [say "I'm connecting to /connect us.mysick.tk 21030"; connect us.mysick.tk 21030]
menuitem "US MyS Match #1" [say "I'm connecting to /connect us.mysick.tk 21111"; connect us.mysick.tk 21111 match]
menuitem "US MyS Match #2" [say "I'm connecting to /connect us.mysick.tk 22222"; connect us.mysick.tk 22222 match]
menuitem "=MyS= CTF Server POL" [say "I'm connecting to /connect pl.mysick.tk 4444"; connect pl.mysick.tk 4444]
menuitem "=MyS= T/OSOK Server POL" [say "I'm connecting to /connect pl.mysick.tk 5555"; connect pl.mysick.tk 5555]

//w00p
newmenu "woop"
menuitemvar [concat sol 9010 United States] [connect sol.woop.us 9010]
menuitemvar [concat idis 9010 France] [connect idis.woop.us 9010]
menuitemvar [concat hlin 9010 UK] [connect hlin.woop.us 9010]
menuitemvar [concat hlin 9030 UK] [connect hlin.woop.us 9030]
menuitemvar [concat hlin 9040 UK] [connect hlin.woop.us 9040]

Thanks given by:
Cheers :)
Thanks given by: