Перейти к содержанию
Авторизация  
Dmitriy_Orlov

Как сделать команду "/spawn"?

Рекомендуемые сообщения

Dmitriy_Orlov

Всем привет!

 

Расскажите, как сделать команду "/spawn" т.е., чтобы игрок мог выбрать место спавна.

 

1.Свободный Spawn

2.Spawn в доме

3.Spawn в квартире

4.Spawn на базе фракции

 

За ранее спасибо!

 

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


Ссылка на сообщение
Поделиться на другие сайты
EgasVegas

Создёшь диалог и для каждого спавна прописываешь координаты.

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


Ссылка на сообщение
Поделиться на другие сайты
Rustyk

Деньги решат всё.

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


Ссылка на сообщение
Поделиться на другие сайты
Dmitriy_Orlov

Создёшь диалог и для каждого спавна прописываешь координаты.

Можете примерно показать, как всё делать?

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


Ссылка на сообщение
Поделиться на другие сайты
#Bazuka
	else if(!strcmp(cmd, "/setspawn", true))
	{
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_GREEN, "» Использование: /setspawn [ тип спавна ]");
			SendClientMessage(playerid, COLOR_GRAY, "| 1: Место сохранения ");
			SendClientMessage(playerid, COLOR_GRAY, "| 2: Личный/арендованный дом");
			return 1;
		}
		new spawn = strval(tmp);
		if(spawn < 1 || spawn > 2) return SendClientMessage(playerid, COLOR_GREEN, "Ты ввёл не верный тип спавна. Используй тип от 1 до 2");
		if(PlayerInfo[playerid][pSpawn] == spawn-1) return SendClientMessage(playerid, COLOR_GREEN, "У тебя уже установлено это место спавна");
		if(spawn == 1)
		{
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Место сохранения");
			PlayerInfo[playerid][pSpawn] = 0;
		}
		else if(spawn == 2)
		{
			if(PlayerInfo[playerid][pHouse] == 0 && PlayerInfo[playerid][pRent] == 0) return SendClientMessage(playerid, COLOR_GREEN, "Ты не имеешь личного или арендованого дома");
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Личный/арендованный");
			PlayerInfo[playerid][pSpawn] = 1;
		}
		return 1;
	}

Пример дома,простого спавна и можно добавить еще для фракции

Если у тебя мод не содержит:

else if

То убери:

else
Изменено пользователем Rulles

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


Ссылка на сообщение
Поделиться на другие сайты
Dmitriy_Orlov
	else if(!strcmp(cmd, "/setspawn", true))
	{
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_GREEN, "» Использование: /setspawn [ тип спавна ]");
			SendClientMessage(playerid, COLOR_GRAY, "| 1: Место сохранения ");
			SendClientMessage(playerid, COLOR_GRAY, "| 2: Личный/арендованный дом");
			return 1;
		}
		new spawn = strval(tmp);
		if(spawn < 1 || spawn > 2) return SendClientMessage(playerid, COLOR_GREEN, "Ты ввёл не верный тип спавна. Используй тип от 1 до 2");
		if(PlayerInfo[playerid][pSpawn] == spawn-1) return SendClientMessage(playerid, COLOR_GREEN, "У тебя уже установлено это место спавна");
		if(spawn == 1)
		{
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Место сохранения");
			PlayerInfo[playerid][pSpawn] = 0;
		}
		else if(spawn == 2)
		{
			if(PlayerInfo[playerid][pHouse] == 0 && PlayerInfo[playerid][pRent] == 0) return SendClientMessage(playerid, COLOR_GREEN, "Ты не имеешь личного или арендованого дома");
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Личный/арендованный");
			PlayerInfo[playerid][pSpawn] = 1;
		}
		return 1;
	}

Пример дома,простого спавна и можно добавить еще для фракции

Если у тебя мод не содержит:

else if

То убери:

else

Слушай, а как сделать для фракции? 

У меня вылазит ошибка. Символ неизвестный "pHouse", ставил уже pDom, pHom, pHome. Всё равно, ошибка.

Изменено пользователем Dmitriy_Orlov

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


Ссылка на сообщение
Поделиться на другие сайты
#Bazuka

Результат и отличие будет большие так как моды разные...

