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

Делаем приветствие игрока через CDM /hi

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

Marvellous

Всем привет дорогие пользователи портала CR-MP

 

Сегодня выложу вам полную команду для приветствие игроков на сервере,

Это либо пожать руку,либо помахать рукой.

 

Вырезаю со своего Samp мода, так что код,а именно переменные могут отличаться

 

И так начнем:

 

В enum pInfo {

pSelectPlayer,
pTargetPlayer,

В if(newkeys == KEY_YES) // Y

Это там где когда вам предлагают вылечиться вы нажимаете Y

case ACTION_HI:
			{
			    new targetid = pTemp[playerid][pTargetPlayer];
			    new Float:angle, string[64];
				GetPlayerFacingAngle(targetid, angle);
				SetPlayerFacingAngle(playerid, angle + 180);
				format(string, sizeof(string), "пожал%s руку %s", (pInfo[targetid][pSex]==1)?(""):("а"), GetName(playerid));
				MeAction(targetid, string);
				if(!IsPlayerInAnyVehicle(playerid)) ApplyAnimation(playerid, "GANGS", "hndshkfa", 4.1, 0, 1, 1, 0, 0, 1);
				if(!IsPlayerInAnyVehicle(targetid)) ApplyAnimation(targetid, "GANGS", "hndshkfa", 4.1, 0, 1, 1, 0, 0, 1);
				pTemp[playerid][pSelectPlayer] = INVALID_PLAYER_ID;
				pTemp[playerid][pTargetPlayer] = INVALID_PLAYER_ID;
				pTemp[targetid][pSelectPlayer] = INVALID_PLAYER_ID;
				pTemp[targetid][pTargetPlayer] = INVALID_PLAYER_ID;
				return pTemp[playerid][pTargetAction] = ACTION_NONE;
			}

Так же у меня есть еще один enum {

enum
{
	ACTION_HI,
        ACTION_NONE
};

Ну и саму команду

В public OnPlayerCommandReceived

CMD:hi(playerid, params[])
{
 	if(sscanf(params, "d", params[0])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /hi [id игрока]");
 	else if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline);
	else if(!gPlayerLogged[params[0]]) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized);
 	else if(params[0] == playerid) return 0;
 	else if(GetPlayerState(playerid) == 9) return 0;
	else if(GetPlayerState(params[0]) == 9) return 0;
 	else if(ZapretDice[params[0]] == 1) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] У игрока уже есть одно активное предложение!");
    else if(pTemp[playerid][pSelectPlayer] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] У вас уже есть одно активное предложение. Чтобы отказаться от него введите /cancel");
	else if(pTemp[params[0]][pTargetPlayer] != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "[Ошибка] У игрока уже есть одно активное предложение!");
 	new Float:X, Float:Y, Float:Z;
    GetPlayerPos(params[0], X, Y, Z);
    new Float:distance = GetPlayerDistanceFromPoint(playerid, X, Y, Z);
	if(distance < 1.5 && distance > 0.5)
	{
		SendMes(playerid, COLOR_BLUE, "Вы предлагаете %s пожать руку", GetName(params[0]));
		SendMes(params[0], COLOR_BLUE, "%s предлагает Вам пожать руку", GetName(playerid));
		SendClientMessage(params[0], COLOR_WHITE, PlayerAccess);
		pTemp[playerid][pSelectPlayer] = params[0];
		pTemp[params[0]][pTargetPlayer] = playerid;
		pTemp[params[0]][pTargetAction] = ACTION_HI;
	}
	else if(distance < 20.0)
	{
		new string[64];
		format(string, sizeof(string), "помахал%s рукой %s", (pInfo[playerid][pSex]==1)?(""):("а"), GetName(params[0]));
		MeAction(playerid, string);
		if(!IsPlayerInAnyVehicle(playerid)) ApplyAnimation(playerid, "PED", "endchat_03", 4.1, 0, 1, 1, 0, 0, 1);
	}
	else SendClientMessage(playerid, COLOR_GREY, "Вы находитесь либо слишком близко от игрока, либо слишком далеко от игрока");
	return 1;
}

Теперь изменяем следующее под свой мод:

 

pTemp - pInfo - PI - у всех по разному

 

 

Думаю ни что не забыл.

Если что пишите помогу установить,если у кого то будут ошибки.

 

Всем спасибо

 

Автор слива: Marvellous (Я)

 

При копирование данного урока на другие порталы,указывайте ссылку и автора темы!

  • Like 1

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

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

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

×

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

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