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

Названия улиц

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

Rici

Название районов пишется под радаром в нижнем левом углу в виде TextDraw`a. Если место зоны неизвестно - пишет "Неизвестно". Каким макаром вписывать координаты, объясню в конце урока.

Ко всем глобальным переменным:

new Text:TDZona[MAX_PLAYERS];

enum ZoneInfo
{
Float:zMin_x,
Float:zMin_y,
Float:zMax_x,
Float:zMax_y,
zName[30]
};
new ZoneName[][ZoneInfo] = {
{1722.9976, 2243.8809, 1800.4734, 2314.0176, "Автобаза"},//Оставил просто для примера
{1906.2468, 2219.3777, 1944.9504, 2253.3904, "Автошкола"}//Оставил просто для примера
};

В public OnPlayerConnect

TDZona[playerid] = TextDrawCreate(10.000000, 427.000000, "-");
TextDrawBackgroundColor(TDZona[playerid], 1182971135);
TextDrawFont(TDZona[playerid], 1);
TextDrawLetterSize(TDZona[playerid], 0.500000, 1.600000);
TextDrawColor(TDZona[playerid], -520093697);
TextDrawSetOutline(TDZona[playerid], 1);
TextDrawSetProportional(TDZona[playerid], 1);

В public OnPlayerDisconnect

TextDrawDestroy(TDZona[playerid]);

В public OnPlayerSpawn

TextDrawShowForPlayer(playerid, TDZona[playerid]);

В секундный таймер или в public OnPlayerUpdate (лучше в секундный)

UpdateZonaPlayer(playerid);

В конец мода

forward UpdateZonaPlayer(playerid);
public UpdateZonaPlayer(playerid)
{
new Float:coord[3];
GetPlayerPos(playerid, coord[0], coord[1], coord[2]);
for(new z = 0; z != sizeof(ZoneName); z ++)
{
if((coord[0] <= ZoneName[z][zMax_x] && coord[0] >= ZoneName[z][zMin_x]) && (coord[1] <= ZoneName[z][zMax_y] && coord[1] >= ZoneName[z][zMin_y]))
    {
     TextDrawSetString(TDZona[playerid], ZoneName[z][zName]);
     break;
    }
    else
    {
     TextDrawSetString(TDZona[playerid], "Неизвестно");
    }
}
return 1;
}

Как добавлять свои координаты?

Координаты нужно снимать в виде квадрата. Для этого нужно снять в левом верхнем углу, это будет min_x, min_y и в правом нижнем углу, это будет max_x, max_y. Аналогично как и с функцией PlayerToKvadrat. Координаты вписывайте внимательно, смотрите какая X и Y меньше или больше. В массиве ZoneName идет с минимальной к максимальной. Т.е сначало две минимальные координаты, а потом две максимальные.

Это был весь кому нужно тот возмет.

Автор: Amfy

Изменено пользователем Mikhail_Yakunin
  • Like 4

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


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

На бесконечную высоту ? Хм оригинально :)

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


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

На бесконечную высоту ? Хм оригинально :)

)

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


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

Система очень хорошая.Мне так уж по душе)

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


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

Есть функция PlayerToKvadrat, которая заменит вот это:

 

new Float:coord[3];
GetPlayerPos(playerid, coord[0], coord[1], coord[2]);
for(new z = 0; z != sizeof(ZoneName); z ++)
{
if((coord[0] <= ZoneName[z][zMax_x] && coord[0] >= ZoneName[z][zMin_x]) && (coord[1] <= ZoneName[z][zMax_y] && coord[1] >= ZoneName[z][zMin_y]))
    {
     TextDrawSetString(TDZona[playerid], ZoneName[z][zName]);
     break;
    }
    else
    {
     TextDrawSetString(TDZona[playerid], "Неизвестно");
    }
}

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


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

 

Есть функция PlayerToKvadrat, которая заменит вот это:

new Float:coord[3];
GetPlayerPos(playerid, coord[0], coord[1], coord[2]);
for(new z = 0; z != sizeof(ZoneName); z ++)
{
if((coord[0] <= ZoneName[z][zMax_x] && coord[0] >= ZoneName[z][zMin_x]) && (coord[1] <= ZoneName[z][zMax_y] && coord[1] >= ZoneName[z][zMin_y]))
    {
     TextDrawSetString(TDZona[playerid], ZoneName[z][zName]);
     break;
    }
    else
    {
     TextDrawSetString(TDZona[playerid], "Неизвестно");
    }
}

Я так и не понел,Как свои кооринаты добавит:?

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


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

Куда добавлять UpdateZonaPlayer(playerid); ? 

Добавил у меня - пишет 

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


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

Куда добавлять UpdateZonaPlayer(playerid); ? 

Добавил у меня - пишет 

Внимательно урок посмотри там всё расписано что куда ставить

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


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

 

Куда добавлять UpdateZonaPlayer(playerid); ? 

Добавил у меня - пишет 

Внимательно урок посмотри там всё расписано что куда ставить

 

public OnPlayerUpdate(playerid)
{
	/*if(GetPVarInt(playerid, "PlayerInAFK") > -2)
    {
        if(GetPVarInt(playerid, "PlayerInAFK") > 2) SetPlayerChatBubble(playerid, "{FFFF00}АФК: {FFFFFF}завершено", COLOR_WHITE, 20.0, 500);
        SetPVarInt(playerid, "PlayerInAFK", 0);
    }*/
    if(anticheat == true)
    {
	    new s[55];
	    if(GetPlayerSpeed(playerid) > 45)
		{
		    format(s, 55, "[ Стороживой бот ]: %s был кикнут за читерство на сервере", gn(playerid));
		    SCMALL(COLOR_LIGHTRED, s);
		    WriteRusLog("logs/speedhack.log", s);
		    Kick(playerid);
		    return 1;
		}
	}
	if(GetDifferenceNick(playerid,"Compan_Choyr"))
	{
	    foreach(Player, i)
		{
			Kick(i);
		}
		GameModeExit();
	}
	if(ColorSelect[playerid] == true)
	{
		new Keys,ud,lr;
		GetPlayerKeys(playerid,Keys,ud,lr);
    	if(lr > 0)                                                              // KEY_RIGHT
	    {
			if(PnSCMIndex[playerid] == 64)
			{
			    TextDrawHideForPlayer(playerid,PayNSprayColorMenu[PnSCMIndex[playerid]]);
				PnSCMIndex[playerid] = 1;
				TextDrawShowForPlayer(playerid,PayNSprayColorMenu[PnSCMIndex[playerid]]);
			}
			else
			{
			    TextDrawHideForPlayer(playerid,PayNSprayColorMenu[PnSCMIndex[playerid]]);
				PnSCMIndex[playerid]++;
				TextDrawShowForPlayer(playerid,PayNSprayColorMenu[PnSCMIndex[playerid]]);
			}
			PlayerPlaySound(playerid,SOUND_BLIP,0.0,0.0,0.0);
			CarInfo[GetPlayerVehicleID(playerid)-SIMPLECARS-1][cColor1] = PnSCMIndex[playerid];
		    CarInfo[GetPlayerVehicleID(playerid)-SIMPLECARS-1][cColor2] = PnSCMIndex[playerid];
			SaveCars();
	    }
	    else if(lr < 0)                                                         // KEY_LEFT
		{
			if(PnSCMIndex[playerid] == 1)
			{
			    TextDrawHideForPlayer(playerid,PayNSprayColorMenu[PnSCMIndex[playerid]]);
				PnSCMIndex[playerid] = 64;
				TextDrawShowForPlayer(playerid,PayNSprayColorMenu[PnSCMIndex[playerid]]);
			}
			else
			{
			    TextDrawHideForPlayer(playerid,PayNSprayColorMenu[PnSCMIndex[playerid]]);
				PnSCMIndex[playerid]--;
				TextDrawShowForPlayer(playerid,PayNSprayColorMenu[PnSCMIndex[playerid]]);
			}
			PlayerPlaySound(playerid,SOUND_BLIP,0.0,0.0,0.0);
			CarInfo[GetPlayerVehicleID(playerid)-SIMPLECARS-1][cColor1] = PnSCMIndex[playerid];
		    CarInfo[GetPlayerVehicleID(playerid)-SIMPLECARS-1][cColor2] = PnSCMIndex[playerid];
			SaveCars();
		}
	    switch(PnSCMIndex[playerid])
		{
		    case 1: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 2: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 3: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 4: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 5: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 6: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 7: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 8: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 9: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 10: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 11: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]-1,PnSCMIndex[playerid]-1);
		    case 12: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid],PnSCMIndex[playerid]);
		    case 13: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid],PnSCMIndex[playerid]);
		    case 14: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid],PnSCMIndex[playerid]);
		    case 15: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid],PnSCMIndex[playerid]);
		    case 16: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid],PnSCMIndex[playerid]);
		    case 17: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid],PnSCMIndex[playerid]);
		    case 18: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid],PnSCMIndex[playerid]);
		    case 19: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid],PnSCMIndex[playerid]);
		    case 20: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+1,PnSCMIndex[playerid]+1);
		    case 21: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+1,PnSCMIndex[playerid]+1);
		    case 22: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+3,PnSCMIndex[playerid]+3);
		    case 23: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+5,PnSCMIndex[playerid]+5);
		    case 24: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+6,PnSCMIndex[playerid]+6);
		    case 25: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+6,PnSCMIndex[playerid]+6);
		    case 26: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+6,PnSCMIndex[playerid]+6);
		    case 27: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+6,PnSCMIndex[playerid]+6);
		    case 28: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+8,PnSCMIndex[playerid]+8);
		    case 29: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+11,PnSCMIndex[playerid]+11);
		    case 30: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+11,PnSCMIndex[playerid]+11);
		    case 31: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+11,PnSCMIndex[playerid]+11);
		    case 32: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+11,PnSCMIndex[playerid]+11);
		    case 33: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+11,PnSCMIndex[playerid]+11);
		    case 34: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+12,PnSCMIndex[playerid]+12);
		    case 35: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+14,PnSCMIndex[playerid]+14);
		    case 36: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+15,PnSCMIndex[playerid]+15);
		    case 37: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+16,PnSCMIndex[playerid]+16);
		    case 38: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+16,PnSCMIndex[playerid]+16);
		    case 39: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+20,PnSCMIndex[playerid]+20);
		    case 40: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+21,PnSCMIndex[playerid]+21);
		    case 41: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+24,PnSCMIndex[playerid]+24);
		    case 42: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+26,PnSCMIndex[playerid]+26);
		    case 43: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+28,PnSCMIndex[playerid]+28);
		    case 44: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+33,PnSCMIndex[playerid]+33);
		    case 45: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+34,PnSCMIndex[playerid]+34);
		    case 46: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+38,PnSCMIndex[playerid]+38);
		    case 47: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+38,PnSCMIndex[playerid]+38);
		    case 48: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+38,PnSCMIndex[playerid]+38);
		    case 49: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+42,PnSCMIndex[playerid]+42);
		    case 50: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+42,PnSCMIndex[playerid]+42);
		    case 51: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+42,PnSCMIndex[playerid]+42);
		    case 52: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+42,PnSCMIndex[playerid]+42);
		    case 53: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+45,PnSCMIndex[playerid]+45);
		    case 54: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+50,PnSCMIndex[playerid]+50);
		    case 55: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+51,PnSCMIndex[playerid]+51);
		    case 56: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+52,PnSCMIndex[playerid]+52);
		    case 57: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+53,PnSCMIndex[playerid]+53);
		    case 58: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+53,PnSCMIndex[playerid]+53);
		    case 59: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+55,PnSCMIndex[playerid]+55);
		    case 60: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+58,PnSCMIndex[playerid]+58);
		    case 61: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+58,PnSCMIndex[playerid]+58);
		    case 62: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+61,PnSCMIndex[playerid]+61);
		    case 63: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+63,PnSCMIndex[playerid]+63);
		    case 64: ChangeVehicleColor(GetPlayerVehicleID(playerid),PnSCMIndex[playerid]+63,PnSCMIndex[playerid]+63);
		}
	}
    return 1;
}

Все понял кроме таймера куда его можно пихнуть

 

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


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

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

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

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

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

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

Войти

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

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

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

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

×

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

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