Ну примерно как то так,я как раз для себя сделаю:

	else if(!strcmp(cmd, "/setspawn", true))
	{
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_GREEN, "» Использование: /setspawn [ тип спавна ]");
			SendClientMessage(playerid, COLOR_GRAY, "| 1: Место сохранения ");
			SendClientMessage(playerid, COLOR_GRAY, "| 2: Личный/арендованный дом");
			SendClientMessage(playerid, COLOR_GRAY, "| 3: Место фракции");
			return 1;
		}
		new spawn = strval(tmp);
		if(spawn < 1 || spawn > 3) return SendClientMessage(playerid, COLOR_GREEN, "Ты ввёл не верный тип спавна. Используй тип от 1 до 2");
		if(PlayerInfo[playerid][pSpawn] == spawn-1) return SendClientMessage(playerid, COLOR_GREEN, "У тебя уже установлено это место спавна");
		if(spawn == 1)
		{
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Место сохранения");
			PlayerInfo[playerid][pSpawn] = 0;
		}
		else if(spawn == 2)
		{
			if(PlayerInfo[playerid][pHouse] == 0 && PlayerInfo[playerid][pRent] == 0) return SendClientMessage(playerid, COLOR_GREEN, "Ты не имеешь личного или арендованого дома");
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Личный/арендованный");
			PlayerInfo[playerid][pSpawn] = 1;
		}
		else if(spawn == 3)
		{
			if(PlayerInfo[playerid][pMemder] == 0 || PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid, COLOR_GREEN, "Ты не имеешь личного или арендованого дома");
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Место фракции");
			PlayerInfo[playerid][pSpawn] = 1;
		}
		return 1;
	}

Это лишь пример команды,а уже сам spawn's фракции сделаешь сам...

Дополнительная информация:

&&

И

==

Имеют разные функции

Пример для полного понимание(я)

Если ты хочешь сделать spawn's например для машины,то ты должен дать значение

==

А если связано с игроком или же там фракции,то значение берете

&&
Изменено пользователем Rulles

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


Ссылка на сообщение
Поделиться на другие сайты
Dmitriy_Orlov

Результат и отличие будет большие так как моды разные...

Ну примерно как то так,я как раз для себя сделаю:

	else if(!strcmp(cmd, "/setspawn", true))
	{
		tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_GREEN, "» Использование: /setspawn [ тип спавна ]");
			SendClientMessage(playerid, COLOR_GRAY, "| 1: Место сохранения ");
			SendClientMessage(playerid, COLOR_GRAY, "| 2: Личный/арендованный дом");
			SendClientMessage(playerid, COLOR_GRAY, "| 3: Место фракции");
			return 1;
		}
		new spawn = strval(tmp);
		if(spawn < 1 || spawn > 3) return SendClientMessage(playerid, COLOR_GREEN, "Ты ввёл не верный тип спавна. Используй тип от 1 до 2");
		if(PlayerInfo[playerid][pSpawn] == spawn-1) return SendClientMessage(playerid, COLOR_GREEN, "У тебя уже установлено это место спавна");
		if(spawn == 1)
		{
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Место сохранения");
			PlayerInfo[playerid][pSpawn] = 0;
		}
		else if(spawn == 2)
		{
			if(PlayerInfo[playerid][pHouse] == 0 && PlayerInfo[playerid][pRent] == 0) return SendClientMessage(playerid, COLOR_GREEN, "Ты не имеешь личного или арендованого дома");
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Личный/арендованный");
			PlayerInfo[playerid][pSpawn] = 1;
		}
		else if(spawn == 3)
		{
			if(PlayerInfo[playerid][pMemder] == 0 || PlayerInfo[playerid][pLeader] == 0) return SendClientMessage(playerid, COLOR_GREEN, "Ты не имеешь личного или арендованого дома");
			SendClientMessage(playerid, COLOR_WHITE, "Твоё новое место спавна: {9DDAF2}Место фракции");
			PlayerInfo[playerid][pSpawn] = 1;
		}
		return 1;
	}

Это лишь пример команды,а уже сам spawn's фракции сделаешь сам...

А что делать с pHouse?

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


Ссылка на сообщение
Поделиться на другие сайты
#Bazuka

