# คู่มือการใช้งาน (Document)

คู่มือการใช้งานของสินค้าจาก ZOBYETEAM

## Get Started

## [ZOBYETEAM\_GARAGE](/resource/zobyeteam_garage)

{% content-ref url="/pages/WjLqTWMqAGXDpdXblEGA" %}
[ZOBYETEAM\_GARAGE](/resource/zobyeteam_garage)
{% endcontent-ref %}

* [**การติดตั้งและตั้งค่าเบื้องต้น**](/resource/zobyeteam_garage/setup)
  * [**oxmysql**](/resource/zobyeteam_garage/setup/oxmysql)
* [**การเชื่อมต่อกับทรัพยากรอื่นๆ**](/resource/zobyeteam_garage/connection)
* [**ปัญหาที่พบบ่อย**](/resource/zobyeteam_garage/problems)

## [**ZOBYETEAM\_ECONOMY**](/resource/zobyeteam_economy)

{% content-ref url="/pages/pi71dRmSa05269A3a8o7" %}
[ZOBYETEAM\_ECONOMY](/resource/zobyeteam_economy)
{% endcontent-ref %}

* [การติดตั้งและตั้งค่าเบื้องต้น](/resource/zobyeteam_economy/setup)
* [ปัญหาที่พบบ่อย](/resource/zobyeteam_economy/problems)

## [**ZOBYETEAM\_INVENTORY**](/resource/zobyeteam_inventory)

{% content-ref url="/pages/pocpzP3d4xCJlykPMp1R" %}
[ZOBYETEAM\_INVENTORY](/resource/zobyeteam_inventory)
{% endcontent-ref %}

* [การติดตั้งและตั้งค่าเบื้องต้น](/resource/zobyeteam_inventory/setup)
* [การเชื่อมต่อกับทรัพยากรอื่นๆ](/resource/zobyeteam_inventory/connection)
  * [ZOBYETEAM\_TRUNK](/resource/zobyeteam_inventory/connection/zobyeteam_trunk)
  * [ZOBYETEAM\_SAFEBOX](/resource/zobyeteam_inventory/connection/zobyeteam_safebox)
* [ปัญหาที่พบบ่อย](/resource/zobyeteam_inventory/problems)

## [**ZOBYETEAM\_PROFILE**](#zobyeteam_profile)

{% content-ref url="/pages/2upeBtY3QpChvMhEiZoo" %}
[ZOBYETEAM\_PROFILE](/resource/zobyeteam_profile)
{% endcontent-ref %}

* [การติดตั้งและตั้งค่าเบื้องต้น](/resource/zobyeteam_profile/setup)
* [ปัญหาที่พบบ่อย](/resource/zobyeteam_profile/problems)

## [ZOBYETEAM\_PARTY](/resource/zobyeteam_party)

{% content-ref url="/pages/nGa4SBKaVRScjeowHIt2" %}
[ZOBYETEAM\_PARTY](/resource/zobyeteam_party)
{% endcontent-ref %}


# ZOBYETEAM\_GARAGE

New Interface

## Strength

* มีหน้าต่างสำหรับการใช้งานที่ง่ายและสวยงามพร้อมกับแอนิเมชั่นสบายตา
* ปรับปรุงประสิทธิภาพขั้นสูงสุด (ไม่มีการใช้ ESX Callback)
* ดึงข้อมูลเพียงแค่ตอนเข้าเซิร์ฟเวอร์หรืออัปเดทข้อมูลเพิ่มเติมเท่านั้น
* ไม่ดึงข้อมูลทุกครั้งที่มีการเปิดหน้าต่าง! (การาจส่วนใหญ่ตอนนี้ดึงข้อมูลทุกครั้งที่มีการเปิดเมนู)

## Features

* มีหน้าต่างอินเตอร์เฟซในการดูยานพาหนะในการาจที่มีความสวยงามและเรียบง่าย
* สามารถดูสถานะน้ำมันและเครื่องยนต์ได้

## Technical

* CPU Usage : 0.00 - 0.025ms (โดยปกติจะวิ่งที่ 0.01 แต่ถ้าหากอยู่ใกล้ Marker จะวิ่งเยอะ)
* ลดการส่งข้อมูลจากการาจทั่วไปได้มากกว่า 65%
* ไม่มีการใช้ ESX Callback ในการดึงข้อมูลทุกครั้งที่เปิดเมนู

## Review Video

ZOBYETEAM\_GARAGE (New Interface)

{% embed url="<https://youtu.be/EB25DgJxBME>" %}


# Setup

วิธีการติดตั้ง ZOBYETEAM\_GARAGE เบื้องต้น

## วิธีการติดตั้ง ZOBYETEAM\_GARAGE&#x20;

{% embed url="<https://youtu.be/lA-Tlihy9Zo>" %}

## [oxmysql](/resource/zobyeteam_garage/setup/oxmysql)

{% content-ref url="/pages/fApJOtksaq1xEQ1W36pP" %}
[oxmysql (จำเป็น)](/resource/zobyeteam_garage/setup/oxmysql)
{% endcontent-ref %}


# oxmysql (จำเป็น)

oxmysql ใช้ในการดึงข้อมูลจาก SQL | oxmysql ใช้งานร่วมกับ mysql-async ได้

## Download

จำเป็นต้องติดตั้ง oxmysql เนื่องจาก ใช้ในการดึงข้อมูลจาก SQL | oxmysql ใช้งานร่วมกับ mysql-async ได้

<https://github.com/overextended/oxmysql/releases>

{% embed url="<https://github.com/overextended/oxmysql/releases>" %}

## oxmysql documentation

<https://overextended.github.io/docs/oxmysql/>

{% embed url="<https://overextended.github.io/docs/oxmysql/>" %}


# Connections

## ร้านขายรถ

{% content-ref url="/pages/cI36tlGnMvHnluY8PAvx" %}
[Add vehicle](/resource/zobyeteam_garage/connection/addvehicle)
{% endcontent-ref %}

## ร้านปรับแต่งรถ

{% content-ref url="/pages/VFP3EhoEp5IMpl4dqjjR" %}
[Customize vehicle](/resource/zobyeteam_garage/connection/customvehicle)
{% endcontent-ref %}


# Add vehicle

ในตัวอย่างนี้จะใช้ esx\_vehicleshop และ esx\_policejob เป็นตัวอย่าง

## esx\_vehicleshop

ในทุก Event ของการซื้อรถจากร้านขายรถ จะต้องเพิ่มการ Trigger พิเศษเพื่อให้ *ZOBYETEAM\_GARAGE* รับรู้ว่ามีการเพิ่มรถใหม่ ดังตัวอย่าง บรรทัดที่ 16

{% code title="esx\_vehicleshop (server)" lineNumbers="true" %}

```lua
ESX.RegisterServerCallback('esx_vehicleshop:buyVehicle', function(source, cb, model, plate)
	local xPlayer = ESX.GetPlayerFromId(source)
	local modelPrice = getVehicleFromModel(model).price

	if modelPrice and xPlayer.getMoney() >= modelPrice then
		xPlayer.removeMoney(modelPrice, "Vehicle Purchase")

		MySQL.insert('INSERT INTO owned_vehicles (owner, plate, vehicle) VALUES (?, ?, ?)', {xPlayer.identifier, plate, json.encode({model = joaat(model), plate = plate})
		}, function(rowsChanged)
			xPlayer.showNotification(TranslateCap('vehicle_belongs', plate))
			ESX.OneSync.SpawnVehicle(joaat(model), Config.Zones.ShopOutside.Pos, Config.Zones.ShopOutside.Heading,{plate = plate}, function(vehicle)
				Wait(100)
				local vehicle = NetworkGetEntityFromNetworkId(vehicle)
				Wait(300)
				TaskWarpPedIntoVehicle(GetPlayerPed(source), vehicle, -1)
				exports['zobyeteam_garage']:addVehicle(source, xPlayer.identifier, plate, {model = model, plate = plate})
			end)
			cb(true)
		end)
	else
		cb(false)
	end
end)
```

{% endcode %}

สำหรับ Event ของการซื้อรถ สามารถเรียกใช้ได้ทั้งหมด 3 วิธี โดยมีค่าที่จำเป็นต้องใส่อยู่ 4 ค่า ได้แก่

playerId(ถ้า Trigger จาก Client ใส่เป็น nil ได้), identifier, plate และ props ส่วนอีก 3 ค่า ได้แก่  vehicleType, job และ stored ใส่หรือไม่ก็ได้

ดังโค้ดตัวอย่าง:

```lua
-- Server Exports Function
exports['zobyeteam_garage']:addVehicle(playerId, identifier, plate, props, vehicleType, job, stored)

-- Server Event (Trigger From Client)
TriggerServerEvent('zobyeteam_garage:addVehicle', nil, identifier, plate, props, vehicleType, job, stored)

-- Server Event (Trigger From Server)
TriggerEvent('zobyeteam_garage:addVehicle', playerId, identifier, plate, props, vehicleType, job, stored)
```

* playerId (Trigger From Client Can Use nil)
* identifier
* plate
* props
* vehicleType(optional)
* job (optional)
* stored (optional)

## และตัวอย่างสำหรับ esx\_policejob

{% code title="esx\_policejob (server)" %}

```lua
ESX.RegisterServerCallback('esx_policejob:buyJobVehicle', function(source, cb, vehicleProps, type)
	local xPlayer = ESX.GetPlayerFromId(source)
	local price = getPriceFromHash(vehicleProps.model, xPlayer.job.grade_name, type)

	-- vehicle model not found
	if price == 0 then
		print(('[^3WARNING^7] Player ^5%s^7 Attempted To Buy Invalid Vehicle - ^5%s^7!'):format(source, vehicleProps.model))
		cb(false)
	else
		if xPlayer.getMoney() >= price then
			xPlayer.removeMoney(price, "Job Vehicle Bought")

			MySQL.insert('INSERT INTO owned_vehicles (owner, vehicle, plate, type, job, `stored`) VALUES (?, ?, ?, ?, ?, ?)', { xPlayer.identifier, json.encode(vehicleProps), vehicleProps.plate, type, xPlayer.job.name, true},
			function (rowsChanged)
				exports['zobyeteam_garage']:addVehicle(source, xPlayer.identifier, vehicleProps.plate, vehicleProps, type, xPlayer.job.name, true)
				cb(true)
			end)
		else
			cb(false)
		end
	end
end)
```

{% endcode %}


# Customize vehicle

ในตัวอย่างนี้จะใช้ร้านปรับแต่งรถของ esx\_lscustom เป็นหลัก

เมื่อการปรับแต่งรถเสร็จสิ้น และมีการเปลี่ยนแปลงรายละเอียดที่ตัวรถ ไม่ว่าจะเป็น สี ล้อ หรือ อื่นๆ จะต้องมีการใช้ Function พิเศษ เพื่อให้ *ZOBYETEAM\_GARAGE* รับรู้ว่ามีการเปลี่ยนแปลงรายละเอียดที่ตัวรถ ดังตัวอย่าง \
บรรทัดที่ 6

{% code title="esx\_lscustom (client)" lineNumbers="true" %}

