Counter-Strike Server Info Script Hej alle i testmax'er :) Er blevet spurgt om jeg vil prøve guide jer igennem en gang CS Server Script Guide, og vil jeg da med glæde prøve.. Såå laad os da komme igang :)
on *:TEXT:!Server*:#: {
if ($2) { set %chan $chan | sockudp -k server $replace($2,:,$chr(32)) ÿÿÿÿTSource Engine Query | .timerout 1 2 timeout }
else { msg $chan Husk at skrive en IP Adresse }
}
Her tjekker vi om $2 er sat (Altså ordet efter !Server), hvis den er sat køre vi vores sockudp.
Hvis ikke $2 er sat, hopper vi ned til
else hvor den vil skrive at der skal skrives en IP Adresse.
Timeren bruges til at tjekke om den for info fra serveren, hvis ikke skriver den at den ikke kunne få send info.
Få et lille eksempel på vores sockudp: - sockudp -k [
NAVN] [
IP hvor den er delt op i 2 ved ':' tegnet] ÿÿÿÿTSource Engine Query
- ÿÿÿÿTSource Engine Query [
Dette er til at køre den nye protocol]
Så har vi vores timeout(
alias) som vi bruger hvis den ikke kan få info fra serveren. Hvis ikke det lykkes at få hentet info, vil den skrive på din channel at der ikke kunne hentes data.
alias timeout {
if (%chan) { msg %chan Kunne ikke hente info.. | unset %chan }
}
Ned til det lidt mere inviklet del af scriptet.
Ja, det er så vores
udpread, som vi har sat igang oppe ved vores sockudp.
on *:udpread:server: {
sockread &info
var %i = $calc($bfind(&info,1,0) + 1)
var %name = $bvar(&info,%i,100).text
inc %i $calc($len(%name) + 1)
var %map = $bvar(&info,%i,100).text
inc %i $calc($len(%map) + 1)
var %mod = $bvar(&info,%i,100).text
inc %i $calc($len($bvar(&info,%i,100).text) + 1)
inc %i $calc($len($bvar(&info,%i,100).text) + 1)
var %numplayers = $bvar(&info,%i,1)
inc %i
var %maxplayers = $bvar(&info,%i,1)
inc %i 4
var %password = $bvar(&info,%i,1)
msg %chan Navn: %name - Bane: %map - Type: %mod - Spiller: %numplayers $+ / $+ %maxplayers - Kodeord: %password | unset %chan | .timerout off
}
Vi starter med at læse fra serveren ved at bruge
sockread &info som er sat i
bvar.
Derefter køre den der ud af med at hente info. Som i nok kan se har det en længere forklaring jeg faktisk ikke helt selv kender helt til ;)
Det info der vil komme i jeres variabler: %name = Navnet på serveren
%map = Navnet på mappet
%mod = Hvad type der bliver spillet (Fx Counter-Strike)
%numplayers = Antal spillere på serveren
%maxplayers = Antal spillere der max kan være på serveren
%password = Om der er kode på serveren (1 eller 0)
Prikken over i'et så har jeg sat en
msg %chan på, så den skriver alt info ud på din channel.
Hele Scriptet: on *:TEXT:!Server*:#: {
if ($2) { set %chan $chan | sockudp -k server $replace($2,:,$chr(32)) ÿÿÿÿTSource Engine Query | .timer 1 2 timeout }
else { msg $chan Husk at skrive en IP Adresse }
}
alias timeout {
if (%chan) { msg %chan Kunne ikke hente info.. | unset %chan }
}
on *:udpread:server: {
sockread &info
var %i = $calc($bfind(&info,1,0) + 1)
var %name = $bvar(&info,%i,100).text
inc %i $calc($len(%name) + 1)
var %map = $bvar(&info,%i,100).text
inc %i $calc($len(%map) + 1)
var %mod = $bvar(&info,%i,100).text
inc %i $calc($len($bvar(&info,%i,100).text) + 1)
inc %i $calc($len($bvar(&info,%i,100).text) + 1)
var %numplayers = $bvar(&info,%i,1)
inc %i
var %maxplayers = $bvar(&info,%i,1)
inc %i 4
var %password = $bvar(&info,%i,1)
msg %chan Navn: %name - Bane: %map - Type: %mod - Spiller: %numplayers $+ / $+ %maxplayers - Kodeord: %password | unset %chan
}
Håber i kan bruge det, kan desværre ikke forklare det bedre end jeg har gjort :)
DenniZ 'dStar' Nielsen takker af for denne gang :)