Question

Nicholson Scaletta
Новичок

Всем привет!

Как сделать команду /sos? При вводе команды игрок(который ее написал) отмечается у всех сотрудников полиции на карте. Допустим, игрок находится в г.Южном на координатах 2550.0535,-2188.1401,21.9676, вводит команду /sos и он отображается у всех сотрудников на карте ( как в /gps ), минут через 10 эта метка пропадает

Share this post


Link to post

12 answers to this question

  • 0
legendabrn
Активный
new timer_sos_id[MAX_PLAYERS] = 0;

forward TimerSOS(playerid,iconid);  
public TimerSOS(playerid,iconid)
{
	RemovePlayerMapIcon(playerid, iconid);
}  
cmd:sos(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new iconid = 1000+playerid;
	for(new id; id <= GetPlayerPoolSize(); id++)
	{
		if(PlayerInfo[id][pMember] == 1) continue; // тут замени на свои переменные и айди фракции
		SetPlayerMapIcon(playerid, iconid, x, y, z, 52, 0, MAPICON_GLOBAL);
		timer_sos_id[id] = SetTimerEx("TimerSOS", 600000, 0, "dd", id, iconid);  
	}
    SendClientMessage(playerid, -1, "метка поставлена");
	return true;
}

public OnPlayerDisconnect(playerid, reason)
{
	//cod
	if(timer_sos_id[playerid])
	{
		KillTimer(timer_sos_id[playerid]); 
	}
}

 

Edited by legendabrn

Share this post


Link to post
  • 0
legendabrn
Активный

upd:

по моему мнению, вместо иконки на карте, лучше использовать чекпоинт, ибо в сампе лимит айди меток 99

в моем коде выше ошибка в переменной iconid, я не учел лимиты сампа, так что тебе нужно заменить iconid на не занятый айди иконки

если будут использовать два игрока команду /sos, то когда закончится таймер у полиции первого игрока, удалится иконка с местом нахождения и первого, и второго

 

ты можешь сделать лимиты, что всего 5 раз можно вызывать, когда таймер закончится, отнимай лимит на одно значение

Edited by legendabrn

Share this post


Link to post
  • 0
Nicholson Scaletta
Новичок

@legendabrn Ошибки :(

error 017: undefined symbol "GetPlayerPoolSize"
error 029: invalid expression, assumed zero
error 017: undefined symbol "GetPlayerPoolSize"
error 029: invalid expression, assumed zero
warning 215: expression has no effect
error 017: undefined symbol "GetPlayerPoolSize"

 

Share this post


Link to post
  • 0
Nicholson Scaletta
Новичок

@DEST , @legendabrn, Ошибок нет, но чет не пашет хах. В игре пишет тип метка поставлена, но я ее не вижу. Может я что-то не так сделал?

cmd:sos(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new iconid = 1000+playerid;
	for(new id; id <= MAX_PLAYERS; id++)
	{
		if(PI[4][pMember] == 1) continue; // тут замени на свои переменные и айди фракции
		SetPlayerMapIcon(playerid, iconid, x, y, z, 52, 0, MAPICON_GLOBAL);
		timer_sos_id[4] = SetTimerEx("TimerSOS", 600000, 0, "dd", id, iconid);
	}
    SendClientMessage(playerid, -1, "метка поставлена");
	return true;
}

 

ID фракции - 4

Edited by Nicholson Scaletta

Share this post


Link to post
  • 0
DEST
Maintainer
39 минут назад, Nicholson Scaletta сказал:

PI[4][pMember]

вы заменили id, который пробегал в цикле по всем игрокам на 4, из-за чего и не работает. 

Share this post


Link to post
  • 0
legendabrn
Активный
7 часов назад, Nicholson Scaletta сказал:

@DEST , @legendabrn, Ошибок нет, но чет не пашет хах. В игре пишет тип метка поставлена, но я ее не вижу. Может я что-то не так сделал?


cmd:sos(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new iconid = 1000+playerid;
	for(new id; id <= MAX_PLAYERS; id++)
	{
		if(PI[4][pMember] == 1) continue; // тут замени на свои переменные и айди фракции
		SetPlayerMapIcon(playerid, iconid, x, y, z, 52, 0, MAPICON_GLOBAL);
		timer_sos_id[4] = SetTimerEx("TimerSOS", 600000, 0, "dd", id, iconid);
	}
    SendClientMessage(playerid, -1, "метка поставлена");
	return true;
}

 

ID фракции - 4

cmd:sos(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new iconid = random(50)+10;
	for(new id; id <= MAX_PLAYERS; id++)
	{
		if(PI[id][pMember] == 4) continue; // тут замени на свои переменные и айди фракции
		SetPlayerMapIcon(playerid, iconid, x, y, z, 52, 0, MAPICON_GLOBAL);
		timer_sos_id[4] = SetTimerEx("TimerSOS", 600000, 0, "dd", id, iconid);
	}
    SendClientMessage(playerid, -1, "метка поставлена");
	return true;
}

плюсом у вас не будет метки, iconid превышал лимиты сампа

Share this post


Link to post
  • 0
Senya Kolymbijskij
Освоившийся

@legendabrn Данный код всавлять куда?,если мод самповский

Edited by Senya Kolymbijskij

Share this post


Link to post
  • 0
Nicholson Scaletta
Новичок

 

@Senya Kolymbijskij 

Ко всем "new"

new timer_sos_id[MAX_PLAYERS] = 0;

В OnPlayerDisconnect

	if(timer_sos_id[playerid])
	{
		KillTimer(timer_sos_id[playerid]); 
	}

Ко всем командам

cmd:sos(playerid)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new iconid = 1000+playerid;
	for(new id; id <= GetPlayerPoolSize(); id++)
	{
		if(PlayerInfo[id][pMember] == 1) continue; // тут замени на свои переменные и айди фракции
		SetPlayerMapIcon(playerid, iconid, x, y, z, 52, 0, MAPICON_GLOBAL);
		timer_sos_id[id] = SetTimerEx("TimerSOS", 600000, 0, "dd", id, iconid);  
	}
    SendClientMessage(playerid, -1, "метка поставлена");
	return true;
}

 