```lua
RegisterNetEvent('esx_lscustom:installMod')
AddEventHandler('esx_lscustom:installMod', function()
    local vehicle = GetVehiclePedIsIn(PlayerPedId(), false)
    myCar = ESX.Game.GetVehicleProperties(vehicle)
    TriggerServerEvent('esx_lscustom:refreshOwnedVehicle', myCar)
    exports['zobyeteam_garage']:saveProps()
end)
```

{% endcode %}

สำหรับ Function "saveProps" จะไม่มีการรับค่าใดๆ สำหรับการเรียกใช้จากทรัพยากรอื่นๆสามารถ\
ทำได้ดังตัวอย่าง:

```lua
exports['zobyeteam_garage']:saveProps()
```


# Common problems

ปัญหาที่พบบ่อยใน ZOBYETEAM\_GARAGE

## ปัญหาน้ำมันไม่บันทึก

{% content-ref url="/pages/b400b96rMTKGOd64pUAR" %}
[ปัญหาน้ำมันไม่บันทึก](/resource/zobyeteam_garage/problems/fuelproblem)
{% endcontent-ref %}


# ปัญหาน้ำมันไม่บันทึก

การแก้ไขปัญหาน้ำมันไม่บันทึก

จริง ๆ แล้วน้ำมันบันทึกทุกครั้งลูกค้าสามารถลองนำยานพาหนะไปเก็บ จากนั้นเปิดฐานข้อมูลดูคอลัมน์ `fuel` จะตรงกับตอนเก็บทุกครั้ง แต่เมื่อเบิกมาแล้วน้ำมันจะเป็นอีกค่า

### **วิธีการแก้ไขของ LegacyFuel และ Dv\_Hunter\_legacyfuel**

1\. ไปที่สคริปต์ระบบน้ำมัน \
2\. เข้าไปที่ folder `source` \
3\. เปิดไฟล์ `fuel_client.lua` \
4\. ค้นหาคำว่า `SetFuel(vehicle, math.random(200, 800) / 10)` \
5\. ให้ลบหรือคอมเมนต์บรรทัดนี้

{% embed url="<https://www.youtube.com/watch?v=XtJEPiiF7rY>" %}


# ZOBYETEAM\_CARCUSTOMS

New interface Car customs

## Strength

* มีหน้าต่างสำหรับการใช้งานที่ง่ายและสวยงามพร้อมกับแอนิเมชั่นสบายตา
* ปรับปรุงประสิทธิภาพขั้นสูงสุด (ไม่มีการใช้ ESX Callback)
* มีการปรับแต่งล้อที่ไม่มีที่ไหนในไทย!
* สามารถแต่งด้วยไอเทมได้
* มีร้านค้ามาให้พร้อมใช้ในสคริปต์

## Features

* มีหน้าต่างอินเตอร์เฟซในการใช้งานที่มีความสวยงามและเรียบง่าย
* รองรับการแต่งสีพิเศษ (Chameleon)
* เมนูแบบใหม่ไม่เหมือนใคร

## Technical

* CPU Usage : 0.00 - 0.05ms (โดยปกติจะวิ่งที่ 0.01 แต่ถ้าหากอยู่ใกล้ Marker จะวิ่งเยอะ)
* ไม่มีการเก็บข้อมูลใน Database

{% embed url="<https://youtu.be/8XzWZokReUQ>" %}


# Setup

## Scripts that work together

### oxmysql (required)

{% embed url="<https://github.com/overextended/oxmysql>" %}
oxmysql
{% endembed %}

### ox\_lib (required)

{% embed url="<https://github.com/overextended/ox_lib>" %}
ox\_lib
{% endembed %}

### Wrapper (required)

{% embed url="<https://github.com/ZOBYETEAM/zobyeteam_wrapper>" %}
zobyeteam\_wrapper
{% endembed %}

### Progressbar (required)

{% embed url="<https://github.com/ZOBYETEAM/zobyeteam_progbar>" %}
zobyeteam\_progbar
{% endembed %}

### Chameleon Color

{% embed url="<https://github.com/ZOBYETEAM/mpchameleon>" %}
mpchameleon
{% endembed %}

### Notify

{% embed url="<https://github.com/ZOBYETEAM/zobyeteam_notify>" %}
zobyeteam\_notify
{% endembed %}


# Connections

## Exports function

### Save Props (Client)

<pre class="language-lua"><code class="lang-lua">-- @params
<strong>-- vehicle, type - number, desc - entity of vehicle
</strong>-- properties, type - table, desc - properties of vehicle

exports['zobyeteam_carcustoms']:SaveProps(vehicle, properties)
</code></pre>

### Get Vehicle Properties (Client)

<pre class="language-lua"><code class="lang-lua">-- @params
<strong>-- vehicle, type - number, desc - entity of vehicle
</strong>
exports['zobyeteam_carcustoms']:GetVehicleProperties(vehicle)
</code></pre>

### Set Vehicle Properties (Client)

<pre class="language-lua"><code class="lang-lua">-- @params
<strong>-- vehicle, type - number, desc - entity of vehicle
</strong>-- properties, type - table, desc - properties of vehicle

exports['zobyeteam_carcustoms']:SetVehicleProperties(vehicle, properties)
</code></pre>

### Open Car Customs (Client)

{% code fullWidth="false" %}

```lua
-- open car customs but still check like normal open such as position and owned vehicle
-- @params
-- forceOpen if true will not check any conditions.

exports['zobyeteam_carcustoms']:OpenCarCustom(forceOpen)
```

{% endcode %}

### Toggle NUI Focus (Client)

```lua
-- toggle nui focus of camera view
-- @params

exports['zobyeteam_carcustoms']:ToggleNuiFocus()
```

### Open Shop (Client)

```lua
-- open shop but still check like normal open
-- @params

exports['zobyeteam_carcustoms']:OpenShop()
```

