Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

Реклама






 
SAMP АДМИНКИ 15 ЛВЛ ПРИ ВХОДЕ КОМАНДА /MAKEADMIN2017 Адрес сервера:176.32.36.34:7777

500р
Маленький баннер400р/мес(Статический показ)
,400рТекстовая реклама300р/мес(Статический показ)
Большой баннер статический
1200р 1000/мес

Внимание ЦЕНЫ СНИЖЕНЫ!!!
Писать по поводу рекламы VK: vk.com/sergey68

** Как получить V.I.P --> КЛИК **
Страница 1 из 10 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 98

Тема: C++ pawn

  1. #1
    Администратор
    Аватар для KinG_95
    Статус
    Оффлайн
    Регистрация
    12.11.2010
    Сообщений
    729
    Репутация
    663 [+/-] 

    Сообщение C++ pawn

    ====================Вводный урок====================
    PAWN - язык программирования, на котором пишут моды и скрипты для SA MP'a. Нужно сказать, что язык простенький, и выучить пару основных выражений труда не составит. Как скриптер сервера, я возьму на себя обязаность писать уроки для вас, ибо серверу скриптеры нужны всегда.
    Итак, PAWN (не путать с PAWNO! Pawno - это редактор\компилятор!) - разновидность языка C++.
    Что нужно чтобы писать моды\скрипты?
    1) Редактор-компилятор Pawno.
    2) Свой локальный сервер (Чтобы проверять свои скрипты на работоспособность).
    3) Мозг.
    Итак мы скачали редактор Pawno. В нем есть все необходимое для скриптинга:
    1) Поиск слов\выражений\предложений.
    2) Быстрая замена слов\предложений\выражений.
    3) Компилятор.
    4) Быстрый переход на строку.
    5) Список выражений (справа)
    Зачем нужен компилятор?
    Многим известно, что исходник мода - файл с расширением .PWN. Этот файл можно открыть с помощью редактора Pawno и скомпилировать его в формат .АМХ - основной мод. Прочитать его и редактировать без исходника уже никак не получится.
    Теперь я расскажу о локальном сервере и как с ним работать.
    В каждом локальном сервере есть папки:
    1) Gamemodes - папка, откуда сервер грузит игровые моды.
    2) Filterscripts - папка, откуда сервер грузит фильтрскрипты.
    3) pawno - папка, с pawno редактором.
    4) Scriptfiles - папка, со скриптфайлами.
    Для начала попробуем просто запустить сервер со стандартным модом lvdm.
    Заходим в папку Gamemodes, и убеждаемся в наличии данного мода.
    Идем в файл server.cfg, и открываем его с помощью текстового редактора, например блокнота.
    После открытия, мы видим строки:
    1) lanmode (ставим 0)
    2) rcon_password - пароль от ркона
    3) maxplayers - максимальное количество игроков на сервере.
    4) port - порт сервера (ставим 7777)
    5) hostname - имя сервера.
    6) gamemode0 - ставим lvdm
    7) filterscripts - фильтрскрипты сервера.
    8) announce (ставим 1)
    9) query (ставим 1)
    10) weburl - URL адрес сайта сервера
    11) anticheat - ставим 0.
    Итак мы разобрались с конфигом, теперь сохраняем конфиг, и открываем файл samp-server.exe. Потом узнаем свой IP адрес, и вписываем его в SA:MP клиент. Заходим на сервер. Все должно работать.
    Вводный урок окончен. В следующем уроке ждите:
    Что такое инклуды?
    Как разобраться с выражениями?
    Как компилировать?
    И многое другое.
    Эту темку буду постепенно пополнять своими уроками

  2. 35 пользователей сказали cпасибо KinG_95 за это полезное сообщение:

    Andrey_Kiryuhin (11.01.2011), Apache (20.04.2011), Benson Miller (22.06.2011), Brain_Tolmach (04.12.2011), brokvazor (17.06.2011), DarkSam (13.10.2011), Dima_Gaskov (27.03.2011), Doc_Slove (06.02.2012), Donn6662 (03.12.2012), КолЁк (15.01.2012), hyligan (11.10.2011), IncoGnitO (19.01.2011), itolyano (07.11.2011), Joey_Air (29.02.2012), Korbell (06.01.2011), krik (01.12.2010), Lektor (04.02.2011), MacDac (04.12.2010), Manuel_West (29.08.2011), Maxim_Pallstev (06.04.2012), Саня210 (06.01.2011), Сергей (22.01.2011), Parya (18.02.2012), ppzvovka (02.12.2010), R@W (05.06.2011), Reflection (16.01.2011), RuslanQa (12.08.2012), SanyaXXX (29.08.2011), SevD (06.01.2011), Snoop228 (12.04.2012), Steve (03.11.2011), Storn (11.04.2012), underworker (20.11.2011), Victor_Ananyev (22.06.2011), Vlad777 (30.01.2011)

  3. #2
    Администратор
    Аватар для KinG_95
    Статус
    Оффлайн
    Регистрация
    12.11.2010
    Сообщений
    729
    Репутация
    663 [+/-] 
    Итак продолжаем урок :
    =============Урок ?1==================
    Итак, с сервером мы разобрались, теперь, нужно разобраться с самими выражениями, и сегодня я напишу и постараюсь донести до вас самые распространенные выражения, и основные, а так же познакомлю вас с инклудами и дефайнами.
    Инклуды (#include) - это текстовые файлы, которые лежат в папке includes. Каждый инклуд соответственно означает определенное действие. Если в исходном коде мода есть, например #include <a_samp>, значит на вашем компьютере должен быть такой инклуд (много инклудов качать ненужно, все самые необходимые идут вместе с редактором).
    Дефайны (#define) - Облегчают цвета. Если, допустим вы хотите чтобы сообщение у игроков в чате было красным цветом, то сначала нам нужно (для более легкой работы) прописать в дефайнах строку
    PHP код:
    #define COLOR_RED 0xAA3333AA 
    Где COLOR_RED - дальнейшее обозначение цвета
    0xAA3333AA - хекс шифровка цвета.
    Дураку понятно, что COLOR_RED легче запомнить, чем хекс шифровку.
    Итак, мы добавили в дефайны цвет, теперь нам нужно чтобы у игроков в мини чате было сообщение, допустим "*Приветствую Вас!"
    Пишем:
    PHP код:
    SendClientMessage(playeridCOLOR_RED"*Приветствую Вас!"); 
    [b]Не забудьте поставить "*" перед своим сообщением! Если не поставите, то у игроков высветится надпись типа "яяяяяяяяЧяяяяяя". Так же, можно вместо "*" поставить пробел.
    Я начал с выражения SendClientMessage, потому что его легче запомнить на мой взгляд, и знать его необходимо.
    Еще дефайны служат для определения банд.
    Например:
    PHP код:
    #define TEAM_DANANG 
    И для определения музыки, которая будет играть при выборе скина
    PHP код:
    #define music2 
    ================================================== ===
    Теперь, я хочу вас познакомить с расстановкой автомобилей, обьектов, пикапов.
    Выражение для автомобилей:
    AddStaticVehicle(id автомобиля, x,y,z);
    Например, нам нужно поставить Инфернус. Пишем следующее:
    PHP код:
    AddStaticVehicle(411, -1611.9730,673.5499,6.9567,181.6088,0,1); 
    Теперь, ставим пикап.
    Выражение AddStaticPickup(id пикапа, id типа, x,y,z);
    Ставим пикап - джет пак:
    PHP код:
    AddStaticPickup(37015, -2209.4707,294.1174,35.1172); 
    Далее, ставим обьект.
    Выражение CreateObject(id, x,y,z);
    Обьектов в сампе море, так что качаем программу MapEditor для GTA SA, расставляем визуально, и копируем координаты в свое выражение, например, может получиться вот так:
    PHP код:
    CreateObject(521, -2209.4707,294.1174,35.1172); 
    ==============================================
    Теперь, я познакомлю вас с выражением GameTextForPlayer. Это выражение добавляет надпись посередине экрана у игроков.
    Например, нам нужно, чтобы когда только игрок подключился к серверу, у него была надпись Welcome to NorthMedia!
    Делаем это вот так:
    PHP код:
    GameTextForPlayer(playerid"~w~Welcome ~r~to ~g~NorthMedia!",5000,5); 
    Где ~w~ - цвет слова (первая буква слова white - белый)
    5000 - это количество времени сколько будет держаться надпись (в милисекундах)
    5 - тип надписи.
    ================================================== =====
    С вами был KinG_95. Удачи в скриптинге.

  4. 16 пользователей сказали cпасибо KinG_95 за это полезное сообщение:

    brokvazor (17.06.2011), Bruce Lee (12.02.2011), DarkSam (13.10.2011), Dima_Gaskov (27.03.2011), Donn6662 (03.12.2012), extrimmer (07.04.2011), IncoGnitO (19.01.2011), itolyano (07.11.2011), Joey_Air (29.02.2012), Manuel_West (29.08.2011), maxx (18.02.2011), MeGa (31.08.2011), sKeLeT (16.06.2011), Steve (03.11.2011), underworker (20.11.2011), X-RaD (16.12.2010)

  5. #3

  6. #4
    Администратор
    Аватар для KinG_95
    Статус
    Оффлайн
    Регистрация
    12.11.2010
    Сообщений
    729
    Репутация
    663 [+/-] 
    даров брятан

  7. #5
    Администратор
    Аватар для KinG_95
    Статус
    Оффлайн
    Регистрация
    12.11.2010
    Сообщений
    729
    Репутация
    663 [+/-] 
    =============Урок ?2==============
    Итак, вы сделали, допустим стант зону с помощью Map Editora, но незнаете как сделать туда телепорт...
    Сейчас я все расскажу.
    Сначала, в самом начале Фильтрскрипта (сразу после определения выбора банд) пишем координаты своих обьектов. Пример:
    PHP код:
    CreateObject(idx,y,z);
    и т.д
    Потом нам нужно пропаблить команды. Пишем:
    PHP код:
    public OnPlayerCommandText(playeridcmdtext[]) 
    Мы пропаблили комманд текст, и теперь прописываем саму команду:
    PHP код:
    if(strcmp(cmdtext"/zone",true)==0){ 
    Где "/zone" - это и есть сама команда, true - это значит что правильная команда, и при правильном вводе она работает.
    Далее пишем
    PHP код:
    SetPlayerPos(playeridпозиция хпозиция yпозиция z); 
    SetPlayerPos - выражение, определяющее позицию игрока, после ввода команды.
    Потом пишем это:
    PHP код:
    SetPlayerInterior(playerid,0); 
    Выражение SetPlayerInterior используется, если игрока позиция при вводе команды будет перемещена в какой-нибудь интерьер (например дом СиДжея). Чтобы использовать данное выражение, нужно знать id всех интерьеров (есть в википедии).
    Далее, прописываем это:
    PHP код:
    SendClientMessage(playeridcolor"сообщение"); 
    Думаю, ненужно обьяснять вам что значит данное выражение. Я уже знакомил вас с ним в предыдущих уроках.
    И наконец, заканчиваем командой
    PHP код:
    return 1;

    И в итоге у нас получается следующее:
    PHP код:
    public OnPlayerCommandText(playeridcmdtext[])
    {
    if(
    strcmp(cmdtext"/zone",true)==0){
        
    SetPlayerPos(playeridx,y,z);
        
    SetPlayerInterior(playerid,0);
        
    SendClientMessage(playerid0xFFFF00AA"***Сообщение");
            return 
    1;

    С вами был KinG_95. Удачи в скриптинге

  8. 4 пользователей сказали cпасибо KinG_95 за это полезное сообщение:

    A N D R E Y (07.12.2012), Donn6662 (03.12.2012), itolyano (07.11.2011), underworker (20.11.2011)

  9. #6
    Пользователь
    Аватар для X-RaD
    Статус
    Оффлайн
    Регистрация
    14.12.2010
    Сообщений
    1
    Репутация
    0 [+/-] 
    Цитата Сообщение от KinG_95 Посмотреть сообщение
    =============Урок ?2==============
    Итак, вы сделали, допустим стант зону с помощью Map Editora, но незнаете как сделать туда телепорт...
    Сейчас я все расскажу.
    Сначала, в самом начале Фильтрскрипта (сразу после определения выбора банд) пишем координаты своих обьектов. Пример:
    PHP код:
    CreateObject(idx,y,z);
    и т.д
    Потом нам нужно пропаблить команды. Пишем:
    PHP код:
    public OnPlayerCommandText(playeridcmdtext[]) 
    Мы пропаблили комманд текст, и теперь прописываем саму команду:
    PHP код:
    if(strcmp(cmdtext"/zone",true)==0){ 
    Где "/zone" - это и есть сама команда, true - это значит что правильная команда, и при правильном вводе она работает.
    Далее пишем
    PHP код:
    SetPlayerPos(playeridпозиция хпозиция yпозиция z); 
    SetPlayerPos - выражение, определяющее позицию игрока, после ввода команды.
    Потом пишем это:
    PHP код:
    SetPlayerInterior(playerid,0); 
    Выражение SetPlayerInterior используется, если игрока позиция при вводе команды будет перемещена в какой-нибудь интерьер (например дом СиДжея). Чтобы использовать данное выражение, нужно знать id всех интерьеров (есть в википедии).
    Далее, прописываем это:
    PHP код:
    SendClientMessage(playeridcolor"сообщение"); 
    Думаю, ненужно обьяснять вам что значит данное выражение. Я уже знакомил вас с ним в предыдущих уроках.
    И наконец, заканчиваем командой
    PHP код:
    return 1;

    И в итоге у нас получается следующее:
    PHP код:
    public OnPlayerCommandText(playeridcmdtext[])
    {
    if(
    strcmp(cmdtext"/zone",true)==0){
        
    SetPlayerPos(playeridx,y,z);
        
    SetPlayerInterior(playerid,0);
        
    SendClientMessage(playerid0xFFFF00AA"***Сообщение");
            return 
    1;

    С вами был KinG_95. Удачи в скриптинге
    Спасибо, очень помогло) Я начинающий и пока.. не все получается

  10. #7
    Администратор
    Аватар для KinG_95
    Статус
    Оффлайн
    Регистрация
    12.11.2010
    Сообщений
    729
    Репутация
    663 [+/-] 
    ===========Урок ?3=================
    Приветствую всех. С Вами снова я, и Вы читаете новый урок С++ Pawn!
    Сегодня мы будем учиться делать сообщения-уведомления игрокам о чем-нибудь.
    Чтобы вы поняли, я приведу вам простой пример сообщения-уведомления о заходе нового человека на сервер.
    Для начала нужно ввести новые аргументы в наш скрипт\мод с помощью оператора new.
    Нам нужны 2 новых агрумента - это string[256]; player[24]; playername[MAX_PLAYER_NAME];.
    У вас должно получиться вот так:
    PHP код:
    new string[256];
    new 
    player[24]; 
    Прошу заметить, что новые аргументы вводить нужно после выражения Public OnPlayerConnect(playerid)
    А точнее у вас получиться вот так:
    PHP код:
    Public OnPlayerConnect(playerid)
    {
    new 
    string[256];
    new 
    player[24]; 
    После того, как вы все это написали, нужно чтобы сервер "взял" имя игрока. Это можно сделать с помощью выражения GetPlayerName.
    Получается вот так:
    PHP код:
    Public OnPlayerConnect(playerid)
    {
    new 
    string[256];
    new 
    player[24];
    new 
    playername[MAX_PLAYER_NAME];
    GetPlayerName(playeridplayer24); 
    Далее, мы должны отправить то самое сообщение-уведомление всем игрокам сервера, что игрок с таким то ником зашел на сервер.
    Сообщения-уведомления немного отличаются от простых сообщений (SendClientMessage). Сообщения-уведомления немного по-сложнее писать.
    Значит пишем сообщение-уведомление таким образом:
    PHP код:
    format(stringsizeof(string),  "** Игрок %s Зашел на сервер! **",player);
    SendClientMessageToAll(COLOR_ORANGEstring); 
    Сейчас я поясню вышеуказанный код.
    format - оператор, с которого начинается сообщение-уведомление
    string - тот самый аргумент, который мы прописывали в начале скрипта.
    sizeof(string) - так же, оператор, указывающий на аргумент, который в скобках.
    "** Игрок %s Зашел на сервер! **" - само сообщение, где %s - переменная ника игрока.
    player - наш второй аргумент.
    [!] Без этих двух аргументов скрипт у вас работать не будет!
    SendClientMessageToAll - выражение, которое отправляет сообщение ВСЕМ игрокам.
    COLOR_ORANGE - цвет сообщения (заранее переведен из хекс шифровки в текст COLOR_ORANGE)
    Итак, полный скрипт:
    PHP код:
    public OnPlayerConnect(playerid)
    {
    new 
    string[256];
    new 
    player[24];
    GetPlayerName(playeridplayer24);
    format(string128"** Игрок %s Зашел на сервер! **",player);
    SendClientMessageToAll(COLOR_ORANGEstring);
    return 
    1
    Вот и все
    Я лично считаю, что это самый легкий скрипт, который можно написать для сервера.
    С Вами был KinG_95. Удачи в скриптинге.

  11. 5 пользователей сказали cпасибо KinG_95 за это полезное сообщение:

    Donn6662 (03.12.2012), itolyano (07.11.2011), Joey_Air (29.02.2012), RuslanQa (12.08.2012), Storn (11.04.2012)

  12. #8
    Пользователь
    Аватар для VanincheG
    Статус
    Оффлайн
    Регистрация
    09.01.2011
    Сообщений
    46
    Репутация
    28 [+/-] 
    Цитата Сообщение от KinG_95 Посмотреть сообщение
    даров брятан
    хоть помирились=)

  13. #9
    Пользователь
    Аватар для Max_Rif
    Статус
    Оффлайн
    Регистрация
    11.01.2011
    Сообщений
    1
    Репутация
    0 [+/-] 
    бло я не х не панимаю, зделали бы какие нибудь видео уроки)) Вот например: как зделать допустим ганг зоны для банд, определённые скины и пухи которые будут у них?!

  14. #10
    Заблокирован
    Аватар для Korbell
    Статус
    Оффлайн
    Регистрация
    15.11.2010
    Адрес
    KиеВ
    Сообщений
    511
    Репутация
    -4 [+/-] 
    Ничего сложного тут нету, есть простые уроки, к тебе на помощ мчится форум "Мануалы"


Страница 1 из 10 123 ... ПоследняяПоследняя

Ваши права

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