@legendabrn Спасибо большое. Возможно, я плохо объяснил, но нужна была просто круглая красная метка ( как в /gps )

Share this post


Link to post
  • 0
Senya Kolymbijskij
Освоившийся

@Nicholson Scaletta а какие переменный и айди фракции типо какая она по щету,или типо тот айди который вводится при  /templeader?

Edited by Senya Kolymbijskij

Share this post


Link to post
  • 0
Nicholson Scaletta
Новичок
4 минуты назад, Senya Kolymbijskij сказал:

@Nicholson Scaletta а какие переменный и айди фракции типо какая она по щету,или типо тот айди который вводится при  /templeader?

Введи /templeader и посмотри ID фракции

Share this post


Link to post
  • 0
Senya Kolymbijskij
Освоившийся

C:\gamemodes\new.pwn(21067) : warning 219: local variable "id" shadows a variable at a preceding level
C:\gamemodes\new.pwn(21067) : warning 213: tag mismatch: expected tag "_pinfo", but found none ("_")
C:\gamemodes\new.pwn(21067) : error 022: must be lvalue (non-constant)
C:\gamemodes\new.pwn(21069) : error 017: undefined symbol "PlayerInfo"
C:\gamemodes\new.pwn(21069) : warning 215: expression has no effect
C:\gamemodes\new.pwn(21069) : error 001: expected token: ";", but found "]"
C:\gamemodes\new.pwn(21069) : error 029: invalid expression, assumed zero
C:\gamemodes\new.pwn(21069) : fatal error 107: too many error messages on one line

такие ошибки

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • danya_white
      By danya_white


      Скачать файл Оригинальный мод SA:MP Action Games aka Revent RP
      Доброго времени суток, хочу выставить на продажу уникального игровой мод проекта Action Games ( Revent RP )
      Известный мод проекта который существовал с 2016 года, 
      Мод уникальный и многофункциональный, но требует доработок и улучшений достаточно много недороботок/багов
      Продаю потому что нет времени и желание продолжать работу над этим модом
      Основа мода Revent RP, разрабатывался под проект Action Games
       
      Информация о моде:
      Версия MYSQL -  MySQL R41-4
      Античит - NEX-AC
      Стример - Streamer Plugin v2.9.6 by Incognito
      Командный процессор - Pawn.CMD
      Хэширование паролей - MD5
      Игровой мод разбит на файлы
      Остальное Все плагины обновлены до последней версии

      Функционал, интерфейс можно посмотреть по скриншотам и видеообзорам ниже.
       
      Добавил danya_white Добавлено 05/31/26 Категория Моды Автор danya_whtie  
    • danya_white
      By danya_white
      Доброго времени суток, хочу выставить на продажу уникального игровой мод проекта Action Games ( Revent RP )
      Известный мод проекта который существовал с 2016 года, 
      Мод уникальный и многофункциональный, но требует доработок и улучшений достаточно много недороботок/багов
      Продаю потому что нет времени и желание продолжать работу над этим модом
      Основа мода Revent RP, разрабатывался под проект Action Games
       
      Информация о моде:
      Версия MYSQL -  MySQL R41-4
      Античит - NEX-AC
      Стример - Streamer Plugin v2.9.6 by Incognito
      Командный процессор - Pawn.CMD
      Хэширование паролей - MD5
      Игровой мод разбит на файлы
      Остальное Все плагины обновлены до последней версии

      Функционал, интерфейс можно посмотреть по скриншотам и видеообзорам ниже.
       
    • мурзик НЕРНО
      By мурзик НЕРНО
      Помогите пожалуйста у меня есть мод от нового RUSSIA RP и там баг есть некоторые места на карте ваще дырки как будто вырезанные так же и с интерьерами вроде в моде написаны я сам лично проверял на другом моде работают а на этотм ваще некоторый из них не отображается и вот когда я захожу на другой проект все нормально с картой и не куда не проваливаюсь так же и на пк тоже я посоветовался с другими разработчиками они сказал дело в этом файле только я не понимаю что там надо ваще поменять или добавить буду рад если поможете
       
      Скрины так же есть там таких мест очень много
      MAP.inc