Skip to content

Commit 5a26f4b

Browse files
authored
Create SetTimer.md for tranlsations/fa (#1086)
* Create SetTimer.md for tranlsations/fa * Create SetTimerEx.md for tranlations/fa * Update SetTimer.md in tranlations/fa Add a missing new line.
1 parent c7436a7 commit 5a26f4b

File tree

2 files changed

+180
-0
lines changed

2 files changed

+180
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
title: SetTimer
3+
description: یک 'تایمر' تنظیم می‌کند تا یک تابع را پس از مدتی فراخوانی کند.
4+
tags: ["timer"]
5+
---
6+
7+
## توضیحات
8+
9+
یک 'تایمر' تنظیم می‌کند تا یک تابع را پس از مدتی فراخوانی کند. قابل تنظیم برای تکرار.
10+
11+
| اسم | توضیحات |
12+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
13+
| const functionName[] | نام تابعی که باید به عنوان یک رشته فراخوانی شود. این باید یک تابع عمومی باشد. یک رشته خالی در اینجا باعث کرش سرور خواهد شد. |
14+
| interval | فاصله زمانی (مدت زمان تایمر) به میلی‌ثانیه. |
15+
| bool:repeating | مقدار بولین (true/false) برای مشخص کردن اینکه تایمر باید تکرار شود یا خیر. |
16+
17+
## مقادیر بازگشتی
18+
19+
شناسه تایمر شروع شده.
20+
21+
شناسه تایمر ها شروع می‌شوند از **1**.
22+
23+
## مثال ها
24+
25+
```c
26+
public OnGameModeInit()
27+
{
28+
print("Starting timer...");
29+
SetTimer("OneSecondTimer", 1000, true); // تنظیم یک تایمر تکرار شونده برای هر 1000 میلی‌ثانیه (1 ثانیه)
30+
}
31+
32+
forward OneSecondTimer();
33+
public OneSecondTimer()
34+
{
35+
print("1 second has passed.");
36+
}
37+
```
38+
39+
## نکته ها
40+
41+
:::warning
42+
43+
فواصل زمانی تایمرها دقیق نیستند (تقریباً ۲۵٪ خطا) در SA-MP. راه حل هایی موجود هستند در [اینجا](https://sampforum.blast.hk/showthread.php?tid=289675) و [اینجا](https://sampforum.blast.hk/showthread.php?tid=650736).
44+
45+
اما این مشکل در open.mp حل شده است.
46+
47+
:::
48+
49+
:::warning
50+
51+
استفاده از تایمر های زیاد باعث افزایش مصرف رم/سی‌پی‌یو خواهد شد.
52+
53+
:::
54+
55+
:::tip
56+
57+
شناسه‌های تایمر هرگز دوباره استفاده نمی‌شوند.
58+
59+
60+
شما می‌توانید با استفاده از [KillTimer](KillTimer) یک شناسه تایمر را متوقف کنید و مهم نیست که در حال اجرا باشد یا نه.
61+
62+
تابعی که باید فراخوانی شود، باید عمومی باشد، به این معنی که باید forwarded باشد.
63+
64+
:::
65+
66+
## تعریف شده ها
67+
68+
| تعریف | مقدار |
69+
|---------------|-------|
70+
| INVALID_TIMER | 0 |
71+
72+
## تابع های مرتبط
73+
74+
- [SetTimerEx](SetTimerEx): تنظیم تایمر با پارامتر ها.
75+
- [KillTimer](KillTimer): متوقف کردن یک تایمر
76+
- [IsValidTimer](IsValidTimer): بررسی وجود یک تایمر.
77+
- [IsRepeatingTimer](IsRepeatingTimer): بررسی اینکه آیا تایمر تکراری است یا خیر.
78+
- [GetTimerInterval](GetTimerInterval): گرفتن فاصله زمانی یک تایمر.
79+
- [GetTimerRemaining](GetTimerRemaining): گرفتن فاصله زمانی باقی مانده یک تایمر.
80+
- [CountRunningTimers](CountRunningTimers): گرفتن تایمر های درحال اجرا.
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
---
2+
title: SetTimerEx
3+
description: تنظیم یک تایمر برای فراخوانی تابع پس از یک بازه زمانی مشخص. با قابلیت ارسال مقادیر
4+
tags: ["timer"]
5+
---
6+
7+
## توضیحات
8+
9+
یک تایمر برای فراخوانی تابع پس از یک بازه زمانی مشخص تنظیم می‌کند. این نسخه ('Ex') امکان ارسال پارامترها (مانند شناسه بازیکن) به تابع را فراهم می‌کند.
10+
11+
| نام | توضیحات |
12+
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
13+
| const functionName[] | نام یک تابع عمومی که پس از انقضای تایمر فراخوانی می‌شود. |
14+
| interval | بازه زمانی به میلی‌ثانیه (1 ثانیه = 1000 میلی‌ثانیه). |
15+
| bool:repeating | مقدار بولی (true/false یا 1/0) که مشخص می‌کند آیا تایمر باید به صورت مکرر فراخوانی شود (فقط با KillTimer متوقف می‌شود) یا تنها یک بار اجرا شود. |
16+
| const specifiers[] | فرمت خاصی که نشان‌دهنده نوع مقادیر ارسالی تایمر است. |
17+
| OPEN_MP_TAGS:... | تعداد نامحدودی از آرگومان‌ها برای ارسال (باید مطابق فرمت مشخص شده در پارامتر قبلی باشد). |
18+
19+
## مقادیر بازگشتی
20+
21+
شناسه تایمری که شروع شده است. شناسه تایمرها از 1 شروع شده و دوباره استفاده نمی‌شوند. هیچ بررسی داخلی برای صحت پارامترهای ارسال‌شده انجام نمی‌شود (مثلاً اگر مدت‌زمان مقدار منفی باشد). افزونه 'fixes2' از Y_Less این بررسی‌ها را انجام داده و دقت تایمرها را به طور قابل توجهی بهبود می‌بخشد و همچنین امکان ارسال آرایه/رشته را اضافه می‌کند.
22+
23+
## مثال‌ها
24+
25+
```c
26+
SetTimerEx("EndAntiSpawnKill", 5000, false, "i", playerid);
27+
// EndAntiSpawnKill - این تابع فراوخوانی خواهد شد
28+
// 5000 - 5000 میلی‌ثانیه (5 ثانیه). این بازه زمانی است. تایمر پس از 5 ثانیه فراخوانی می‌شود.
29+
// false - بدون تکرار. فقط یک بار فراخوانی خواهد شد.
30+
// "i" - 'i' نشان‌دهنده عدد صحیح (عدد کامل) است. ما یک عدد صحیح (شناسه بازیکن) را به تابع ارسال می‌کنیم.
31+
// playerid - مقداری که باید ارسال شود. این مقدار همان عدد صحیح مشخص شده در پارامتر قبلی است.
32+
```
33+
34+
<br />
35+
36+
```c
37+
// The event callback (OnPlayerSpawn) - Inja ma yek timer shoro mikonim.
38+
public OnPlayerSpawn(playerid)
39+
{
40+
// Anti-Spawnkill (5 saanie) - Jelogiri az koshte shodan dar spawn ta 5 saanie.
41+
42+
// Health(Joon) player ro be meghdar bala set mikonam ta koshte nashavad.
43+
SetPlayerHealth(playerid, 999999.0);
44+
45+
// Etela midim behesh.
46+
SendClientMessage(playerid, -1, "You are protected against spawn-killing for 5 seconds.");
47+
48+
// Yek timer timer misazim ta Spawn kill ro ba'ad az 5 saanie gheyr fa'al kone.
49+
SetTimerEx("EndAntiSpawnKill", 5000, false, "i", playerid);
50+
}
51+
52+
// Forward (make public) the function so the server can 'see' it
53+
forward EndAntiSpawnKill(playerid);
54+
// The timer function - in code vaghti ke zaman timer resid ejra mishe.
55+
public EndAntiSpawnKill(playerid)
56+
{
57+
// 5 saanie gozashte, pas joon player ro be halat normal bar migardonim.
58+
SetPlayerHealth(playerid, 100.0);
59+
60+
// Bezar behesh etela ham bedim.
61+
SendClientMessage(playerid, -1, "You are no longer protected against spawn-killing.");
62+
return 1;
63+
}
64+
```
65+
66+
## نکته ها
67+
68+
:::warning
69+
70+
71+
فواصل زمانی تایمرها دقیق نیستند (تقریباً ۲۵٪ خطا) در SA-MP. راه حل هایی موجود هستند در [اینجا](https://sampforum.blast.hk/showthread.php?tid=289675) و [اینجا](https://sampforum.blast.hk/showthread.php?tid=650736).
72+
73+
اما این مشکل در open.mp حل شده است.
74+
75+
:::
76+
77+
:::tip
78+
79+
متغیرهای شناسه تایمر باید زمانی که دیگر مورد استفاده نیستند به 0 تنظیم شوند تا احتمال از کار انداختن اشتباهی تایمرهای جدید به حداقل برسد. مقدار `-1` معمولاً به اشتباه به عنوان شناسه نامعتبر در نظر گرفته می‌شود - که نیست.
80+
81+
تابعی که باید فراخوانی شود، باید عمومی باشد، به این معنی که باید forwarded باشد.
82+
:::
83+
84+
## تعریف شده ها
85+
86+
| تعریف | مقدار |
87+
|---------------|-------|
88+
| INVALID_TIMER | 0 |
89+
90+
## تابع های مرتبط
91+
92+
- [SetTimer](SetTimer): تنظیم یک تایمر.
93+
- [KillTimer](KillTimer): متوقف کردن یک تایمر.
94+
- [IsValidTimer](IsValidTimer): بررسی می‌کند که آیا یک تایمر معتبر است.
95+
- [IsRepeatingTimer](IsRepeatingTimer): بررسی می‌کند که آیا یک تایمر به صورت تکراری تنظیم شده است.
96+
- [GetTimerInterval](GetTimerInterval): دریافت بازه زمانی یک تایمر.
97+
- [GetTimerRemaining](GetTimerRemaining): دریافت بازه زمانی باقی‌مانده یک تایمر.
98+
- [CountRunningTimers](CountRunningTimers): دریافت تعداد تایمرهای در حال اجرا.
99+
- [CallLocalFunction](CallLocalFunction): فراخوانی یک تابع در اسکریپت.
100+
- [CallRemoteFunction](CallRemoteFunction): فراخوانی یک تابع در هر اسکریپت بارگذاری شده.

0 commit comments

Comments
 (0)