ใครพอมีความรู้เกี่ยวกับ PHP

notekungs's picture
116
posts

คือผมกำลังสร้างเว็บเกี่ยวกับเกมส์ online เกมส์หนึ่งอ่ะ เป็นเกมที่ผมเปิดทำกันเอง แต่ผมจะทำ ยังไงถึงจะให้ในเว็บผมแสดงคนที่กำลังออนไล อยู่ในเกมส์ อ่ะครับ

AttachmentSize
Picture_1.png14.25 KB
ikok's picture
10285
posts

ผมไม่แน่ใจเรื่อง code

แต่หลักการน่าจะเป็นแบบนี้ครับ

  • เราต้องรู้ว่าตัวเล็กคนออนไลน์นั้นอยู่ตรงไหนของ database
  • เขียน php ดึงค่านั้นจาก database. มาแสดงผลครับ
#1
PikaJung's picture
52
posts

ทำได้หลายวิธีครับ

วิธีที่ผมใช้คือ เก็บ Session number ลงใน database และให้ expire หลังจากผ่านไป 10 นาที
ส่วนวิธีนับก็คือนับ row ของ table ใน database ครับ
วิธีนี้จะมีข้อผิดพลาดเกิดขึ้น ถ้า user restart browser ตัวเลข session number ก็จะเปลี่ยน ทำให้การนับผิดพลาดได้ (แต่ว่าแค่ตัวเลขผิดนิดหน่อยไม่เป็นไรหรอกครับ นอกจากว่าต้องการเลขเป๊ะๆ ก็จะต้องใช้วิธีอื่นที่ละเอียดกว่านี้ครับ) แจ่ม

#2
INNOVATION's picture
343
posts

เก่งงะ เขียนเกมได้ด้วย

เก่งงะ เขียนเกมได้ด้วย เยี่ยมมากน้อย สู้ ๆๆ

#3
nengkung's picture
74
posts

จะเปิด แร็คเถื่อนหรอครับนี้

sever อะไรหล่ะครับนี้

ปล. แมคเล่นแร็คเถื่อนไงอะคับ

#4
pondkungz's picture
2
posts

เสริมให้นะครับ

จากประสบการณ์ที่ผมเคยทำเกมส์ออนไลน์เล่นบนเว็บมาก่อนนะครับ ก่อนอื่นอยากจะขอข้อมูลเพิ่มอีกนิดว่าตัวเกมส์นั้นเล่นบนเว็บได้เลยรึเปล่า หรือว่าเป็นเกมส์ออนไลน์ทั่วไปแบบ Client (เหมือน Ragnarok) แต่ต้องการแสดงคนออนไลน์บนเว็บ

  1. แบบแรกคือเกมส์ออนไลน์เล่นบนเว็บได้เลย
    แบบแรกใช้วิธีของคุณ PikaJung ได้เลยครับ แต่ก็จะมีวิธีนับอื่นๆอีกเช่น INSERT ข้อมูล ID ตอนผู้เล่น login โดยเก็บเฉพาะค่า ID ของผู้เล่นลง TABLE ซักอันหนึ่ง เพื่อที่เวลาผู้เล่นคนนั้นใช้ Browser อื่นเปิดก็จะนับเป็น 1 คนอยู่ดีครับ เวลานับก็แค่ SELECT แบบ GROUP ID จาก TABLE นั้นมาด้วยก็ได้แล้วครับ
    (อย่าลืมเซทค่า Time Out ให้ระบบลบข้อมูลนั้นทิ้งหลังระยะเวลาหนึ่งด้วยนะครับ)
  2. แบบ Client แต่จะเอาข้อมูลมาแสดงบนเว็บ
    อันนี้จะยุ่งยากหน่อยนะครับ มันจะขึ้นอยู่กับว่าตัวเกมส์ใช้ระบบ Database แบบใหน ซึ่งปรกติ PHP จะทำงานกับ MySQL เป็นหลัก หลักการคร่าวๆคือ กำหนดค่าให้ Code PHP สามารถ connect ไปยัง URL ที่มี DB ของเกมส์อยู่ จากนั้นก็ใช้โค๊ด PHP ตามข้างต้นดึงข้อมูลจาก DB มาแสดงบนเว็บไซต์ได้เลยครับ
#5
ikok's picture
10285
posts

ขอบคุณครับสำหรับข้อมูลนะครับคุณปอนด์

