[JX] Bị lỗi lag trong server do script ???
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Kết quả 1 đến 9 của 9
  1. #1
    Thành Viên TS2GVN's Avatar
    Ngày tham gia
    Aug 2010
    Bài viết
    881
    Thanks
    75
    Thanked 526 Times in 104 Posts

    Bị lỗi lag trong server do script ???

    Hiện tại mình có source của hỏa phụng nhưng tại sau mỗi lúc load server lên 70 member là lag kinh khủng luôn

    + các questkey load API.lua trong đó có hàm load và làm việc rất nhiều anh em nào biết cách loại bỏ mà không lỗi server mình thật chân thành hậu tạ luôn
    Khách viếng thăm hãy cùng TS2GVN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. #2
    Thành Viên TS2GVN's Avatar
    Ngày tham gia
    Aug 2010
    Bài viết
    881
    Thanks
    75
    Thanked 526 Times in 104 Posts

    Ðề: Bị lỗi lag trong server do script ???

    Code:
    [PHP]--AUTHOR: BANYNAVY
    --DATE: 18/12/2012
    Include("\\script\\lib\\mem.lua");
    Include("\\Script\\lib\\string.lua");
    Include("\\Script\\lib\\player.lua");
    Include("\\script\\lib\\task.lua")
    ngay = tonumber(date("%d"))
    gio = tonumber(date("%H"))
    phut = tonumber(date("%M"))
    giay = tonumber(date("%S"))
    TYPE_HACK=GetTask(500)
    WPE_TIME=tonumber(date("%S"))
    VAN=10000
    TRAM=100
    NGAN=1000
    TRIEU=1000000
    TY=1000000000
    -----------------------------------------------------------------------------------------------------------------
    TYPEHACK=function(value)
    SetTask(500,value)
    end
    SetNpcState=function(nIdNpc,idSkill)
    SetNpcSkillState(nIdNpc,idSkill,20,0)
    end
    CheckRoom=function(x,y)
    	if (CheckBox(x,y) < 1) then
    		Msg2Player("Hµnh trang kh«ng ®ñ chæ  <color=yellow>("..x.."x"..y..")<color>")
    		return 0
    	end
    end
    function MsgToPlayerInMaps(IdMaps,TAB_MSG)
    	for i=1,500 do
    		PlayerIndex = i
    		local nW,nX,nY = GetWorldPos()
    		if (nW == IdMaps) then
    			Msg2Player(TAB_MSG)
    		end
    	end
    end
    function ActionInMaps(IdMaps,Action)
    	local idbt = PlayerIndex
    	for i=1,500 do
    		PlayerIndex = i
    		local nW,nX,nY = GetWorldPos()
    		if (nW == IdMaps) then
    			Action()
    		end
    	end
    	PlayerIndex = idbt
    end
    function ActionAllMaps(Action)
    	local idbt = PlayerIndex
    	for i=1,500 do
    	PlayerIndex = i
    	local nW,nX,nY = GetWorldPos()
    		Action()
    	end
    	PlayerIndex = idbt
    end
    function AntiLick(value)
    SetTaskTemp(value+100,GetTaskTemp(value+100)+1)
    if GetTaskTemp(value+100)>=2 then
    	Talk(1,"","Kh«ng nªn thao t¸c qu¸ nhanh")
    	return
    end
    end
    function ThemHoangKim(id,hsd,khoa)
    local index=AddGoldItem(id,SeriGold(id),1,1,1)
    if khoa~=nil then
    SetCanLockAll(index,khoa)--0 la khoa 1 la ko khoa
    end
    if hsd~=nil then
    SetTimeUse(index,hsd)
    end
    end
    function AddQuestKeyLock(id,hsd)
    local index=AddEventItem(id)
    SetCanLockAll(index,0)
    if hsd~=nil then
    SetTimeUse(index,hsd)
    end
    end
    function TRAIN_GetLevel()
    if GetTask(UYTHAC_IDSKILL)==0 then
    	return	
    end
    return GetMagicLevel(GetTask(UYTHAC_IDSKILL))
    end
    function TRAIN_GetExp()
    if GetTask(UYTHAC_VITRISKILL)==0 then
    	return	
    end
    return GetTask(GetTask(UYTHAC_VITRISKILL))
    end
    function TRAIN_PhanTram()
    local value=TRAIN_GetExp()*100/TRAIN_LoadExp(TRAIN_GetLevel())*2
    return round(value,2)
    end
    function UpdateExpTrain()
    if GetTask(UYTHAC_IDSKILL)==0 then
    	return	
    end
    if TRAIN_GetLevel()>=20 then
    	return
    end
    for i=TRAIN_GetLevel(),19 do
    	if TRAIN_PhanTram()>=100 then
    		InsertLevelSkill(GetTask(UYTHAC_IDSKILL))
    	end
    end
    end
    function AddExpSkill(value)
    if TRAIN_GetLevel()>=20 then
    	return
    end
    if GetTask(UYTHAC_VITRISKILL)==0 then
    	return	
    end
    SetTask(GetTask(UYTHAC_VITRISKILL),GetTask(GetTask(UYTHAC_VITRISKILL))+value)
    end
    
    function TRAIN_LoadExp(lv)
    	Load = LoadData("Settings/TrainSkillExp.txt")
    	local value
    	value = Load[lv+2][2]
    	return value;
    end
    function NameGold(id)
    MSG_load = LoadData("Settings/item/GoldItemSeri.txt")
    local TenQK
    TenQK = MSG_load[id+1][1]
    return TenQK;
    end;
    function LevelGold(id)
    MSG_load = LoadData("Settings/item/GoldItemSeri.txt")
    local TenQK
    TenQK = MSG_load[id+1][3]
    return TenQK;
    end;
    function SeriGold(id)
    MSG_load = LoadData("Settings/item/GoldItemSeri.txt")
    local TenQK
    TenQK = MSG_load[id+1][2]
    return TenQK;
    end;
    DEBUG=function(str)
    Msg2Player("DEBUG:"..str.."")
    end
    function GetSkillName(id)
    	MSG_load = LoadData("Settings/SkillName.txt")
    	local TenQK
    	TenQK = MSG_load[id+2][2]
    	return TenQK;
    end
    function AntiKTC(account)
    	nP=0
    	for i=1,500 do
    		gmidx=PlayerIndex
    		PlayerIndex=i
    		if (GetUUID() ~= 0) then
    			if GetAccount()==account then
    				nP=nP+1
    			end
    		end
    		PlayerIndex=gmidx
    	end
    	return tonumber(nP)
    end
    function CheckHackMoney(nMoney)
    local sotien = GetCash()
    if GetCash() < nMoney then
    	Msg2Player("B¹n kh«ng cã "..nMoney.." l­îng ")
    	return
    end
    Pay(nMoney)
    if GetCash() ~= (sotien - nMoney) then
    	Msg2Player("B¹n kh«ng cã "..nMoney.." l­îng ")
    	return
    end
    end
    function CheckHackQuestKeyItem(id,nIdx)
    local n = GetItemCount(id)
    if GetItemCount(id) < 1 then
    	Msg2Player("B¹n kh«ng cã "..CheckNameQuestKey(id).."")
    	return
    end
    DelItemIdx(nIdx)
    if GetItemCount(id) ~= (n-1) then
    	Msg2Player("B¹n kh«ng cã "..CheckNameQuestKey(id).."")
    	return
    end
    end
    function MoveBox()
    if GetFightState()==1 then
    	local nW=GetTask(TRAP_W)
    	local nX=GetTask(TRAP_X)
    	local nY=GetTask(TRAP_Y)
    	NewWorld(nW,nX,nY)
    	SetFightState(0)
    end
    end
    function GetMoneyBox()
    return GetMoney()-GetCash()
    end
    function DelayTime(times)
    local ngay = tonumber(date("%d"))
    local gio = tonumber(date("%H"))
    local phut = tonumber(date("%M"))
    local giay = tonumber(date("%S"))
    local delay = ngay * 24 * 60 * 60 + gio * 60 * 60 + phut * 60 + giay
    local time1 = delay - times
    local time2 = GetTaskTemp(31) - time1
    local time3 = times - delay
    if (GetTaskTemp(30) == 0) then
    	SetTaskTemp(30,delay)
    	return 0
    end
    if (delay<times and delay>=0)then
    	time3 = times - delay
    	Msg2Player("Vui lßng chê <color=yellow>"..time3.."<color> gi©y")
    	return 0
    end
    time1 = delay - times
    if (time1 < GetTaskTemp(30)) then
    	time2 = GetTaskTemp(30) - time1
    	Msg2Player("Vui lßng chê <color=yellow>"..time2.."<color> gi©y")
    	return 0
    end
    SetTaskTemp(30,0)
    end
    
    function NoteMsg(str)
    Say(str,1,"KÕt thóc ®èi tho¹i/no")
    end
    function tinhngay()
    ngay = tonumber(date("%d"))
    thang = tonumber(date("%m"))
    tinhngay1 = 0
    for k=1,getn(mang) do
    if thang > mang[k][1] then
    tinhngay1 = tinhngay1 + mang[k][2]
    end
    end
    tinhngay1 = tinhngay1 + ngay
    return tinhngay1
    end
    
    mang = {
    {1,31},{2,28},{3,31},{4,30},{5,31},{6,30},{7,31},{8,31},{9,30},{10,31},{11,30},{12,31},
    }
    
    function WriteLogProA(data,str)
    local IPData2 = openfile(""..data.."", "a+");
    write(IPData2,tostring(str));
    closefile(IPData2);
    end
    function WriteLogPro(data,str,type)
    local IPData2 = openfile(""..data.."",type);
    write(IPData2,tostring(str));
    closefile(IPData2);
    end
    function GetIPs()
    local arr =split(GetIP()," ")
    return(arr[1])
    end
    
    function ReadIPs(ip)
    local arr =split(ip," ")
    return(arr[1])
    end
    
    function GetAccount()
    return GetPlayerAccount()
    end
    function AddNPCEx(nId,nLevel, nMap,nX,nY,nOffsetX,nOffsetY,nScript,nCurCamp,nSeries,nName,nDescName)
    	if (nOffsetX==nil) then nOffsetX = 0 end
    	if (nOffsetY==nil) then nOffsetY = 0 end	
        	mapindex = SubWorldID2Idx(nMap)
    		npcid = nId
        	npclvl = nLevel
        	posx = floor((nX+nOffsetX/10)*8*32)
        	posy = floor((nY+nOffsetY/10)*16*32)
    	nNpcId = AddNpc(npcid,npclvl,mapindex,posx,posy,1, "", 1);
    	if(nScript~=nil) then
        	SetNpcScript(nNpcId, nScript);
        end	
    	if(nCurCamp~=nil) then	
    		SetNpcCurCamp(nNpcId, nCurCamp);
    	end	
    	if(nName~=nil)then
    		SetNpcName(nNpcId,nName);
    	end
    	if(nSeries~=nil)then
    		SetNpcSeries(nNpcId,nSeries);
    	end;
    	if(nDescName~=nil)then
    		SetNpcDesc(nNpcId,nDescName);
    	end;
    	return
    end;
    
    --Hµm add qu¸i talk toa do d¹ng xxxx,yyyy kh«ng cã ®é lÖch
    function AddNPCEz(nId,nLevel,nMap,nX,nY,nScript,nCurCamp,nSer,nName,nDescName,nIsboss,nState)	
        	mapindex = SubWorldID2Idx(nMap)
    		npcid = nId
        	npclvl = nLevel
        	posx = nX
        	posy = nY
    	nNpcId = AddNpc(npcid,npclvl,mapindex,posx,posy,1,"", 1);
    	if(nScript~=nil) then
        	SetNpcScript(nNpcId, nScript);
        end	
    	if(nCurCamp~=nil) then	
    		SetNpcCurCamp(nNpcId, nCurCamp);
    	end	
    	if(nName~=nil)then
    		SetNpcName(nNpcId,nName);
    	end
    	if(nSer~=nil)then
    		SetNpcSeries(nNpcId,nSer);
    	end;
    	if(nDescName~=nil)then
    		--SetNpcDesc(nNpcId,nDescName);
    	end;
    	if(nIsboss~=nil)then
    		SetNpcScript(nNpcId,nIsboss)
    	end
    	if(nState~=nil)then
    		SetNpcState(nNpcId,nState)
    	end
    	return
    end;
    
    		
    function no()
    
    end
    
    function NoteMsg(str)
    Say(str,1,"KÕt thóc ®èi tho¹i/no")
    end
    
    function ResetExp()
    exp=GetExp()
    		if (exp < 0) then
    		exp = exp*-1
    		AddOwnExpPro(exp)
    		Msg2Player("B¹n ®· ®­îc gi¶i trõ kinh nghiÖm ©m")
    		return 0
    	end
    end;
    
    --------------------------------------Variable Define-----------
    
    function CheckNameQuestKey(id)
    MSG_load = LoadData("Settings/item/questkey.txt")
    local TenQK
    TenQK = MSG_load[id+2][1]--Ten QuestKey
    	return TenQK;
    end;
    
    function CountPlayerInMaps(IdMaps)
    	nP=0
    	for i=1,500 do
    		gmidx=PlayerIndex
    		PlayerIndex=i
    		W,X,Y=GetWorldPos()
    		if W==IdMaps then
    			nP=nP+1
    		end
    		PlayerIndex=gmidx
    	end
    	return tonumber(nP)
    end
    
    function MoveTeam(idteam,idmap,posx,posy)
    if SubWorldID2Idx(idmap) == -1 then
    Msg2Player("B¶n ®å kh«ng ®­îc më trong qu¸ tr×nh khëi ®éng")
    return 
    end
    	for i=1,500 do
    		PlayerIndex = i
    		if GetTeam() == idteam then
    			NewWorld(idmap,posx*8,posy*16)
    		end
    	end
    end
    
    function TeamInfo(idteam)
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		teamsize = GetTeamSize()
    		if IsCaptain() == 1 then
    			totruong = GetName()
    		end
    	end
    end
    str = "Tæ ®éi [M· Sè] : "..idteam..", [Sè ng­êi] : "..teamsize..", [§éi tr­ëng] : "..totruong
    return str
    end
    
    function ChoPhepTanCong(idteam,num)
    if num == nil then return end
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		SetFightState(num)
    	end
    end
    end
    
    function SetDeathScriptTeam(idteam,scriptdir) 
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		SetDeathScript(scriptdir)
    	end
    end
    end
    
    function SetTaskTempTeam(idteam,taskid,num)
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		SetTaskTemp(taskid,num)
    	end
    end
    end
    
    function GetTaskTempTeam(idteam,taskid)
    local task = 0
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		if task == 0 then task = GetTaskTemp(taskid) end
    		if task == GetTaskTemp(taskid) then
    			task = GetTaskTemp(taskid)
    		else
    			return 0
    		end
    	end
    end
    return task
    end
    function SetTaskTeam(idteam,taskid,num)
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		SetTask(taskid,num)
    	end
    end
    end
    
    function GetTaskTeam(idteam,taskid)
    local task = 0
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		if task == 0 then task = GetTask(taskid) end
    		if task == GetTask(taskid) then
    			task = GetTask(taskid)
    		else
    			return 0
    		end
    	end
    end
    return task
    end
    
    function XemTaskTamThoi(idteam,taskid)
    local task = 0
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		if task == 0 then task = GetTaskTemp(taskid) end
    		if task == GetTaskTemp(taskid) then
    			task = GetTaskTemp(taskid)
    		else
    			return 0
    		end
    	end
    end
    return task
    end
    function SuaTaskTamThoi(idteam,taskid,num)
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		SetTaskTemp(taskid,num)
    	end
    end
    end
    function XemPK(idteam)
    local pksum = 0
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		pksum = pksum+GetPK()
    	end
    end
    return pksum
    end
    function SuaPK(idteam,num)
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		SetPK(num)
    	end
    end
    end
    function SetTimerTeam(idteam,timerid,thoigian)
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		SetTimer(timerid,thoigian)
    	end
    end
    end
    function StopTimerTeam(idteam)
    for i=1,500 do
    	PlayerIndex = i
    	if GetTeam() == idteam then
    		StopTimer()
    	end
    end
    end
    Lần sửa cuối bởi TS2GVN, ngày 27-08-14 lúc 11:41 AM.
    Khách viếng thăm hãy cùng TS2GVN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  3. #3
    Thành Viên
    Ngày tham gia
    Mar 2014
    Bài viết
    274
    Thanks
    42
    Thanked 165 Times in 97 Posts

    Ðề: Bị lỗi lag trong server do script ???

    Đây là hàm mở rộng được khai báo khi sử dụng thì mới gọi tới thôi, liên quan gì đâu. Nó như 1 thư viện hàm thôi server nào không có
    Khách viếng thăm hãy cùng HoangTVT xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  4. #4
    Thành Viên Tâm Huyết assaa's Avatar
    Ngày tham gia
    Jul 2009
    Bài viết
    915
    Thanks
    271
    Thanked 416 Times in 236 Posts

    Ðề: Bị lỗi lag trong server do script ???

    Như hoàng đã nói thì file lua bạn đưa lên chỉ là file chưa ls ác hàm mở rộng thêm thôi. Nếu bạn ko gọi bất kỳ hàm nào trong file lua đó lên thì mặc nhiên nó không hoạt động gì cả.
    Có thể chính vì việc bạn cho load lại file questkey bằng lua quá nhiều dẫn đến tình trạng lag. Bạn đã có source thì chỉ cần chỉnh lại 1 tý là sv của bạn đọc questkey 1 cách ngon lành thay vì quá số lượng do kiểu dữ liệu của nó quy định mà bạn lại đi load ở ngoài
    Lần sửa cuối bởi assaa, ngày 27-08-14 lúc 01:00 PM.
    Khách viếng thăm hãy cùng assaa xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. Các thành viên gởi lời cảm ơn đến assaa vì bài viết này !

    TS2GVN (27-08-14)

  6. #5
    Thành Viên
    Ngày tham gia
    Sep 2011
    Bài viết
    161
    Thanks
    26
    Thanked 39 Times in 8 Posts

    Ðề: Bị lỗi lag trong server do script ???

    bạn cứ share source sv + patch ra là sẽ có người fix đầy đủ hết tốc độ của pro JX rất nhanh bạn à
    Khách viếng thăm hãy cùng anhphi97 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  7. #6
    Vi phạm quy định
    Ngày tham gia
    Aug 2014
    Bài viết
    41
    Thanks
    13
    Thanked 3 Times in 3 Posts

    Icon14 Ðề: Bị lỗi lag trong server do script ???

    coi thử còn hàm dofile trong các NPC hay trong các Item ko
    Khách viếng thăm hãy cùng bthhhzz xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  8. Các thành viên gởi lời cảm ơn đến bthhhzz vì bài viết này !

    TS2GVN (27-08-14)

  9. #7
    Thành Viên TS2GVN's Avatar
    Ngày tham gia
    Aug 2010
    Bài viết
    881
    Thanks
    75
    Thanked 526 Times in 104 Posts

    Ðề: Bị lỗi lag trong server do script ???

    Trích dẫn Gửi bởi assaa [Only registered and activated users can see links. ]
    Như hoàng đã nói thì file lua bạn đưa lên chỉ là file chưa ls ác hàm mở rộng thêm thôi. Nếu bạn ko gọi bất kỳ hàm nào trong file lua đó lên thì mặc nhiên nó không hoạt động gì cả.
    Có thể chính vì việc bạn cho load lại file questkey bằng lua quá nhiều dẫn đến tình trạng lag. Bạn đã có source thì chỉ cần chỉnh lại 1 tý là sv của bạn đọc questkey 1 cách ngon lành thay vì quá số lượng do kiểu dữ liệu của nó quy định mà bạn lại đi load ở ngoài
    Mình có source nhưng trình mình code kém nên bạn vào xem hộ mình hậu tạ bạn

    --- Chế độ gộp bài viết ---

    Trích dẫn Gửi bởi bthhhzz [Only registered and activated users can see links. ]
    coi thử còn hàm dofile trong các NPC hay trong các Item ko
    Hàm đó thì cả đóng luôn bạn xóa à hay viết lại bạn !!
    Khách viếng thăm hãy cùng TS2GVN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  10. #8
    Thành Viên TS2GVN's Avatar
    Ngày tham gia
    Aug 2010
    Bài viết
    881
    Thanks
    75
    Thanked 526 Times in 104 Posts

    Ðề: Bị lỗi lag trong server do script ???

    upppppppppppppppppppppppppppppppppppppppp
    Khách viếng thăm hãy cùng TS2GVN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  11. #9
    Vi phạm quy định
    Ngày tham gia
    Aug 2014
    Bài viết
    41
    Thanks
    13
    Thanked 3 Times in 3 Posts

    Ðề: Bị lỗi lag trong server do script ???

    Trích dẫn Gửi bởi TS2GVN [Only registered and activated users can see links. ]
    upppppppppppppppppppppppppppppppppppppppp
    trời ạ !! hàm dofile nó làm lag sv lắm lận !
    giờ trên script có cái
    dofie
    thì bạn để dòng đó thành
    --dofile đi !!
    hàm đó dùng để test script thôi chứ ko để dùng cho khi open đc đâu
    Khách viếng thăm hãy cùng bthhhzz xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

 

Các Chủ đề tương tự

  1. [JX] xin bộ setting và script trong server linux
    Bởi huynhkim trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 0
    Bài viết cuối: 22-04-14, 02:29 PM
  2. [JX] [CHIA SẺ KINH NGHIỆM] Học Script Cơ Bản Trong JX Server
    Bởi ps1990 trong diễn đàn Scripts
    Trả lời: 0
    Bài viết cuối: 13-01-13, 02:27 AM
  3. [JX] Hỏi về cách đưa script add quái vào đâu trong server
    Bởi babyoflove trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 8
    Bài viết cuối: 03-09-12, 02:01 PM
  4. [KT] Cách chỉnh script trong server Kiếm Thế ko bị lỗi ai bik chỉ giùm
    Bởi zZK3yL0v3Zz trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 8
    Bài viết cuối: 22-01-12, 11:59 PM
  5. Cấu trúc một file script .lua trong server jx offline
    Bởi giangleloi trong diễn đàn Scripts
    Trả lời: 2
    Bài viết cuối: 18-07-08, 01:15 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 12:01 AM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.