วันพฤหัสบดีที่ 8 พฤศจิกายน พ.ศ. 2555

Batch File DotA


ปัญหาหนึ่งของร้านเน็ตที่ทำระบบ Diskless คือ การตั้งค่า Port DotA เพราะทุกเครื่องที่ใช้ Image เดียวกัน ก็จะใช้ Port เดียวกัน ทำให้ไม่สามารถ Create Room ได้

แต่เราสามารถใช้ Batch File เปลี่ยน Port ให้ทุกเครื่องมี Port ที่ไม่ซ้ำกันได้ โดย Batch File นี้จะต้อง Run ทุกครั้งที่เปิดเครื่อง

มาดูโฉมหน้า Batch File DotA กันก่อนครับ

@echo off
:: Change DotA Port
for /f "tokens=16 delims=." %%i in ('ipconfig ^|find "IP Address"') do set ip=%%i 
set /a all=6000+%ip%
reg add "hkcu\Software\Blizzard Entertainment\Warcraft III\Gameplay" /v "netgameport" /t reg_dword /d "%all%" /f


ทีนี้เรามาดูทีละส่วนว่ามีความหมายยัง จะได้นำไปปรับใช้ให้เหมาะกับร้านเน็ตของท่าน หรือประยุกต์ใช้กับงานต่างๆตามต้องการได้

@echo off
เป็นคำสั่งไม่ให้แสดงการทำงาน

:: Change DotA Port
เป็นการหมายเหตุ ให้รู้ว่าเป็น Script อะไร กันลืม ไม่มีผลในคำสั่ง

for /f "tokens=16 delims=." %%i in ('ipconfig ^|find "IP Address"') do set ip=%%i
เช็ค IP Address เครื่อง และตัดเอาเฉพาะหลักสุดท้าย เช่น เครื่องมี IP Address 192.168.1.101 ก็จะได้ผลลัพธ์เป็น 101 และให้เป็นตัวแปรชื่อ ip

set /a all=6000+%ip%
กำหนดให้ตัวแปร all = 6000 + ตัวแปรชื่อ ip จากตัวอย่าง all = 6000 + 101 = 6101

reg add "hkcu\Software\Blizzard Entertainment\Warcraft III\Gameplay" /v "netgameport" /t reg_dword /d "%all%" /f
ทำการเปลี่ยน Port DotA ด้วยการ Add Registry จากตัวแปร all ในที่นี้เท่ากับ Port 6101

เพราะฉะนั้นในเมื่อทุกเครื่องในร้านเรามี IP Address ไม่ซ้ำกัน จึงทำให้ Port DotA แต่ละเครื่องไม่ซ้ำกัน

ตัวอย่าง
เครื่อง 1 มี IP Address 192.168.1.101 ก็จะมี Port DotA เป็น 6101
เครื่อง 2 มี IP Address 192.168.1.102 ก็จะมี Port DotA เป็น 6102
เครื่อง 3 มี IP Address 192.168.1.103 ก็จะมี Port DotA เป็น 6103

ถือเป็น Batch File ที่มีประโยชน์ และสะดวกกับรัานเน็ตระบบ Diskless มากๆเลยครับ เพราะแค่คำสั่งไม่กี่บรรทัดก็ทำให้เครื่องในร้านทั้งหมดมี Port DotA ที่ไม่ซ้ำกันแล้วครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น