### Cancel Used Item (Client)

```lua
-- cancel car customs item that you're holding
-- @params

exports['zobyeteam_carcustoms']:CancelUsedItem()
```

### Reset Camera (Client)

```lua
-- reset camera view to default or camera view of menu
-- @params

exports['zobyeteam_carcustoms']:ResetCamera()
```

### Open Stancer (Client)

```lua
-- open stancer customs but still check like normal open such as position
-- @params

exports['zobyeteam_carcustoms']:OpenStancer()
```

### Open Color Customs (Client)

```lua
-- open color customs but still check like normal open such as position
-- @params

exports['zobyeteam_carcustoms']:OpenColorCustoms()
```

### Load Vehicle Stancer (Client)

```lua
-- apply stancer to close vehicle that you owned (auto run in our script)
-- @params

exports['zobyeteam_carcustoms']:LoadVehicleStancer()
```


# Admin commands

Use command "*<mark style="color:blue;background-color:blue;">`/carcustoms`</mark>*" to open car customs from anywhere


# ZOBYETEAM\_CARPARK

Car park or Deposit car

## Strength

* มีหน้าต่างสำหรับการใช้งานที่ง่ายและสวยงามพร้อมกับแอนิเมชั่นสบายตา
* ปรับปรุงประสิทธิภาพขั้นสูงสุด (ไม่มีการใช้ ESX Callback)

## Features

* มีหน้าต่างอินเตอร์เฟซในการใช้งานที่มีความสวยงามและเรียบง่าย
* Blip ที่เปลี่ยนสีเพื่อบอกสถานะว่ามีรถที่ฝากไว้อยู่ในจุด

## Technical

* CPU Usage : 0.00 - 0.02ms (โดยปกติจะวิ่งที่ 0.00 แต่ถ้าหากอยู่ใกล้ Marker จะวิ่งเยอะ)

{% embed url="<https://youtu.be/_FvgMpLKY3A>" %}


# Setup

## Scripts that work together

### oxmysql (required)

{% embed url="<https://github.com/overextended/oxmysql>" %}
oxmysql
{% endembed %}

### Progressbar (required)

{% embed url="<https://github.com/ZOBYETEAM/zobyeteam_progbar>" %}
zobyeteam\_progbar
{% endembed %}

### Notify

{% embed url="<https://github.com/ZOBYETEAM/zobyeteam_notify>" %}
zobyeteam\_notify
{% endembed %}


# ZOBYETEAM\_ECONOMY

## Features

* สามารถเลือกขายได้หลายอย่างพร้อมกัน
* กดปุ่ม `MAX` เพื่อขายไอเทมเท่าจำนวนของในตัวผู้เล่น
* ปุ่ม `SELL` จะขึ้นมาต่อเมื่อเลือกไอเทมขาย
* สามารถตั้งค่าให้ราคาไอเทมเท่ากันทุกโซนได้ (เมื่อมีการเปลี่ยนแปลงราคา)
* สามารถกำหนดจุดในการขายได้ไม่จำกัด
* หนึ่งจุดสามารถขายได้สินค้ามากกว่าหนึ่งอย่าง

## Technical

* CPU Usage : **0.01 - 0.05ms** (ปกติจะวิ่งที่ 0.01ms หากอยู่ใกล้โซนการขายแล้วมีการโชว์ 3D Text จะเพิ่มขึ้น)
* ลดการส่งข้อมูลจากฝั่ง Server มา Client ได้ดีกว่าตัวเก่าถึง **75 - 90%**
* เขียนด้วยภาษา **LUA** เพื่อเพิ่มประสิทธิภาพการทำงาน
* ไม่มีการใช้ **SQL** เพื่อลดการทำงานฝั่ง Server


# Setup

วิธีการติดตั้ง ZOBYETEAM\_ECONOMY เบื้องต้น

## วิธีการติดตั้ง ZOBYETEAM\_ECONOMY&#x20;

1. ดาวน์โหลด "zobyeteam\_economy.rar" จาก [ZOBYETEAM Discord](/contact/discord)

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FQWU2xPvTUkk2RMDIcu6e%2FScreenshot%202022-10-13%20030535.png?alt=media&amp;token=683fc22f-2c60-4bdb-bd12-ea55c7e5a351" alt=""><figcaption></figcaption></figure>

2\. แตกไฟล์ จะได้ Folder "zobyeteam\_economy"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FrLstPRNAI9w6NhPkaFDH%2FScreenshot%202022-10-13%20030950.png?alt=media&amp;token=e604da7f-39b3-48fe-a228-12449c838150" alt=""><figcaption></figcaption></figure>

3\. นำ Folder "zobyeteam\_economy" ไปไว้ภายใน  Folder "resources"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FY4f9861qoygpDJi5W9bK%2FScreenshot%202022-10-13%20031535.png?alt=media&amp;token=caf59b6b-d819-418c-972b-cc188532d4cb" alt=""><figcaption></figcaption></figure>

4\. เพิ่ม "ensure zobyeteam\_economy" ภายในไฟล์ server.cfg

```
ensure zobyeteam_economy
```


# Connections

ปัญหาที่พบบ่อยใน ZOBYETEAM\_ECONOMY


# ZOBYETEAM\_INVENTORY

## Features

