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

Вести за собой.

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

Alexey_Ovchinnickov

Этот урок по добавлению конвоя на сервер.Я уже видел команды тянуть за собой ну он как бы телепортирует к себе.А здесь человек взятый под коновой будет идти следом.

Не забываем ставить +

Начнем!

Ко всем new добавляем:

new FollowBy[MAX_PLAYERSS];
new TimerForPlayer[MAX_PLAYERSS];

Ко всем define добавим:

#define MAX_PLAYERSS 330

В public OnPlayerConnect добавим:

TimerForPlayer[playerid] = MAX_PLAYERSS;
FollowBy[playerid] = MAX_PLAYERSS;
SetPVarInt(playerid, "TempFollowBy", -1);

В public OnPlayerDeath добавим:

new GotPVar = GetPVarInt(playerid, "TempFollowBy");
	if(FollowBy[playerid] != MAX_PLAYERSS)
	{
		SetPVarInt(FollowBy[playerid], "TempFollowBy", -1);
		KillTimer(TimerForPlayer[playerid]);
		SendClientMessage(FollowBy[playerid], COLOR_LIGHTBLUE, "Aao caee??aiiue i??o");
		TimerForPlayer[playerid] = MAX_PLAYERSS;
		FollowBy[playerid] = MAX_PLAYERSS;
	}
	else if(GotPVar != -1)
	{
		SetPVarInt(playerid, "TempFollowBy", -1);
		KillTimer(TimerForPlayer[GotPVar]);
		SendClientMessage(FollowBy[playerid], COLOR_LIGHTBLUE, "Aao eiiaie i??oa. Au naiaiaiu!");
		TimerForPlayer[GotPVar] = MAX_PLAYERSS;
		FollowBy[GotPVar] = MAX_PLAYERSS;
	}

В public OnPlayerSpawn добавим:

new GotPVar = GetPVarInt(playerid, "TempFollowBy");
	if(FollowBy[playerid] != MAX_PLAYERSS)
	{
		SetPVarInt(FollowBy[playerid], "TempFollowBy", -1);
		KillTimer(TimerForPlayer[playerid]);
		SendClientMessage(FollowBy[playerid], COLOR_LIGHTBLUE, "Aao caee??aiiue i??o");
		TimerForPlayer[playerid] = MAX_PLAYERSS;
		FollowBy[playerid] = MAX_PLAYERSS;
	}
else if(GotPVar != -1)
	{
		SetPVarInt(playerid, "TempFollowBy", -1);
		KillTimer(TimerForPlayer[GotPVar]);
		SendClientMessage(FollowBy[playerid], COLOR_LIGHTBLUE, "Aao eiiaie i??oa. Au naiaiaiu!");
		TimerForPlayer[GotPVar] = MAX_PLAYERSS;
		FollowBy[GotPVar] = MAX_PLAYERSS;
	}

В public OnPlayerCommandText добавим:

if(strcmp(cmd, "/drag", true) == 0)
	{
	new var[255];
	var = strtok(cmdtext, idx);
	if(!strlen(var)) return SendClientMessage(playerid, 0xAA3333AA, "Вы не ввели имя игрока");
	new gotplayer = strval(var);
	if(IsACop(playerid) || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pMember] == 7)
	{
	if(playerid == gotplayer) return SendClientMessage(playerid, 0xAA3333AA, "Вы не можите сопровождать самого себя ");
	else if(!IsPlayerConnected(gotplayer)) return SendClientMessage(playerid, 0xAA3333AA, "Такого игрока нет на сервере");
	else if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xAA3333AA, "Вы не можете вести канвой с  машины!");
	else if(FollowBy[playerid] != MAX_PLAYERSS) return SendClientMessage(playerid, 0xAA3333AA, "Вы не можете взять игрока под канвой, когда сами конвоируетесь!");
	else if(IsPlayerInAnyVehicle(gotplayer)) return SendClientMessage(playerid, 0xAA3333AA, "Вы не можете взять под канвой когда игрок в машине!");
	new Float: X, Float: Y, Float: Z; GetPlayerPos(gotplayer, X, Y, Z);
	if(!IsPlayerInRangeOfPoint(playerid, 1.5, X, Y, Z)) return SendClientMessage(playerid, 0xAA3333AA, "Игрок далеко от вас!");
	else if(FollowBy[gotplayer] != MAX_PLAYERSS)
	{
			//if(FollowBy[gotplayer] != playerid)
	   SetPVarInt(playerid, "TempFollowBy", -1);
	FollowBy[gotplayer] = MAX_PLAYERSS;
	KillTimer(TimerForPlayer[gotplayer]);
	TimerForPlayer[gotplayer] = MAX_PLAYERSS;
	ClearAnimations(playerid);
	TogglePlayerControllable(gotplayer, 1);
	SendClientMessage(playerid, 0x33AA33AA, "Вы успешно установили канвой за игроком!");
	return SendClientMessage(gotplayer, 0xFFFF00AA, "С вас был снят канвой!");
	}
	if(GetPVarInt(playerid, "TempFollowBy") != -1) return SendClientMessage(playerid, 0xAA3333AA, "Вы не можете сопровождать больше 2х игроков одновременно!");
	FollowBy[gotplayer] = playerid;
	SetPVarInt(playerid, "TempFollowBy", gotplayer);
	TimerForPlayer[gotplayer] = SetTimerEx("FollowToPlayer", 1000, 1, "i", gotplayer);
	SendClientMessage(playerid, 0x33AA33AA, "Вы успешно начали сопровождение этого игрока!");
	return SendClientMessage(gotplayer, 0xFFFF00AA, "вас взяли под канвой");
	}
	}