А что делать с pHouse?

Отредактировал сообщение с дополнительной информации...

В каком смысле именно?

pHouse

Или ты доводишь мысли как сделать spawn для дома(Если он имеется у игрока)

Чтоб не спамнить напиши в лс

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


Ссылка на сообщение
Поделиться на другие сайты
Vladimir_Kulkov

А что делать с pHouse?

У тебя как дом в моде пишется? Пример : [pDomik] должно быть это

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


Ссылка на сообщение
Поделиться на другие сайты
#Bazuka

У тебя как дом в моде пишется? Пример : [pDomik] должно быть это

Если ты не знаешь не пиши,тупо сообщение набиваешь и все.

Твой пост вообще не в ту сторону клонит...

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


Ссылка на сообщение
Поделиться на другие сайты
Vladimir_Kulkov

Если ты не знаешь не пиши,тупо сообщение набиваешь и все.

Твой пост вообще не в ту сторону клонит...

ну.. и со.. , дальше. Мне делать нехрен набивать "Сообщения" Изменено пользователем depula2

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


Ссылка на сообщение
Поделиться на другие сайты
Dmitriy_Orlov

У тебя как дом в моде пишется? Пример : [pDomik] должно быть это

Нет, нету такой

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


Ссылка на сообщение
Поделиться на другие сайты
Vladimir_Kulkov

Нет, нету такой

Ты меня не понял... Какой мод у тебя?

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


Ссылка на сообщение
Поделиться на другие сайты
Red_Devils

Возьми GTRP mxINI, вбей в поиск pSpawn и делай как там. 

  • Like 1

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


Ссылка на сообщение
Поделиться на другие сайты
Dmitriy_Orlov

Ты меня не понял... Какой мод у тебя?

Full Game RP

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


Ссылка на сообщение
Поделиться на другие сайты
Predator

1. Создавай в enum pInfo  - pSpawn.
2. Делай загрузку, сохранение.

3. Команду:

if(strcmp(cmd, "/setspawn", true) == 0)
{
ShowPlayerDialog(playerid, 19444, DIALOG_STYLE_LIST, "Выбор места появления", "Место 1\nМесто 2\nМесто 3", "Далее", "Отмена");
return true;
}

4. Диалог:

if(dialogid == 19444)
{
if(response)
{
switch(listitem)
{
case 0: PlayerInfo[playerid][pSpawn] = 1, SCM(playerid, -1, "Теперь вы будете появляться на месте 1");
case 1: PlayerInfo[playerid][pSpawn] = 2, SCM(playerid, -1, "Теперь вы будете появляться на месте 2");
case 2: PlayerInfo[playerid][pSpawn] = 3, SCM(playerid, -1, "Теперь вы будете появляться на месте 3");
}
}
}

5. Проверку на появление в SetPlayerSpawn:

if(PlayerInfo[playerid][pSpawn] == 1)
{
//Спавним игрока на месте 1
}

if(PlayerInfo[playerid][pSpawn] == 2)
{
//Спавним игрока на месте 2
}

if(PlayerInfo[playerid][pSpawn] == 3)
{
//Спавним игрока на месте 3
}

Подсказал я тебе уже более чем нужно. Дальше дело за тобой.

Изменено пользователем Predator
  • Like 1

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


Ссылка на сообщение
Поделиться на другие сайты
Max_Eitzen
if(dialogid == 19444)
{
if(response)
{
switch(listitem)
{
case 0: PlayerInfo[playerid][pSpawn] = 1, SCM(playerid, -1, "Теперь вы будете появляться на месте 1");
case 1: PlayerInfo[playerid][pSpawn] = 2, SCM(playerid, -1, "Теперь вы будете появляться на месте 2");
case 2: PlayerInfo[playerid][pSpawn] = 3, SCM(playerid, -1, "Теперь вы будете появляться на месте 3");
}
}
}

можно заменить

if(dialogid == 19444)
{
    new tstr[64];
    if(!response) return false;
    format(tstr, sizeof(tstr), "Теперь Вы будете появляться на месте %d", listitem+1);
    PlayerInfo[playerid][pSpawn] = listitem+1, SCM(playerid, -1, tstr);
    return true;
}

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


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

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.