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

Тема: C++ pawn

Показано с 1 по 10 из 98

  1. #1
    Администратор

    Аватар для KinG_95

    Статус: Оффлайн
    Регистрация:12.11.2010
    Сообщений:731
    Репутация:665 [+/-] 

    Сообщение 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), КолЁк (14.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
    Сообщений:731
    Репутация:665 [+/-] 
    Итак продолжаем урок :
    =============Урок ?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
    Сообщений:731
    Репутация:665 [+/-] 
    даров брятан:)
  7. #5
    Администратор

    Аватар для KinG_95

    Статус: Оффлайн
    Регистрация:12.11.2010
    Сообщений:731
    Репутация:665 [+/-] 
    =============Урок ?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 [+/-] 
    =============Урок ?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
    Сообщений:731
    Репутация:665 [+/-] 
    ===========Урок ?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 [+/-] 
    даров брятан:)
    хоть помирились=)
  13. #9
    Пользователь

    Аватар для Max_Rif

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

    Аватар для Korbell

    Статус: Оффлайн
    Регистрация:15.11.2010
    Адрес:KиеВ
    Сообщений:511
    Репутация:-4 [+/-] 
    Ничего сложного тут нету, есть простые уроки, к тебе на помощ мчится форум "Мануалы" :)
Страница 1 из 10 123 ... Последняя
  • К странице:

Пользователи, которые читали эту тему: 2

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
В обязанности Администрации не входит контроль легальности или нелегальности передаваемой информации (любой, включая, но не ограничиваясь, информацией передаваемой между пользователями, внутренней пересылки информации в виде различных ссылок, текстов или архивов), определение прав собственности или законности передачи, приема или использования этой информации.
Администрация не несёт никакой ответственности за пользователей и модер состав форума!
читы хаки samp-rp advanvce скачать pawn скриптинг моды скрипты гарант s0beit cs 1.6 0.3x читы World of Tanks Баги samp-rp,читы samp-rp,аккаунты самп-рп Скриптинг PAWNO SA-MP IV-MP MTA уроки помощь создание сервер моды скрипты плагины cleo читы читинг собейт s0beit sobeit моды для sa-mp скрипты для sa-mp pawno скриптинг pawno скрипты pawno моды iv-mp скриптинг iv-mp скрипты iv-mp моды мод godfather Моды SAMP как установить машины для gta 4 Моды гта 4 Моды GTA 4 скачать моды для GTA 4 скрипты и моды GTA 4 скачать скрипты SAMP моды SAMP на русском языке где можно скачать Pen1 LS скачать Pen1 Fugitive скачать The Godfather rp roleplay samp-rp скачать бесплатно создать sa-mp сервер создать мод sa-mp создать скрипт в pawno gta-iv gta-v gta-sa gta-3 gta-III gta-4 gta-5 gta-vc mta mta-dm mta-race mta-sa pawno инфо info информация ru помощь в pawno ошибки pawno сервер павно gta-iv крэк gta-iv патч gta-v демо gta-v трейлер gta-iv keygen скрипты gta sa gta 4 multiplayer gta san adnreas multiplayer sa-mp forum форум о sa-mp форум о pawno русский sa-mp русское pawno русификатор реклама раскрутка сервера пиар сервера sa-mp мониторинг gta-sa ошибки в pawno pawno errors sa-mp 0.3c SA-MP 0.3d Играть в гта по сети моды для сампа скрипты самп Моды гта 4 Моды GTA 4 скачать моды для GTA 4 скрипты и моды GTA 4 скачать скрипты SAMP моды SAMP на русском языке где можно скачать Pen1 LS скачать Pen1 Fugitive скачать The Godfather Все моды SAMP у нас взлом вк hack rat android instagram twitter хак хакер лайфхак рынок продажа ddos защита услуги администратор root linux ubuntu mac android андроид прошивка без ограничений advance arizona читы 4g безлимит