И в конец мода вне пабликов вставим:

stock SetPlayerToFacePlayer(playerid, targetid)
{
	new
		Float:pX,
		Float:pY,
		Float:pZ,
		Float:X,
		Float:Y,
		Float:Z,
		Float:ang;
	if(!IsPlayerConnected(playerid) || !IsPlayerConnected(targetid)) return 0;
	GetPlayerPos(targetid, X, Y, Z);
	GetPlayerPos(playerid, pX, pY, pZ);
	if( Y > pY ) ang = (-acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
	else if( Y < pY && X < pX ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 450.0);
	else if( Y < pY ) ang = (acos((X - pX) / floatsqroot((X - pX)*(X - pX) + (Y - pY)*(Y - pY))) - 90.0);
	if(X > pX) ang = (floatabs(floatabs(ang) + 180.0));
	else ang = (floatabs(ang) - 180.0);
	SetPlayerFacingAngle(playerid, ang);
	return 0;
}
forward FollowToPlayer(playerid);
public FollowToPlayer(playerid)
{
	static AnimShot[MAX_PLAYERSS];
	if(!IsPlayerConnected(FollowBy[playerid]))
	{
		KillTimer(TimerForPlayer[playerid]);
		TimerForPlayer[playerid] = MAX_PLAYERSS;
		FollowBy[playerid] = MAX_PLAYERSS;
		TogglePlayerControllable(playerid, 1);
		ClearAnimations(playerid);
		AnimShot[playerid] = false;
		SendClientMessage(playerid, 0xFFFF00AA, "Au naiaiaiu, eiiaie iieeioe na?aa?!");
		return 1;
	}
	else if(!IsPlayerConnected(playerid))
	{
		SetPVarInt(FollowBy[playerid], "TempFollowBy", -1);
		KillTimer(TimerForPlayer[playerid]);
		TimerForPlayer[playerid] = MAX_PLAYERSS;
		AnimShot[playerid] = false;
		SendClientMessage(FollowBy[playerid], 0xFFFF00AA, "A?anoiaaiiue iieeioe na?aa?!");
		FollowBy[playerid] = MAX_PLAYERSS;
		return 1;
	}
	else if(FollowBy[playerid] == MAX_PLAYERSS)
	{
		KillTimer(TimerForPlayer[playerid]);
		TimerForPlayer[playerid] = MAX_PLAYERSS;
		AnimShot[playerid] = false;
		SendClientMessage(playerid, 0xFFFF00AA, "N aaoei eiiaiai i?iecioea aaaa, Au naiaiaiu!");
		TogglePlayerControllable(playerid, 1);
		ClearAnimations(playerid);
		return 1;
	}
	else if(IsPlayerInAnyVehicle(playerid))
	{
		SetPVarInt(FollowBy[playerid], "TempFollowBy", -1);
		KillTimer(TimerForPlayer[playerid]);
		TimerForPlayer[playerid] = MAX_PLAYERSS;
		AnimShot[playerid] = false;
		SendClientMessage(FollowBy[playerid], 0xFFFF00AA, "Aao caee??aiiue a iaoeia! Eiiaie inoaiiaeai!");
		FollowBy[playerid] = MAX_PLAYERSS;
		return 1;
	}
	else if(GetPlayerVirtualWorld(FollowBy[playerid]) != GetPlayerVirtualWorld(playerid) || GetPlayerInterior(FollowBy[playerid]) != GetPlayerInterior(playerid))
	{
		new Float: X, Float: Y, Float: Z;
		GetPlayerPos(FollowBy[playerid], X, Y, Z);
		SetPlayerPos(playerid, X, Y, Z);
		SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(FollowBy[playerid]));
		SetPlayerInterior(playerid, GetPlayerInterior(FollowBy[playerid]));
		TogglePlayerControllable(playerid, 0);
		AnimShot[playerid] = false;
		return 1;
	}
	new Float: GotDistance = GetDistanceBetweenPlayers(playerid, FollowBy[playerid]);
	if(GotDistance < 0.95)
	{
		TogglePlayerControllable(playerid, 0);
		SetPlayerToFacePlayer(playerid, FollowBy[playerid]);
		AnimShot[playerid] = false;
		return 1;
	  }
	else if(GotDistance > 10.0)
	{
		SetPVarInt(FollowBy[playerid], "TempFollowBy", -1);
		SendClientMessage(FollowBy[playerid], 0xFFFF00AA, "Au ooee neeoeii aaeaei io a?anoiaaiiiai! Eiiaie caeii?ai!");
		SendClientMessage(playerid, 0xFFFF00AA, "Aao eiiaie oo?e neeoeii aaeaei, au naiaiaiu!");
		TogglePlayerControllable(playerid, 1);
		ClearAnimations(playerid);
		KillTimer(TimerForPlayer[playerid]);
		TimerForPlayer[playerid] = MAX_PLAYERSS;
		FollowBy[playerid] = MAX_PLAYERSS;
		return 1;
	  }
	  else
	  {
		  TogglePlayerControllable(playerid, 1);
		  SetPlayerToFacePlayer(playerid, FollowBy[playerid]);
		  ApplyAnimation(playerid, "ped", "WALK_civi", 6.0, 1, 1, 1, 1, 0, 1);
	}
	  return 1;
}

