דרישות:
מירק
ידע בסקריפטים
סיסמת הרקון של השרת
לפני שנתחיל:
דבר ראשון נכניס את האיפי של השרת למשתנה בצורה הזו:
קוד: בחר הכל
/set %ip IP:PORT
כמובן ש IP:PORT
זה איפי והפורט של השרת
דבר שני ניבחר פורט מסוים שיוסבר בהמשך למה הוא משמש
אני מאוד אוהב את הפורט 7121 אז יאללה למה לא
נכניס את הפורט למישתנה בעזרת הפקודה
קוד: בחר הכל
/set %gatset.port 7121
קוד: בחר הכל
/set %Rconpass 123
123 = סיסמת הריקון
עכשיו, מה זה לוגים?
לוגים זה כל מה הקורה במישחק במישפטים כמו:
קוד: בחר הכל
-S Server say "Hi MircX"
-S Server cvar "sv_restart" = "1"
-S World triggered "Restart_Round_(1_second)"
-S Team "CT" scored "1" with "0" players
-S Team "TERRORIST" scored "0" with "1" players
-S Server cvar "sv_restart" = "0"
-S "PLAYER3 <3 ICECRIM<1><STEAM_0:0:10413263><TERRORIST>" triggered "Spawned_With_The_Bomb"
-S World triggered "Round_Start"
בידיוק באותו הצורה באופן שוטף
כדי לעשות דבר כזה דבר ראשון צריך לרשום את האיפי שלנו לשרת עצמו כדי שישלח את הנתונים אלינו
עושים זות בעזרת הפקודה:
קוד: בחר הכל
logaddress_add $ip %gatset.port
עכשיו נפרט
logaddress_add - זות הפקודה
$ip - מחזיר של האיפי של המחשב
%gatset.port - הפורט שלנו
תבינו לא מספק שהשרת ישלח את המידע למחשב אנכנו צריכים לציין גם מיקום במחשב ולצורך זה יש את הפורט הזה
עכשיו כדי לשלוח לשרת את הפקודות לשרת HL נשתמש באלייס הבא:
קוד: בחר הכל
alias rconcmd {
sockudp -k rconcmd $gettok(%ip,1,58) $gettok(%ip,2,58) $str($chr(255),4) $+ rcon %challenge.rcon " $+ %Rconpass $+ " $1-
}
פתיחת האליס
קוד: בחר הכל
alias rconcmd {
פותח סוקט
קוד: בחר הכל
sockudp -k rconcmd
מחזיר את האיפי והפורט של השרת שמוגדר במשתנה %ip עם רווח במקום נקודותיים
קוד: בחר הכל
$gettok(%ip,1,58) $gettok(%ip,2,58)
המידע שאנו שולחים לשרת בנוי מכמה חלקים:
קוד: בחר הכל
str($chr(255),4) $+ rcon %challenge.rcon " $+ %Rconpass $+ " $1-
str($chr(255),4) - חובה בכל אתחלת פקודה שנשלחת לשרת HL
rcon = מילה המציינת לשרת שאנו שולחים לו פקודת רקון
%challenge.rcon - מספר מסויים שהשרת מחזיר לנו , חובה לשלוח אותו כאשר אנו רוצים לשלוח פקודת רקון
%Rconpass - סיסמת הרקון
$1- - הפקודה לשרת
} - סוגר
challenge.rcon
כדי לכבל את המספר הזה יש תשתמשו בקוד הזה :
קוד: בחר הכל
alias start {
sockclose challenge.rcon
sockudp -k challenge.rcon $gettok(%ip,1,58) $gettok(%ip,2,58) $str($chr(255),4) $+ challenge rcon
}
on *:udpread:challenge.rcon:{
sockread -f %challenge.rcon
set %challenge.rcon $gettok(%challenge.rcon,3,32)
}
לשימוש /start
אחרי שאנכנו יכולים לשולח לשרת פקודות נעשה:
קוד: בחר הכל
//rconcmd logaddress_add $ip %gatset.port
עכשיו השרת שולך נתונים למחשב שלנו אבל אנכנו צריכים לקבל אותם לא?
הקוד הבא מכניס את הנתונים למשתנה ומציג אותם:
קוד: בחר הכל
on *:udpread:rconLog:{
sockread -f %Fconsole
set %Fconsole $gettok(%Fconsole,6-,32)
echo -S %Fconsole
}
ושוב לפרט:
יפעל מתי שמידע מהסוקט UDP הכנס ורק אם השם של הסוקט הוא rconlog
קוד: בחר הכל
on *:udpread:rconLog:{
שומר את המידע במשתנה
קוד: בחר הכל
sockread -f %Fconsole
יש דברים שלא צריך והם סתם אז מורידים אותם
קוד: בחר הכל
set %Fconsole $gettok(%Fconsole,6-,32)
יחזיר את מה שיש במשתנה בחלון הסטטוס
קוד: בחר הכל
echo -S %Fconsole
עכשיו אחרי שהכול מוכן ניפתח את הסוקט בעזרת הפקודה:
קוד: בחר הכל
//sockudp -k rconLog %gatset.port $gettok(%ip,1,58) $gettok(%ip,2,58) $str($chr(255),4)
עכשיו פשות היו לך כל הלוגים בחלון הסטטוס
ויש גם אפשרת לשלב פה תנעים ולבצעה פקודות כמו פה:
קוד: בחר הכל
if (%Fconsole != $null) {
if (*" say "* iswm %Fconsole) {
if (!rr isin %Fconsole) { rconcmd sv_restart 1 }
}
}
קוד: בחר הכל
alias start {
sockclose rconLog
sockclose challenge.rcon
sockudp -k challenge.rcon $gettok(%ip,1,58) $gettok(%ip,2,58) $str($chr(255),4) $+ challenge rcon
}
on *:udpread:challenge.rcon:{
sockread -f %challenge.rcon
set %challenge.rcon $gettok(%challenge.rcon,3,32)
rconcmd logaddress_del $ip %gatset.port
.timer 1 1 rconcmd logaddress_add $ip %gatset.port
.timer 1 2 sockudp -k rconLog %gatset.port $gettok(%ip,1,58) $gettok(%ip,2,58) $str($chr(255),4)
}
on *:udpread:rconLog:{
:nextudp
sockread -f %Fconsole
if ($sockbr == 0) { return }
set %Fconsole $gettok(%Fconsole,6-,32)
if (%Fconsole != $null) {
if (*" say "* iswm %Fconsole) {
if (!rr isin %Fconsole) { rconcmd sv_restart 1 }
}
echo -S %Fconsole
}
goto nextudp
}
alias rconcmd {
sockudp -k rconcmd $gettok(%ip,1,58) $gettok(%ip,2,58) $str($chr(255),4) $+ rcon %challenge.rcon " $+ %Rconpass $+ " $1-
}
לשימוש:
הכניסו את הפרטים של השרת למשתנים כמו באתחלה
ואז כיתבו במירק את הפקודה
קוד: בחר הכל
/start
עד כאן המדריך.
כל הזכויות שמורות לVendetta, נכתב עבור אתר mIRCx.
-------------------------------------------------------------------
ראיתי שמבקשים איך לראות את השחקנים בסרבר
אז זה פשות שולחים לשרת את הפקודה STAT או STATUS מי שמכיר אפשר לעשות את זה בקונסול של המישחק ולקבל את המידעה :] קוד:
קוד: בחר הכל
alias info {
sockudp -k HL $gettok(%ip,1,58) $gettok(%ip,2,58) $str($chr(255),4) $+ rcon %challenge.rcon " $+ %Rconpass $+ " stat
}
alias HLVAR { return $bvar(&HL,1,$bvar(&HL,0)).text }
on *:udpread:hl:{
sockread &HL
breplace &HL 0 254
echo -a $HLVAR
}