ละเอียดยิบ ๆ เลยครับ มีความสุข

#6
notekungs's picture
116
posts

ข้อ 2 ครับ

ข้อ 2 ครับเป็นเกมส์ Lineage2 เครื่องเซิฟเวอร์ใช้ Database หน้าจะแบบ MySQL >,<"

#7
notekungs's picture
116
posts

Web site

เว็บนี้ www.asian-server.co.cc (ไปเยี่ยมชมกันได้นะครับ) ที่ผมกำลังทำอยู่ตรง STATUS อยากจะให้มันแสดงคนที่กำลังออนไล อยู่ในเกมส์ อ่ะครับต้องเขียน Code PHP ยังไงอ่าครับผมไม่มีความรู้เกี่ยวกับเรื่องนี้เลย ช่วยด้วยนะครับ

#8
PikaJung's picture
52
posts

Game ONline

ผมไม่เคยเล่นเกมส์นี้อ่ะครับ ก็เลยไม่รู้เกี่ยวกับเกมส์นี้เลยครับ
แต่ว่าเกมส์ Online โดยทั่วไป จะมีสถานะการ Online ของ User เก็บไว้ใน DB หรือไม่ก็เก็บอยู่ใน Global Variable ครับ แต่โดยทั่วไปก็จะเก็บใน DB

ซึ่งการนับ User ที่ Online ก็ทำการ COUNT rows ใน Table ที่เก็บสถานะ User ครับ
โดยเลือกเฉพาะ User ที่กำลัง Online ครับ

code sql ก็ประมาณนี้ครับ SELECT COUNT(*) FROM xxx WHERE Status = 'Online';

ก็ลองๆดูนะครับ หรือไม่ก็ Post DB Schema มาด้วยครับ แจ่ม

#9
notekungs's picture
116
posts

ได้ Code มาแล้ว

ผมได้ PHP มาแล้วแต่จะดึงให้มันมาแสดง ยังไงอ่ะครับ งง เหอะ ๆ PHP นี้ได้มาจากเซิฟที่เปิดเหมือนกัน แต่เค้าไม่ยอมบอกว่าทำไง หึหึ ใครพอรู้ช่วยสอนหน่อยน่ะไม่รู้จริง ๆ

http://www.4shared.com/file/y6W0dWU8/status.html

Picture_3.png
#10
PikaJung's picture
52
posts

วิธีนะครับ

เปิด file config.php ขึ้นมาแล้วแก้ไขตรงที่ผมบอกนะ

ส่วนนี้คือแก้ Database ให้ใส่ค่าตาม Database ของคุณ
$dbhost="localhost"; //Host/IP from the MySQL Database
$dbname="l2plusserver2"; //Name of Database (in many times it is 'l2jdb')
$dbuser="root"; //Username to the MySQL Database
$dbpass="123456"; //Passwort to the MySQL Database

ตรงนี้ก็ใส่ ip ของเครื่อง server ซะ
$ip = "203.146.170.112";

ถ้ามีการแก้ไข port ก็ให้แก้ 2 บรรทัดนี้ด้วย
"login_server" => $config['server_ip'].":2106",
"game_server" => $config['server_ip'].":7777",

ตรงที่เป็นตัวหนาให้ใส่ค่าตาม server ของคุณเลยครับ แจ่ม

#11
notekungs's picture
116
posts

ขอบคุณครับ

แก้ไขเรียบร้อยแล้วครับแต่ก็ยังไม่ขึ้นครับ ต้องเข้าไปแก้ไขตรงไหนใน site ของเราด้วยหรือป่าวครับ ไม่ทราบจริง ๆ ขอบคุณ ครับ

#12
PikaJung's picture
52
posts

อืม

งั้นคงต้องลอง Debug ดูทีละจุดอ่ะครับ
echo ค่าต่างๆ ออกมาดู แล้วดูว่าใช่หรือเปล่าครับ

#13
ikok's picture
10285
posts

:)

นี้ได้มาจากเซิฟที่เปิดเหมือนกัน แต่เค้าไม่ยอมบอกว่าทำไง

เรื่องนี้ว่ากันไม่ได้ครับ ยิ้ม นานาจิตตังครับ ไปว่าเขาไม่ได้เขาอาจจะเสียเวลางมตรงนี้อยู่เป็นเดือน ๆ ก็เป็นได้ครับ

#14