* สนับสนุนระบบน้ำหนัก(weight) และ จำกัด (limit)
* มีเมนูขวามือให้เลือกแสดงผลไอเทมเป็นหมวดหมู่
* มีระบบการใช้ช่องทางลัดเพื่อใช้ไอเทม (Fast slot, Quick slot, Shortcut)
* มีการโชว์สถานะที่ส่วนหัวของกระเป๋าซึ่งจะแสดงน้ำหนักปัจจุบัน น้ำหนักสูงสุด น้ำหนักที่คำนวณออกมาเป็นเปอร์เซ็นต์
* รูปแบบการโชว์เป็นสไตล์มินิมอล
* กดคลิกขวาที่ไอเทมเพื่อทำงาน การใช้ การให้ และ การทิ้ง (Use, Give, Drop with right click)
* สามารถตั้งค่าให้ไม่สามารถให้ และ ทิ้งของได้ผ่าน Config
* ปิดการให้เฉพาะไอเทมได้
* ปิดการทิ้งเฉพาะไอเทมได้
* ตั้งค่าไอเทมที่ใช้แล้วปิดกระเป๋าได้
* สามารถดูกุญแจรถผ่านกระเป๋าได้ (ประสิทธิภาพดีกว่าทั่วไป)
* ล็อครถผ่านกุยแจในกระเป๋าโดยไม่พึ่งพาสคริปต์ (รวดเร็วกว่ากระเป๋าทั่วไปโดยไม่มีการ Callback เพื่อที่ล็อคกุญแจ)
* สามารถโอนรถให้ผู้เล่นท่านอื่นได้โดยการกดปุ่ม Give
* Accessories ถูก Optimize ให้ดีกว่าทั่วไปถึง 50%

## Technical

* ไม่มี ESX Server callback
* CPU Usage : 0.01 - 0.2 ms

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FXYD5UOsy2pH9AA0XsepU%2Fzbt_inv_artwork_1.jpg?alt=media&amp;token=b3ea4d88-ee4b-4871-a8e5-53341872f82e" alt=""><figcaption></figcaption></figure>


# Setup

วิธีการติดตั้ง ZOBYETEAM\_INVENTORY เบื้องต้น

## วิธีการติดตั้ง ZOBYETEAM\_INVENTORY&#x20;

1. ดาวน์โหลด "zobyeteam\_inventory.rar" จาก [ZOBYETEAM Discord](/contact/discord)

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2F7IXZpPtRB1sycf17Uf9h%2FScreenshot%202022-10-13%20032937.png?alt=media&amp;token=a19d27e3-65d0-4f31-8c4b-26ac50136ff4" alt=""><figcaption></figcaption></figure>

2\. แตกไฟล์ จะได้ Folder "zobyeteam\_inventory"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FIJgx5vzF0oKLtNrEWLDX%2FScreenshot%202022-10-13%20033455.png?alt=media&amp;token=d4c1fc0a-26cb-4678-b267-3d9b3d92e96d" alt=""><figcaption></figcaption></figure>

3\. นำ Folder "zobyeteam\_inventory" ไปไว้ภายใน  Folder "resources"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2F2xp0wriMA3EuA7G9Y0iu%2FScreenshot%202022-10-13%20033704.png?alt=media&amp;token=4f9bfdc0-fafe-4d1a-a6a2-242be91ce94a" alt=""><figcaption></figcaption></figure>

4\. เพิ่ม "ensure zobyeteam\_inventory" ภายในไฟล์ server.cfg

```
ensure zobyeteam_inventory
```


# Connections

## ZOBYETEAM\_TRUNK

{% content-ref url="/pages/jcGXXHcalVfQ6p3YdOaZ" %}
[ZOBYETEAM\_TRUNK](/resource/zobyeteam_inventory/connection/zobyeteam_trunk)
{% endcontent-ref %}

## ZOBYETEAM\_SAFEBOX

{% content-ref url="/pages/BTuOOM70ANwi7iEoBE8P" %}
[ZOBYETEAM\_SAFEBOX](/resource/zobyeteam_inventory/connection/zobyeteam_safebox)
{% endcontent-ref %}


# ZOBYETEAM\_TRUNK

วิธีการติดตั้ง ZOBYETEAM\_TRUNK เบื้องต้น

## วิธีการติดตั้ง ZOBYETEAM\_TRUNK

1. ดาวน์โหลด "zobyeteam\_trunk.rar" จาก [ZOBYETEAM Discord](/contact/discord)

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FRUtWxubPyBrfkC05IfZV%2Ftrunk1.png?alt=media&amp;token=9e904966-2aff-40fb-923a-0ff529ad1917" alt=""><figcaption></figcaption></figure>

2\. แตกไฟล์ จะได้ Folder "zobyeteam\_trunk"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FOIksJanaJCRwyKgYLVKR%2Ftrunk2.png?alt=media&amp;token=4d458de9-c957-421d-bc91-ecb60c81680b" alt=""><figcaption></figcaption></figure>

3\. นำ Folder "zobyeteam\_trunk" ไปไว้ภายใน  Folder "resources"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FgQ1ParxUq6r3IbIn7OOX%2Fboth3.png?alt=media&amp;token=15ff0601-061b-42eb-9525-fcf39faecab1" alt=""><figcaption></figcaption></figure>

4\. เพิ่ม "ensure zobyeteam\_trunk" ภายในไฟล์ server.cfg

```
ensure zobyeteam_trunk
```

zobyeteam\_trunk จะเชื่อมต่อกับ zobyeteam\_inventory อัตโนมัติ โดยไม่ต้องตั้งค่าเพิ่มเติมใดๆ


# ZOBYETEAM\_SAFEBOX

วิธีการติดตั้ง ZOBYETEAM\_TRUNK เบื้องต้น

## วิธีการติดตั้ง ZOBYETEAM\_SAFEBOX

1. ดาวน์โหลด "zobyeteam\_safebox.rar" จาก [ZOBYETEAM Discord](/contact/discord)

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FvIDtrFXbMEBr49gXbHIa%2Fsafebox1.png?alt=media&amp;token=7b7414c6-5b77-4506-8820-2ab816094ff0" alt=""><figcaption></figcaption></figure>

