В този раздел можете да намерите полезни кодове и уроци свързани с PAWN скриптинга.
Модератори: Extreme , Extreme , Extreme , Extreme , Extreme , Extreme , Extreme
SmirnoffBG Извън линия
Потребител
Мнения: 267 Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:
Мнение
от SmirnoffBG » 18 Юли 2019, 22:50
Защо ми е тази функция:
Защото get_players бъгва при търсене по отбори.
Защото може да върне случаен играч.
Защото връща всички с посочената дума, а не грешка или само първият.
Функционалност:
Може да засече:
"Gosho" (Връща всички играчи, който в името си имат думата)
"@ct" (връща всички контра терористи)
"@t" (връща всички терористи)
"@all" (връща всички играчи в сървъра)
"@r" (Избира произволен играч)
Употреба:
Код за потвърждение: Избери целия код
new duma[15]
copy(duma, "say goldenak @all")
get_players_by_name(id, pl[32], duma[13], &num)
// duma[13] защото тогава е "@all", което всъчщност й трябва на функцията
if(num == -1) return
if(num == 1)
{
//кодът намери това което търсехте
}
else
{
//кодът е намерил повече от един
}
Код за потвърждение: Избери целия код
get_players_by_name(id, pl[32], szString[50], &num)
{
switch(szString[0]) {
case '@':if(szString[1] == 'r')
{
if( get_playersnum() < 2)
{
ColorChat(id, RED, "^x04[^x01PREFIX^x04] ^"@random^" cannot be used with only 1 person in the server!")
}
new tid32
while ((tid32 = random_num(1,32)))
{
if(!is_user_connected(tid32) || id == tid32) continue
pl[num] = tid32
num++
break
}
}
else
{
for(new i=1; i<33; i++)
{
if(is_user_connected(i))
{
if(get_user_team(i) != (szString[1]-97)%6 && szString[1] != 'a') continue
pl[num] = i, num++
}
}
}
default : for(new i=1; i<33; i++)
if(is_user_connected(i) && containi(user_name[i], szString) != -1)
pl[num] = i, num++
}
}
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015
TheRedShoko Извън линия
Модератор
Мнения: 1016 Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти
Мнение
от TheRedShoko » 18 Юли 2019, 23:24
Какво по-точно бъгва на get_players?
- get_players работи много по-бързо
- random се имплементира изключително лесно с get_players
SmirnoffBG Извън линия
Потребител
Мнения: 267 Регистриран на: 27 Ное 2016, 19:43
Местоположение: nz
Се отблагодари: 77 пъти
Получена благодарност: 38 пъти
Обратна връзка:
Мнение
от SmirnoffBG » 19 Юли 2019, 00:45
На версия 1.8 на amxmodx get_players не връща правилно, ако желаеш да маркираш всички от даден отбор.
ПП: Давам го този код не за да се правя на оптимизатор а за хора който имат подобен проблем и като цяло искат с един "stock" да хванат дори и "@all"
El-Super Respawn = 87.121.54.85:27016
BG Trewa Respawn = 91.92.137.205:27015
12 Отговори
3946 Преглеждания
Последно мнение от gadinkata
22 Авг 2020, 15:42
8 Отговори
862 Преглеждания
Последно мнение от DarkGameR
09 Ное 2023, 23:12
3 Отговори
1521 Преглеждания
Последно мнение от iv69
22 Авг 2020, 23:43
0 Отговори
1160 Преглеждания
Последно мнение от iv69
06 Дек 2020, 14:47
1 Отговори
1327 Преглеждания
Последно мнение от sf4n
23 Апр 2020, 00:34
2 Отговори
1577 Преглеждания
Последно мнение от sf4n
12 Апр 2020, 14:58
1 Отговори
911 Преглеждания
Последно мнение от Radeon
01 Мар 2022, 13:48
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 25 госта