Все всем спасибо у кого не получается добавляйтесь в скайп respect123321123321

Автора не знаю

Вырезал из мода.

Все работает я сам проверял.

Изменено пользователем Respect234678
  • Like 2

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


Ссылка на сообщение
Поделиться на другие сайты
Alexey_Ovchinnickov
Я вырезал со своего мода и не с какого сайта я это не брал.

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


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

Молодец! Урок рабочий! + поставил!

  • Like 1

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


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

Что нетак сделал?

C:Documents and SettingsАдминистраторРабочий столНовый проктgamemodesSGRP.pwn(56881) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664	 Copyright (c) 1997-2006, ITB CompuPhase

1 Warning.

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


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

всё норм. того варинг убрать и вуаля а так всё номально

 

Так его небыло,вот запилил все и появился.

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


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

Да по*** на варинги он мешает чтоль тебе а? у тя чё сервер чтоль ёб*****? а?

 

может те и по** на варнинги.а мне нет.

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


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

C:\Users\12345\Desktop\RussianVAZ-RolePLAY\Gamer.pwn(186) : warning 201: redefinition of constant/macro (symbol "MAX_PLAYERS")

C:\Users\12345\Desktop\RussianVAZ-RolePLAY\Gamer.pwn(36651) : error 029: invalid expression, assumed zero

C:\Users\12345\Desktop\RussianVAZ-RolePLAY\Gamer.pwn(36651) : error 035: argument type mismatch (argument 2)

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

2 Errors.

 

 

ПОЧЕМУ?

 

http://forum.gs-games.ru/public/style_emoticons/default/sad.gif http://forum.gs-games.ru/public/style_emoticons/default/laugh.gif http://forum.gs-games.ru/public/style_emoticons/default/ph34r.gif

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


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

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(186) : warning 201: redefinition of constant/macro (symbol "MAX_PLAYERS")

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(36651) : error 029: invalid expression, assumed zero

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(36651) : error 035: argument type mismatch (argument 2)

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

2 Errors.

 

 

ПОЧЕМУ?

 

http://forum.gs-games.ru/public/style_emoticons/default/biggrin.gif http://forum.gs-games.ru/public/style_emoticons/default/biggrin.gif http://forum.gs-games.ru/public/style_emoticons/default/laugh.gif http://forum.gs-games.ru/public/style_emoticons/default/laugh.gif Изменено пользователем tatarin032000

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


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

Что нетак сделал?

C:Documents and SettingsАдминистраторРабочий столНовый проктgamemodesSGRP.pwn(56881) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664	 Copyright (c) 1997-2006, ITB CompuPhase

1 Warning.
Еще раз говорю у кого не получается в скайп respect123321123321

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


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

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(186) : warning 201: redefinition of constant/macro (symbol "MAX_PLAYERS")

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(36651) : error 029: invalid expression, assumed zero

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(36651) : error 035: argument type mismatch (argument 2)

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

2 Errors.

 

 

ПОЧЕМУ?

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


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

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(186) : warning 201: redefinition of constant/macro (symbol "MAX_PLAYERS")

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(36651) : error 029: invalid expression, assumed zero

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(36651) : error 035: argument type mismatch (argument 2)

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

2 Errors.

 

 

ПОЧЕМУ?

 

Я не понял комментария. Изменено пользователем Respect234678

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


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

Что нетак сделал?

C:Documents and SettingsАдминистраторРабочий столНовый проктgamemodesSGRP.pwn(56881) : warning 202: number of arguments does not match definition
Pawn compiler 3.2.3664	 Copyright (c) 1997-2006, ITB CompuPhase

1 Warning.
У тебя несовпадение аргументов кинь мне строку в которой варнинг. Изменено пользователем Respect234678

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


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

Урок с P-W.RU

Там написан Автор и т д

 

Согласен с тобой я по нему лазел и видал это скрипт

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


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

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(186) : warning 201: redefinition of constant/macro (symbol "MAX_PLAYERS")

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(36651) : error 029: invalid expression, assumed zero

C:Users12345DesktopRussianVAZ-RolePLAYGamer.pwn(36651) : error 035: argument type mismatch (argument 2)

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

 

 

2 Errors.

 

Как исправить?

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


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

Попробуй в эту строку 186 вставить MAX_PLAYERSS

А другую удали попробуй

  • Like 1

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


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

Up

  • Like 1

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


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

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

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

×

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

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