2\. แตกไฟล์ จะได้ Folder "zobyeteam\_safebox"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2F5Tonk3klWe2Z1nmOogG8%2Fsafebox2.png?alt=media&amp;token=5fe1d898-7642-4aec-8f1b-5df43d63dbaf" alt=""><figcaption></figcaption></figure>

3\. นำ Folder "zobyeteam\_safebox" ไปไว้ภายใน  Folder "resources"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FgQ1ParxUq6r3IbIn7OOX%2Fboth3.png?alt=media&amp;token=15ff0601-061b-42eb-9525-fcf39faecab1" alt=""><figcaption></figcaption></figure>

4\. เพิ่ม "ensure zobyeteam\_safebox" ภายในไฟล์ server.cfg

```
ensure zobyeteam_safebox
```

zobyeteam\_safebox จะเชื่อมต่อกับ zobyeteam\_inventory อัตโนมัติ โดยไม่ต้องตั้งค่าเพิ่มเติมใดๆ


# Common problems

ปัญหาที่พบบ่อยใน ZOBYETEAM\_INVENTORY


# ZOBYETEAM\_PROFILE

Player Profile System

## Strength

* มีหน้าต่างสำหรับการใช้งานที่ง่ายและสวยงามพร้อมกับแอนิเมชั่นสบายตา
* ปรับปรุงประสิทธิภาพขั้นสูงสุด
* ไม่ดึงข้อมูลทุกครั้งที่มีการเปิดหน้าต่าง!

## Features

* แสดงผลชื่อ คำอธิบาย และ รูปภาพแบบกำหนดเอง
* สามารถดูข้อมูลสถิติการฆ่าและการตายแบบละเอียดของตนเองได้
* สามารถดูข้อมูลของผู้เล่นคนอื่นได้
* ระบบการค้นหาแบบเรียลไทม์

## Technical

* CPU Usage : 0.00 - 0.01ms

## Player Profile System - ZOBYETEAM\_PROFILE | FiveM | ZOBYETEAM

{% embed url="<https://www.youtube.com/watch?v=8gMBfwb_wew>" %}


# Setup

วิธีการติดตั้ง ZOBYETEAM\_PROFILE เบื้องต้น

## วิธีการติดตั้ง ZOBYETEAM\_PROFILE&#x20;

1. ดาวน์โหลด "zobyeteam\_profile.rar" จาก [ZOBYETEAM Discord](/contact/discord)

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FL5Z7C7llTmNUsJwCYyED%2FScreenshot%202022-12-10%20151503.png?alt=media&amp;token=e8d5d0f4-2c5b-4488-b443-2cf4a659634b" alt=""><figcaption></figcaption></figure>

2\. แตกไฟล์ จะได้ Folder "zobyeteam\_profile"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FKjboILNlNYm2NeHHKWde%2Ffolder.png?alt=media&amp;token=5092b747-e308-4f40-9b76-ebd0c802181f" alt=""><figcaption></figcaption></figure>

3\. นำ Folder "zobyeteam\_profile" ไปไว้ภายใน  Folder "resources"

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2Fnlepws4ro53RJXmpoXZv%2Fpath.png?alt=media&amp;token=df7b4841-49a1-4b73-9c57-20b8a994ea14" alt=""><figcaption></figcaption></figure>

4\. เพิ่ม "ensure zobyeteam\_profile" ภายในไฟล์ server.cfg

```
ensure zobyeteam_profile
```


# Common problems

ปัญหาที่พบบ่อยใน ZOBYETEAM\_PROFILE


# ZOBYETEAM\_PARTY

ระบบปาร์ตี้ช่วยฟาร์มไวขึ้นและโอนของให้กัน | Party | ZOBYETEAM FiveM

## Features

* ระบบใหม่ที่จะช่วยให้ผู้เล่นช่วยกันฟาร์ม
* เพิ่มความต้องการให้ผู้เล่น เล่นกันเป็นกลุ่มมากขึ้น
* ฟาร์มแล้วโอนของให้ผู้เล่นอื่นได้
* สามารถตั้งค่าให้ผู้เล่นฟาร์มไวขึ้นได้ หรือ ตั้งค่าอื่น ๆ เพิ่มเติมเมื่ออยู่ในปาร์ตี้
* เข้าปาร์ตี้ผ่านรหัสผ่าน
* ใช้งานง่าย, UI เรียบง่าย, การใช้งานเหมาะกับผู้เล่นทุกคน
* ประสิทธิภาพสูง ไม่หน่วง ไร้ปัญหา

## Technical

* CPU Usage : 0.00 - 0.01ms

## Review Video

ระบบปาร์ตี้ช่วยฟาร์มไวขึ้นและโอนของให้กัน | Party | ZOBYETEAM FiveM

{% embed url="<https://youtu.be/AQI5LbTkZ5k>" %}


# Connections

## Exports function

{% content-ref url="/pages/rFnlHKBveOtQwfqRDDof" %}
[Exports function](/resource/zobyeteam_party/connection/exportsfunction)
{% endcontent-ref %}


# Exports function

Exports function ของ zobyeteam\_party สำหรับการนำไปใช้กับทรัพยากรต่างๆ เช่น การฟาร์ม

{% code title="client - side" %}

```lua
local isHasParty = exports['zobyeteam_party']:isHasParty()
```

{% endcode %}

Function นี้จะมีการคืนค่าว่าผู้เล่นคนนี้อยู่ใน party หรือไม่ ถ้าใช่จะคืนค่าเป็น true ถ้าไม่จะเป็น false

{% code title="client - side" %}

