Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 19

Тема: [ inc ][ all ][ Pickup Portal System ]

  1. #1
    ?????? ??????? Аватар для OFFREAL
    Регистрация
    31.03.2010
    Адрес
    Калининград
    Возраст
    33
    Сообщений
    2,521
    Репутация: 249

    Звание: - весьма и весьма положительная личность

    Сообщение [ inc ][ all ][ Pickup Portal System ]




    Тема была перенесена, так как больше соответствует тематике этого раздела!
    Всем привет!
    - - -
    Представляю вашему вниманию, систему пикапов-порталов для создания телепортов!

    О системе
    - Система представляет собой сеть связанных порталов - каждый портал является одновременно и входом и выходом. Чтобы портал переносил вас к другому порталу (выходу), нужно указать номер портала-выхода (ppsT) в параметрах.
    - В представленных исходниках уже есть пример 3 порталов которые телепортируют по цепочке, рекомендую понять как они работают прежде чем вносить свои изменения

    Особенности этой системы:
    - Можно телепортировать в виртуальные миры и интерьеры!
    - Над пикапами висит 3Д тексты с названием пункта назначения!
    - Широкие возможности в настройке системы под себя!

    Установка:
    - Создайте в pawno/include файл pps.inc, скопируйте туда исходный код и сохраните.
    - Открываем свой .pwn и дописываем в самом верху:
    #include <pps>
    - Добавляем в начало паблика OnGameModInit:
    pps_Init();
    - Добавляем в самый конец паблика OnPlayerPickUpPickup:
    pps_OnPlayerPickUpPickup(playerid, pickupid);
    - Компилируем
    - Have Fun xD

    Описание переменных:
    ppsN - имя портала
    ppsX - координата X портала
    ppsY - координата Y портала
    ppsZ - координата Z портала
    ppsA - координата A портала (угол поворота игрока)
    ppsI - интерьер в котором находится портал
    ppsW - виртуальный мир в котором находится портал
    ppsU - уникальный НОМЕР портала (должен быть > 0, и НЕ должен быть одинаковым у разных порталов!)
    ppsT - НОМЕР портала-выхода из портала
    ppsP - ИД пикапа (всегда должен быть равен -1 до инициализации)

    Настройка:
    - Добавляем новые строки с параметрами порталов в массив Portals[][pps_info]
    - Нельзя использовать одинаковые ppsU для разных порталов
    - Если вы укажите несуществующий номер выхода, то в консоль выведется сообщение с ошибкой!

    Исходники:
    PHP код:
    #if defined _pps_included
    #endinput
    #endif

    #define _pps_included
    #pragma library pps

    //-------------------------------------
    // 12.03.2011
    // Pickup Portal System 1.0 by OFFREAL
    // ICQ: 355-090-114
    //-------------------------------------

    forward pps_Init();
    forward pps_Unload();
    forward pps_DeactiveTimer();
    forward pps_OnPlayerPickUpPickup(playeridpickupid);

    enum pps_info {
    ppsN[32],        // имя портала
    Float:ppsX,        // координата X портала
    Float:ppsY,        // координата Y портала
    Float:ppsZ,        // координата Z портала
    Float:ppsA,        // координата A портала (угол поворота игрока)
    ppsI,            // интерьер портала
    ppsW,            // виртуальный мир портала
    ppsU,            // уникальный НОМЕР портала (должен быть > 0, и НЕ должен быть одинаковым у разных порталов!)
    ppsT,            // НОМЕР портала-выхода из портала
    ppsP            // ИД пикапа-телепорта (всегда должен быть равен -1 до инициализации)
    };

    #define PP_MOD 19131        // Модель пикапа
    #define PP_TYPE 1            // Тип пикапа
    #define MAX_PORTALS 30        // Максимальное число порталов
    #define PP_NA 5                // Максимальное время деактивации пикапов для игрока после прохода через портал
    #define PP_DTIME 1000        // Время для таймера который отсчитывае время деактивации
    #define PP_COLOR 0x7AD8FFFF    // Цвет для сообщений о телепортации и 3Д текстов
    #define PP_DRAWDIST 10.0    // Расстояния с которого видно 3Д тексты

    new Portals[][pps_info] = {
    // ppsN                ppsX        ppsY        ppsZ        ppsA    ppsI    ppsW    ppsU    ppsT    ppsP
    {"Groove Street",    2491.5679,    -1668.6174,    13.3438,    0.00,    0,        0,        49,        48,        -1}, // Groove Street
    {"SF Police Dept",    246.000,    112.000,    1003.22,    90.00,    10,        0,        48,        47,        -1}, // SFPD
    {"LV Pyramid",        2095.9768,    1285.1446,    10.8203,    0.00,    0,        0,        47,        49,        -1// LV Pyramid
    // {...} // Все остальные ваши точки
    };

    new 
    Text3D:Portals3DT[MAX_PORTALS]; // 3Д тексты над порталами

    new PlayerPNA[MAX_PLAYERS]; // счетчик деактивации порталов для игрока

    public pps_Init() // инициализация - расстановка порталов
    {
        new 
    ppsSize sizeof(Portals);
        
        if(
    ppsSize 2)
        {
            print(
    "PPS: Error[0] - Can't find > 2 portals :(");
            return;
        }
        
        if(
    ppsSize MAX_PORTALS)
        {
            print(
    "PPS: Error[1] - Portals base is very large :(");
            return;
        }
        
        new 
    u_buffer[MAX_PORTALS];
        new 
    targetstr[128];
        
        for(new 
    i=0;i<ppsSize;i++)
        {
            if(
    Portals[i][ppsU] == 0)
            {
                print(
    "PPS: Error[2] - Unique number of portal = 0 :(");
                
    pps_Unload();
                return;
            }
            
            if(
    Portals[i][ppsU] == Portals[i][ppsT])
            {
                print(
    "PPS: Error[3] - Portal teleport to himself :(");
                
    pps_Unload();
                return;
            }
            
            for(new 
    y=0;y<ppsSize;y++)
            {
                if(
    u_buffer[y] == Portals[i][ppsU])
                {
                    print(
    "PPS: Error[4] - More than one portal has simple UN :(");
                    
    pps_Unload();
                    return;
                }
            }
            
            for(new 
    z=0;z<ppsSize;z++)
            {
                if(
    Portals[i][ppsT] == Portals[z][ppsU])
                {
                
    format(targetstr,sizeof(targetstr),"PORTAL TO\n\n'%s'",Portals[z][ppsN]);
                break;
                }
            }
            
            
    u_buffer[i] = Portals[i][ppsU];
            
    Portals[i][ppsP] = CreatePickup(
            
    PP_MOD,PP_TYPE,
            
    Portals[i][ppsX],
            
    Portals[i][ppsY],
            
    Portals[i][ppsZ],
            
    Portals[i][ppsW]
            );
            
            
    Portals3DT[i] = Create3DTextLabel(
            
    targetstr,
            
    PP_COLOR,
            
    Portals[i][ppsX],
            
    Portals[i][ppsY],
            
    Portals[i][ppsZ] + 1.0,
            
    PP_DRAWDIST,
            
    Portals[i][ppsW],
            
    0
            
    );
        }
        
        
    SetTimer("pps_DeactiveTimer",PP_DTIME,1);
        print(
    "PPS: Initialization Complete Success :)");
        
        return;
    }

    public 
    pps_Unload()
    {
        new 
    ppsSize sizeof(Portals);

        for(new 
    i=0;i<ppsSize;i++)
        {
            if(
    Portals[i][ppsP] != -1)
            {
                
    DestroyPickup(Portals[i][ppsP]);
                
    Portals[i][ppsP] = -1;
                
    Delete3DTextLabel(Portals3DT[i]);
            }
        }
        
        print(
    "PPS: Unloading Complete Success");
    }

    public 
    pps_OnPlayerPickUpPickup(playeridpickupid)
    {
        if(
    PlayerPNA[playerid] > 0)
        {
            return;
        }

        new 
    ppsSize sizeof(Portals);

        new 
    targetid 0;
        
        for(new 
    i=0;i<ppsSize;i++)
        {
            if(
    pickupid == Portals[i][ppsP])
            {
            
    targetid Portals[i][ppsT];
            break;
            }
        }
        
        if(
    targetid == 0)
        {
            print(
    "PPS: Error[5] - Can't find target :(");
            return;
        }
        
        for(new 
    y=0;y<ppsSize;y++)
        {
            if(
    targetid == Portals[y][ppsU])
            {
            
    PlayerPNA[playerid] = PP_NA;
            
    SetPlayerVirtualWorld(playeridPortals[y][ppsW]);
            
    SetPlayerInterior(playeridPortals[y][ppsI]);
            
    SetPlayerPos(playerid,Portals[y][ppsX],Portals[y][ppsY],Portals[y][ppsZ]);
            
    SetPlayerFacingAngle(playerid,Portals[y][ppsA]);
            new 
    mess[128];
            
    format(messsizeof(mess), "PPS: Вы были перемещены в '%s'",Portals[y][ppsN]);
            
    SendClientMessage(playerid,PP_COLOR,mess);
            break;
            }
        }
        
        return;
    }

    public 
    pps_DeactiveTimer()
    {
        for(new 
    i=0;i<MAX_PLAYERS;i++)
        {
            if(!
    IsPlayerConnected(i)){continue;}
            if(
    PlayerPNA[i] > 0)
            {
                
    PlayerPNA[i]--;
            }
        }

    Багрепорт
    - Отписываться о найденных багах можно прямо в эту тему
    [Θpposing Force]

    Урок: [SQLite Database]
    Урок: [Оптимизация Циклов]
    Урок: [Битовые Операции]
    Полезные функции: [Useful Tools]
    #include [Pickup Portal System]
    Filterscript [Simple AFK System]
    Filterscript [Лазерное Наведение Ракет]
    Filterscript [TextDraw Arcanoid]
    Разное: [Func Tests]
    [Рейтинг Пользователей]

    Реклама в подписи запрещена!!!
    Я ВКонтакте: [vk.com/offreal]

    [SIGPIC][/SIGPIC]

    Код:
                  C---C  GTO  C---C
           \     /     \     /     \     /
            C---C   E   C---C   I   C---C
           /     \     /     \     /     \
       ---C   R   C---C   N   C---C   N   C---
           \     /     \     /     \     /
            C---C   U   C---C   O   C---C
           /     \     /     \     /     \
                  C---C  R11  C---C
                 /     \     /     \
                        C---C

  2. #2
    Почетный пользователь Аватар для EvgeN 1137
    Регистрация
    10.01.2011
    Адрес
    не скажу
    Сообщений
    3,005
    Репутация: 580

    Звание: - это имя известно всем
    Офигенно! Плюс поставлю, когда с компа буду.
    :)

  3. #3
    Активный пользователь Аватар для Justin
    Регистрация
    16.06.2010
    Адрес
    Приморский край,г.Владивосток
    Возраст
    31
    Сообщений
    952
    Репутация: 18

    Звание: на пути к лучшему
    offreal красава!!!

  4. #4
    Проверенный Аватар для Dr.Vandersexxx
    Регистрация
    09.01.2011
    Адрес
    Kherson
    Возраст
    30
    Сообщений
    1,240
    Репутация: 219

    Звание: - весьма и весьма положительная личность
    Чот у тебя как то сложно
    Код:
    new Bank1; //Создаем new
    
    public OnGameModeInit()
    
    Bank1 = CreatePickup(1559,23,2487.8418,2554.0232,10.8203);//Пикап 
    
    
    public OnPlayerPickUpPickup(playerid, pickupid) //Создаем паблик  и туда координаты куда транспортируется 
    {
    	if(pickupid == Bank1)
    	{
    	    SetPlayerInterior(playerid, 0);
    	    SetPlayerPos(playerid, 1480.9778,-1769.4084,18.7958);
    	    SendClientMessage(playerid, 0xFF0000FF, "Вы телепортировались в Los Santos");
    	}
    Если я правильно понял с просони тему, вот тоже самое
    <3 Sex and flood

  5. #5
    Активный пользователь Аватар для Xa0s.
    Регистрация
    22.06.2010
    Адрес
    Тобольск
    Возраст
    27
    Сообщений
    1,045
    Репутация: 40

    Звание: на пути к лучшему
    Если я правильно понял с просони тему, вот тоже самое
    Система представляет собой сеть связанных порталов - каждый портал является одновременно и входом и выходом.
    У OFFREAL'a и выход и вход по одному и тому же пикапу а у тебя просто вход
    \

  6. #6
    Проверенный Аватар для Dr.Vandersexxx
    Регистрация
    09.01.2011
    Адрес
    Kherson
    Возраст
    30
    Сообщений
    1,240
    Репутация: 219

    Звание: - весьма и весьма положительная личность
    Ах нуда точно, всё понял)
    <3 Sex and flood

  7. #7
    Проверенный Аватар для OKStyle
    Регистрация
    26.04.2010
    Адрес
    Россия, Оренбург
    Возраст
    35
    Сообщений
    6,398
    Репутация: 532

    Звание: - луч света в тёмном царстве
    У меня вход и выход по одному пикапу реализовано так, как показал Vandersexxx, только ещё всего 1 PVar. Когда я доделаю Систему Банков - посмотрите. Но за юсфул сниппет спасибо, дельная вещь для новичков.

    Код:
    Applications
    Pawno Rus No 217 [28.06.2008] SA-MP 0.3e Rcon Edition Rus [16.09.2010] Win-server Autostarter [31.01.2011]
    
    Gamemodes
    Public Enemy LS/SF/LV [25.07.2010] TDM Style []
    
    Filterscripts
    Sex            [05.07.2008] Showgirls                 [24.05.2010] Equip                     [02.02.2011] Jellyfisher               [11.02.2012] Tank Lights System [14.03.2013]
    All Animations [13.07.2008] Colored Healthbar         [08.06.2010] Exclusive Clothes         [07.03.2011] Parking                   [12.02.2012] TextDraw Captcha   [22.03.2013]
                                Pay'n'Spray Colors Menu   [23.06.2010] 0.2.2 Class Selection     [07.03.2011] Serial ID Ban             [31.03.2012]
                                Wedding                   [28.06.2010] Other Chatname            [09.03.2011] Advanced Weapons          [02.04.2012]
                                Rusty Brown's Ring Donuts [29.06.2010] Top View                  [09.03.2011] Ingame Map Editor         [01.05.2012]
                                                                       Rainbow Tab               [10.03.2011] Colored Checkpoints       [10.05.2012]
                                                                       Textdraw Intro            [03.09.2011] Experience & Level System [22.07.2012]
                                                                       Kickstart Challange       [06.09.2011] Target Message System     [17.11.2012]
                                                                       Love Fist Concert         [09.10.2011]
                                                                       3D Info                   [12.10.2011]
                                                                       Vehicle Bonus Return      [13.10.2011]
                                                                       Rockstar Logos Collection [16.10.2011]
                                                                       Textures Ingame Editor    [16.10.2011]
                                                                       Map-Radar                 [17.10.2011]
    
    Maps
    Military Vehicle Interior  [06.04.2012]
    Barracks Soldiers Interior [07.04.2012]
    Barracks Officers Interior [08.04.2012]
    
    Include
    FD ASM - форматированный диалог на #emit [31.03.2013]
    






  8. #8
    3-2-*-?
    Регистрация
    30.03.2010
    Адрес
    Урал
    Сообщений
    1,573
    Репутация: 117

    Звание: скоро придёт к известности
    Отлично .

  9. #9
    Активный пользователь Аватар для Ym[0]n
    Регистрация
    30.03.2010
    Адрес
    Komsomolsk
    Сообщений
    442
    Репутация: 50

    Звание: скоро придёт к известности
    Делал тоже самое тока как в сингле с анимацией и отпадом камеры за плечо.

    ЗаходиГруппа Pawno.RU

    Сайт ⇒ Ссылки в подписи запрещены !

  10. #10
    Активный пользователь Аватар для Fr0stik[psp]
    Регистрация
    05.04.2010
    Адрес
    [Засекречено]
    Сообщений
    408
    Репутация: 2

    Звание: пока не определено
    приколько +
    [SIGPIC]http://pawno.su/image.php?u=66&type=sigpic&dateline=1300297081[/SIGPIC]

    skype : headshoter-777

    icq : 442756892

    хостинг для samp серверов "skype" : pawn.host

    я в vk рейтинг 502% о_О : http://vkontakte.ru/id84874362

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •