Вопросы

Nicholson Scaletta
Новичок

Всем привет!

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

Поделиться сообщением


Ссылка на сообщение

12 ответов на этот вопрос

  • 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]); 
	}
}

 

Отредактировано пользователем legendabrn

Поделиться сообщением


Ссылка на сообщение
  • 0
legendabrn
Активный

upd:

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

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

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

 

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

Отредактировано пользователем legendabrn

Поделиться сообщением


Ссылка на сообщение
  • 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"

 

Поделиться сообщением


Ссылка на сообщение
  • 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

Отредактировано пользователем Nicholson Scaletta

Поделиться сообщением


Ссылка на сообщение
  • 0
39 минут назад, Nicholson Scaletta сказал:

PI[4][pMember]

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

Поделиться сообщением


Ссылка на сообщение
  • 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 превышал лимиты сампа

Поделиться сообщением


Ссылка на сообщение
  • 0
Senya Kolymbijskij
Освоившийся

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

Отредактировано пользователем Senya Kolymbijskij

Поделиться сообщением


Ссылка на сообщение
  • 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 )

Поделиться сообщением


Ссылка на сообщение
  • 0
Senya Kolymbijskij
Освоившийся

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

Отредактировано пользователем Senya Kolymbijskij

Поделиться сообщением


Ссылка на сообщение
  • 0
Nicholson Scaletta
Новичок
4 минуты назад, Senya Kolymbijskij сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
  • 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

такие ошибки

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Korochansky
      От Korochansky
      Я рад объявить о выпуске первой публичной версии современной IDE с открытым исходным кодом под лицензией GPLv3 для разработки open.mp и SA-MP, которая отличается интеграцией с SAMPCTL, управлением зависимостями и встроенной поддержкой Git.
       
      Особенности:
      • Разработано специально для open.mp и SA-MP разработки.
      • Встроенная интеграция с SAMPCTL для создания, запуска и управления проектами.
      • Менеджер зависимостей для удобной установки и обновления серверных пакетов и компонентов.
      • Встроенная поддержка Git с индикаторами состояния репозитория и историей коммитов.
      • Маркеры истории изменений для отслеживания измененных и сохраненных строк.
      • Автоматическое сопоставление и выделение скобок
      • Предварительный просмотр цвета для значений RGBA и HEX прямо в редакторе.
      • Интеграция инструмента выбора цвета для быстрой вставки цветов в код Pawn.
      • Режим 'Разделенный редактор кода' для одновременной работы с несколькими файлами.
      • Дерево проекта, оптимизированное для крупных проектов.
      • Интегрированные панели вывода результатов сборки и консоли сервера.
      • Автоматический мониторинг и обновление файлов проектов.
      • Портативная версия (установка не требуется).
       
      В репозитории: https://github.com/daniilkorochansky/spawn
    • Margiela
      От Margiela
      устал от vs code + он часто конфликтует с маками, конкретно с версией M3(как у меня).
      имеются ли аналоги pawno на mac?