PDA

Просмотр полной версии : [Мануал] Удобная система телепортов на пикапах



Roy
20.04.2013, 21:57
Здравствуйте,вот решил сделать что-то новенькое для форума =)
Информация о нашем пикапе(из чего он собран)

#define COLOR_ORANGE {FFFFFF}
Vars:

enum tpInfo
{
tpName[50],
Float:tpEnterPos_X,
Float:tpEnterPos_Y,
Float:tpEnterPos_Z,
tpEnterWorld,
tpEnterInt,
Float:tpExitPos_X,
Float:tpExitPos_Y,
Float:tpExitPos_Z,
Float:tpExitPos_A,
tpExitInt,
tpExitWorld
}

new TeleportInfo[][tpInfo] =
{
{"Тест 1",1554.866943, -1675.680297, 16.195312, 0, 0, 246.802444,64.472534,1003.640625, 0.0, 6, 1},
{"Тест 2",1554.866943, -1675.680297, 16.195312, 0, 0, 246.802444,64.472534,1003.640625, 0.0, 6, 1}
};

new TeleportPickup[sizeof(TeleportInfo)] = {-1, ...};

В OnPlayerPickUpPickup действие пикапа,сам телепорт

else if(pickupid >= TeleportPickup[0] && pickupid <= TeleportPickup[sizeof(TeleportInfo)-1])
{
new tp = pickupid - TeleportPickup[0];
new bool:freeze;
if(TeleportInfo[tp][tpExitInt] > 0) freeze = true;
if(TeleportInfo[tp][tpEnterInt] == -1 || GetPlayerInterior(playerid) == TeleportInfo[tp][tpEnterInt])
{
if(TeleportInfo[tp][tpEnterWorld] == -1 || GetPlayerVirtualWorld(playerid) == TeleportInfo[tp][tpEnterWorld])
{
SetPlayerInterior(playerid, TeleportInfo[tp][tpExitInt]);
SetPlayerVirtualWorld(playerid, TeleportInfo[tp][tpExitWorld]);
SetPlayerFacingAngle(playerid, TeleportInfo[tp][tpExitPos_A]);
SetPlayerPosAc(playerid, TeleportInfo[tp][tpExitPos_X], TeleportInfo[tp][tpExitPos_Y], TeleportInfo[tp][tpExitPos_Z]);
}
}
}

И создание пикапов при запуске сервера в public OnGameModeInit()

for(new i; i < sizeof(TeleportInfo);i ++)
{
new cstring[45];
strcat(cstring, TeleportInfo[i][tpName]), strcat(cstring,"\n{FFFFFF}Встаньте на пикап чтобы войти/выйти");
CreateDynamic3DTextLabel(cstring, COLOR_ORANGE, TeleportInfo[i][tpEnterPos_X], TeleportInfo[i][tpEnterPos_Y], TeleportInfo[i][tpEnterPos_Z], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, TeleportInfo[i][tpEnterWorld], TeleportInfo[i][tpEnterInt]);
TeleportPickup[i] = CreatePickup(19130, 1, TeleportInfo[i][tpEnterPos_X], TeleportInfo[i][tpEnterPos_Y], TeleportInfo[i][tpEnterPos_Z], TeleportInfo[i][tpEnterWorld]);
}
print("Все телепорты созданы");

Автор мануала - Я(Roy Weezy).
Специально для Pro-pawn.
РАЗМЕЩЕНИЕ НА ДРУГИХ ПОРТАЛАХ СТРОГО ЗАПРЕЩЕНО!

Основным преимуществом кода является оптимизация и удобство в использовании(всё в 1 строке)
p.s Завтра будут скрины

VladZemnickiy
21.04.2013, 03:22
Хорошая тема.

Неповторимый
21.04.2013, 16:00
Действительно удобней. +

Michael_Vegas
22.04.2013, 15:59
Скрин Выложи

[c] Abatko
22.04.2013, 16:09
"p.s Завтра будут скрины " Уже два дня прошло.

Roy
22.04.2013, 16:30
Abatko;3166']"p.s Завтра будут скрины " Уже два дня прошло.

Проблемы с интернетом на компьютере.Сижу с планшета

[c] Abatko
22.04.2013, 16:34
Проблемы с интернетом на компьютере.Сижу с планшета
Ок, ждём.