```lua
local targetGive = exports['zobyeteam_party']:getTargetGive(isCheckDistance)

--isCheckDistance - boolean
```

{% endcode %}

Function นี้จะมีการคืนค่าเป็น server id ของผู้เล่นที่ผู้เล่นคนนี้เลือกจะให้ของแทนตนเอง โดยรับ Argument 1 ตัวคือ isCheckDistance (เช็คระยะตามที่ตั้งไว้ใน Config.maxDistance หรือไม่)

{% code title="client - side" %}

```lua
local partyMemberCount = exports['zobyeteam_party']:getPartyMemberCount()
```

{% endcode %}

Function นี้จะมีการคืนค่าเป็นจำนวนผู้เล่นใน party ของผู้เล่นนั้นๆ และจะนับเฉพาะผู้เล่นที่อยู่ในระยะตาม Config.maxDistance หากปรับให้ Config.countOnlyClosePlayer = true

ถ้าหากไม่ได้อยู่ใน party จะคืนค่าเป็น 0

```lua
-- client - side
exports['zobyeteam_party']:addInventoryItem(itemName, amount, isCheckDistance)

-- server - side
exports['zobyeteam_party']:addInventoryItem(playerId, itemName, amount, isCheckDistance)

--itemName - string
--amount - number
--isCheckDistance - boolean
```

Function นี้จะไม่มีการคืนค่าใดๆแต่จะเป็นการ Add ไอเทมให้กับ Target Give(ผู้เล่นที่เลือกที่จะให้ของ)             สำหรับฝั่ง client รับ argument เข้าไป 3 ตัวได้แก่ itemName(ชื่อไอเทม) amount(จำนวนที่ต้องการ) และ isCheckDistance(เช็คระยะตามที่ตั้งไว้ใน Config.maxDistance หรือไม่) ส่วนฝั่ง server มีการรับ argument 4 ตัว โดยเพิ่ม playerId ของผู้เล่นคนนั้นๆเข้ามา

{% code title="client - side" %}

```lua
exports['zobyeteam_party']:openParty()
```

{% endcode %}

Function นี้จะไม่มีการคืนค่าใดๆแต่จะเป็นการเปิดหน้า Interface ของ party ในกรณีที่ลูกค้าอาจจะนำไปเชื่อมกับเมนูเพื่อเลือกเปิด party โดยไม่กดปุ่มที่ตั้งไว้ใน Config

<pre class="language-lua" data-title="client - side"><code class="lang-lua"><strong>local partyMembers = exports['zobyeteam_party']:getPartyMembers(maxDistance)
</strong>
-- maxDistance - number
</code></pre>

Function นี้จะ return table ของสมาชิกใน party ที่อยู่ในระยะของ maxDistance หรือ Config.maxDistance หากไม่ระบุ maxDistance เมื่อปรับ Config.countOnlyClosePlayer = true\
แต่ถ้าหากปรับ Config.countOnlyClosePlayer = false จะ return สมาชิกทั้งหมดใน party

{% code title="client - side" %}

```lua
local isPartyHeader = exports['zobyeteam_party']:getIsPartyHeader()
```

{% endcode %}

return boolean (true-false) ว่าผู้เล่นที่ client นี้เป็นหัวหน้า party หรือไม่

{% code title="client - side" %}

```lua
local isPartyHeader = exports['zobyeteam_party']:getPartyName()
```

{% endcode %}

return ชื่อของ party ที่ผู้เล่นอยู่

{% code title="server - side" %}

```lua
exports['zobyeteam_party']:addPartyExp(playerId, exp)
```

{% endcode %}

ใช้สำหรับ add exp ให้กับ party ของผู้เล่น โดยระบุ playerId และ exp


# bt\_alljob

ตัวอย่างการเชื่อมกับ bt\_alljob

## **การเชื่อมเพื่อลดเวลาในการฟาร์มตามจำนวนคนในปาร์ตี้**

สำหรับตัวอย่างนี้จะเป็นการลดเวลาฟาร์ม 0.2 วินาที/คน\
จะต้องแก้ไขที่ไฟล์ *config/functions.client.lua*

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FMUKeC7B5D1dBouYytm8P%2Fimage.png?alt=media&amp;token=1dd8af73-7dd7-4b30-b1f7-4680eee846ce" alt=""><figcaption><p>ภาพรวมของโค้ด</p></figcaption></figure>

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FBBkLW6i4uEu3LA3CRtMg%2Fimage.png?alt=media&amp;token=3d77bed0-6f34-48a7-af7b-aafc423a6a38" alt=""><figcaption><p>ส่วนที่เชื่อมเพิ่มเติม</p></figcaption></figure>

## **การเชื่อม EXP สำหรับการฟาร์ม**

สำหรับตัวอย่างนี้จะเป็นการเพิ่ม 1 exp ต่อการฟาร์ม 1 ครั้ง\
จะต้องแก้ไขที่ไฟล์ *config/functions.server.lua*

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FeSDNaXtxRQg27P9NpxkH%2Fimage.png?alt=media&amp;token=4e148b87-05d3-4a9d-b474-fcc8d131477c" alt=""><figcaption><p>ส่วนที่เขียนเพิ่มคือบรรทัดที่ 4-6</p></figcaption></figure>


# Common problems

ปัญหาที่พบบ่อยใน ZOBYETEAM\_PARTY


# ZOBYE\_MUSICBOX

ระบบลำโพงใช้งานง่าย | Musicbox | ZOBYETEAM FiveM

## Features

* สามารถตั้งลำโพงได้ทุกที่
* สามารถตั้งลำโพงบนรถได้
* ใช้งานง่าย, UI เรียบง่าย, การใช้งานเหมาะกับผู้เล่นทุกคน
* ประสิทธิภาพสูง ไม่หน่วง ไร้ปัญหา
* สามารถค้นหาเพลงจากยูทูปได้ หรือ เปิดจากลิงค์ได้
* สามารถเปิดลูปได้

## Technical

* CPU Usage : 0.00 - 0.01ms
* เพลงและระดับเสียงซิงค์กันทุกคนที่อยู่ในระยะ

## Review Video

Zobye — Music Box | FiveM

{% embed url="<https://youtu.be/bayFJs1NNM8>" %}


# Config

Config ที่สำคัญสำหรับ ZOBYE\_MUSICBOX

Config.UsableItem | ชื่อไอเทมสำหรับกดวางลำโพง

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FxsMADwLRbg2LIuDN3k8V%2Fimage.png?alt=media&amp;token=d01dba48-c7a9-40c3-86d4-4977017399e1" alt=""><figcaption></figcaption></figure>

Config.Distance | ระยะไกลสุดที่จะได้ยินเสียงลำโพง (ระดับความดังของเสียงจะแปรผกผันกับระยะห่างจากลำโพง หรือ ยิ่งอยู่ห่างจากลำโพงจะยิ่งได้ยินเสียงเบา)

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FWqUaZEaHYs8pm8g4fVB3%2Fimage.png?alt=media&amp;token=36ed904d-4a02-430f-ace7-d86a94abdfcb" alt=""><figcaption></figcaption></figure>

Config.Model | Object model ของลำโพง

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FzCbb9BKrz0MyeRtozJde%2Fimage.png?alt=media&amp;token=d197ea6c-7209-42c2-9e88-f8354dc50daf" alt=""><figcaption></figcaption></figure>

Config.PermanentBoxes | สำหรับลำโพงที่ตั้งไว้ถาวรและทุกคนที่มีไอเทมที่กำหนดสามารถไปเปลี่ยนเพลงได้\
coords | ตำแหน่งของลำโพง\
model | Object model ของลำโพง\
distance | ระยะไกลสุดที่จะได้ยินเสียงลำโพง (ระดับความดังของเสียงจะแปรผกผันกับระยะห่างจากลำโพง หรือ ยิ่งอยู่ห่างจากลำโพงจะยิ่งได้ยินเสียงเบา)\
requireItem | ไอเทมที่ต้องใช้สำหรับจัดการเพลงที่จุดนี้ได้ หากปรับเป็น nil ทุกคนจะจัดการเพลงที่จุดนี้ได้ทั้งหมด

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2FZnXfo1xXpqdBtbpozJUw%2Fimage.png?alt=media&amp;token=a3120924-ab25-46ec-b824-3466a83d621a" alt=""><figcaption></figcaption></figure>

Config.YoutubeAPIKeys | API Key ของยูทูป (ฟังคำอธิบายเพิ่มเติมได้ที่วิดีโอสอนติดตั้ง)

<figure><img src="https://571580406-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FQjvTupw9Rnyf3botKser%2Fuploads%2F0T0rohyR1fhvZHM5aome%2Fimage.png?alt=media&amp;token=a9eb4a1b-d96a-41f0-8716-8b2ec752f229" alt=""><figcaption></figcaption></figure>


# ZOBYETEAM\_NOTIFY

zobyeteam\_notify

## Features

* สามารถปรับตำแหน่งของ notify ได้ตามต้องการ
* ใส่รูปภาพในการแจ้งเตือนได้

## Technical

* CPU Usage : 0.00 - 0.01ms


# Connections

## Exports function

{% content-ref url="/pages/rFnlHKBveOtQwfqRDDof" %}
[Exports function](/resource/zobyeteam_party/connection/exportsfunction)
{% endcontent-ref %}


# Exports function

Exports function ของ zobyeteam\_notify สำหรับการนำไปใช้กับทรัพยากรต่างๆ

## การใช้งานทั่วไป

{% code title="client - side" %}

```lua
exports['zobyeteam_notify']:send({type = 'info', content = 'ข้อความ', time = 5000})
```

{% endcode %}

{% code title="server - side" %}

```lua
TriggerClientEvent('zobyeteam_notify:send', playerId, {type = 'info', content = 'ข้อความ', time = 5000})
```

{% endcode %}

Function นี้จะเป็นการเรียกใช้ zobyeteam\_notify โดยรับ Parameters เพื่อนำไปแสดงผลได้แก่

* type (ประเภทของการแจ้งเตือน ได้แก่ info, success, warning)
* content (ข้อความส่วนเนื้อหา)
* time (เวลาในการแสดง หน่วยเป็น ms)

## การใช้งานกับ Twitter

```lua
TriggerClientEvent('zobyeteam_notify:sendTwitter', playerId, {
    action = 'sendTwitter', -- ห้ามแก้ไข
    profile =  'url รูปโปรไฟล์',
    name =  'ชื่อที่จะแสดงผล',
    message =  'ข้อความ',
    image = 'url รูปภาพ',
    type = 'twitterNormal', -- ห้ามแก้ไข
})
```


# Common problems

ปัญหาที่พบบ่อยใน ZOBYETEAM\_NOTIFY


# Github

{% embed url="<https://github.com/ZOBYETEAM>" %}


# Discord

Discord ที่ใช้สำหรับการติดต่อสอบถาม ซื้อ และดาวน์โหลด ทรัพยากรจาก ZOBYETEAM

## Discord URL

<https://discord.gg/sJ6PJ7C>

{% embed url="<https://discord.gg/sJ6PJ7C>" %}


# Facebook

Fanpage facebook สำหรับแจ้งข้อมูลข่าวสาร

<https://www.facebook.com/zobyeteam>

{% embed url="<https://www.facebook.com/zobyeteam>" %}


