Форум Pawn.Wiki - Воплоти мечту в реальность!: Фикс флуда пикапами - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ Other ]
Фикс флуда пикапами
Оценка: -----

#1
Пользователь офлайн   m1stbek 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Доброго времени суток, друзья.
Сегодня я хотел бы опубликовать тему посвящённую исправлению бага связанного с флудом диалоговыми окнами стоя в пикапах.
Увы, даже в нынешнее время часто сталкиваюсь с таким багом различных модах - что самп, что крмп, хотя уверен, что разницы в них почти нет.

И так, начнём.

Ко всем new
new Float:PosPic[3][MAX_PLAYERS];


В паблик OnPlayerPickUpEx
if(Pic[playerid] == 1) return false; else Pic[playerid] = 1,GetPlayerPos(playerid,PosPic[0][playerid],PosPic[1][playerid],PosPic[2][playerid]);


В OnGameModeInit
SetTimer("CustomPickups", 1, true);


И наконец в конец мода
forward CustomPickups();
public CustomPickups()
{
      for(new i = 0; i < MAX_PLAYERS; i++)
      {
       if(IsPlayerConnected(i))
       {
        if(!IsPlayerInRangeOfPoint(i, 2.0, PosPic[0][i], PosPic[1][i], PosPic[2][i])) Pic[i] = 0; // проверка на наличие игрока в пикапе.
       }
      }
}

1

#2
Пользователь офлайн   continue 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию
https://pawn.wiki/in...lt-smart-pickup

просто есть в паблике...
0

#3
Пользователь офлайн   m1stbek 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияcontinue (24 января 2025 - 13:43) писал:

https://pawn.wiki/in...lt-smart-pickup

просто есть в паблике...


сама тема была в основном для тех, кто делает свои мобильные сервера где не интегрирована кнопка Alt в клиент
0

#4
Пользователь офлайн   niksochek 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Не плохо, но есть еще одно решение:

//К переменным
static pPickupID[MAX_PLAYERS];

//в public OnPlayerPickUpDynamicPickup(playerid, STREAMER_TAG_PICKUP pickupid)ъ

if(!IsValidDynamicPickup(pickupid) || pPickupID[playerid]) return 0;
pPickupID[playerid] = pickupid;

//В public OnPlayerUpdate(playerid)

if(pPickupID[playerid])
{
new pickupid = pPickupID[playerid];
if(!IsValidDynamicPickup(pickupid)) pPickupID[playerid] = 0;
else
{
new Float:pos_x, Float:pos_y, Float:pos_z;
Streamer_GetFloatData(STREAMER_TYPE_PICKUP, pickupid, E_STREAMER_X, pos_x);
Streamer_GetFloatData(STREAMER_TYPE_PICKUP, pickupid, E_STREAMER_Y, pos_y);
Streamer_GetFloatData(STREAMER_TYPE_PICKUP, pickupid, E_STREAMER_Z, pos_z);
if(!IsPlayerInRangeOfPoint(playerid, 2.0, pos_x, pos_y, pos_z)) pPickupID[playerid] = 0;
}
}
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика