Вторник, 02.12.2008, 22:40
 
 
Приветствую Вас Проезжий | RSS
[ Новые сообщения · Участники · Правила форума · Поиск! · RSS ]
Статистика Форума
Последние ответы Популярные темы Лучшие пользователи TOP 7
  • GTA 4 уже можно с... [GTA 4]
  • Ахмед [Юмор]
  • [FS] Дроп оружия ... [Скрипты]
  • йа эмо! [Скандалы]
  • Сервер [Админ-раздел]
  • Вопрос - Ответ [Вопросы и Проблемы]
  • [FS] CS_Radio [Скрипты]
  • Вопрос - Ответ (Ответов: 962)
  • Обсуждение мода CityLi... (Ответов: 923)
  • Задавайте сюда ваши во... (Ответов: 921)
  • Помощь новечкам по скр... (Ответов: 613)
  • Пошли всех на хуй тут! (Ответов: 513)
  • Обратный отщёт от 500 (Ответов: 512)
  • GTA 4 уже можно скачат... (Ответов: 443)
  • MiX (Сообщений: 2612)
  • AXE (Сообщений: 2268)
  • OKStyle™ (Сообщений: 1934)
  • fAkm4n (Сообщений: 1728)
  • RockStarGamer (Сообщений: 1608)
  • DarkByte (Сообщений: 1317)
  • MAK (Сообщений: 1294)
  • Страница 1 из 6123456»
    Модератор форума: XAOC 
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » Об основах PAWNO (доступно для новичков)
    Об основах PAWNO
    BazДата: Воскресенье, 08.06.2008, 20:32 | Сообщение # 1
    Постоялец

    Группа: Продвинутые
    Сообщений: 370
    Город: Moscow
    Статус: status
    Данная статья предназначена для людей, не знающих принципов работы pawno.

    Pawno это упрощённый и адапртированый для сампа вариант с++.

    В конце КАЖДОЙ строчки и функции должен стоять знак ;
    В павно существуют паблики, после каждого паблика открывается поток, в нём открывается неограниченное количество потоков. В конце поток закрывается и ретёрнится (ставится return=0 или return=1).
    Потоки, в которые вставляются функции, переменные и значения, открываются знаком { и закрываются знаком }

    Паблики:

    Паблики можно переводить самим, однако вот расшифровка сандартных:

    OnGameModeInit
    в этом паблике должно находится то, что будет происходить при запуске мода

    OnPlayerConnect
    что будет происходить при присоединении игрока

    OnPlayerSpawn
    что будет происходить когда заспавница игрок

    OnPlayerCommandText
    ягодка павно-сюда команды

    OnPlayerDeath
    сюда то, что будет при смерти игрока

    OnPlayerDisconenct

    при отключении игрока

    ---------
    Функции:
    Краткое описание некоторых функций:
    замена id:
    в переменных, где присутствует ид игрока, если хочешь, что бы функция выполнялась для игрока, приведшему команду в децйствие, пиши туды playerid, но если хочешь чтоб команда выполнялась для определённого ид, пиши туда номер ид.

    Ну функции тоже можно самим перевести, вот стандартные

    AddPlayerClass(id,x,y,z,a) - пихаецо в OnGameModeInit, добавляет новый скин в мод, в скобочках идёт (ид скина, координаты x y z a)

    AddStaticVehicle(id,x,y,z,a,color1,color2) - присутствует тоже только в OnGameModeInit, добавляет в мод тачек, в скобочках (ид тачк, координаты, цвет1, цвет2) // существуют "таблицы цвета", в которых расписаны ид разных цветов, цвет с номером "-1" означает рандомный выбор цвета

    SetPlayerHealth(id, points) - задаёт здоровье игрока, в скобках (ид игрока, кол-во хп)
    SetPlayerArmour(id, points) - задаёт броню, скобки думаю понятны
    SetPlayerColor(id, color) - задаёт цвет игрока(ника и значка на радаре), в скобках-(ид игрока, цвет) // для данной функции цвет отсчитывается в 16-ричной системе(код цвета далее как |CODE| ), вставляется в функцию в виде 0x|CODE|FF, например для чёрного (000000) цвет будет 0x000000FF, для красного (код FF0000) будет выглядеть так: 0xFF0000FF
    SetPlayerPos(id, x,y,z) - координаты игрока, думаю расшифровывать скобки не надо.

    После КАЖДОЙ функции должны стоять ";", например SetPlayerHealth(playerid, 100);

    Это был только пример функций, на самом же деле их множество, но я надеюсь, используя логику и эти знания, можно будет легко догадаться о значениях и устройстве других функций

    А теперь самое интересное:
    команды!
    В разных модах примеры команд выглядят по разному, так же есть несколько типов вида команд. Я покажу только стандартные, в кодировании strcmp (а не dcmd, например).
    Команда вставляется в OnPlayerCommandText, выглядит так:

    if (strcmp("/тексткоманды", cmdtext, true, 10) == 0)
    {
    функция
    return 1;
    }
    return 0;

    например для того, что бы убить игрока (/kill, т.е. задать здоровье на 0), команда должна выглядеть так:

    if (strcmp("/kill", cmdtext, true, 10) == 0)
    {
    SetPlayerHealth(playerid, 0);
    return 1;
    }
    return 0;

    или чтоб по команде /fuck игроку давалась броня, здоровья становилось 20 хп, давался чёрный цвет и координаты становились 0.0.0

    if (strcmp("/fuck", cmdtext, true, 10) == 0)
    {
    SetPlayerHealth(playerid, 0);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid, 0x000000FF);
    SetPlayerPos(playerid, 0,0,0);
    return 1;
    }
    return 0;

    На сегодня это всё=)


     
    TorresДата: Воскресенье, 08.06.2008, 21:15 | Сообщение # 2
    Местный

    Группа: Модераторы
    Сообщений: 663
    Город: Йошкар-Ола
    Статус: status
    Дополняю стандартные паблики:

    OnGameModeExit(OnFilterScriptExit)

    Что будет происходит при отключение мода(скрипта).

    OnVehicleSpawn

    Что будет происходить при спавне машины.

    OnPlayerText

    сюда обычный текст(не команды).Например тим-чат:

    Quote
    if(text[0] == '!')
    {
    new name[24];
    GetPlayerName(playerid, name, 24);
    format(string, sizeof(string), "*Teamchat %s: %s", name, text[1]);
    printf("%s", string);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(gTeam[i] == gTeam[playerid])
    SendClientMessage(i, GetPlayerColor(playerid), string);
    }
    }
    return 0;
    }

    OnPlayerRequestClass

    Что будет,когда игрок выбирает себе скин

    OnPlayerStateChange

    Игрок меняет свое "положение"(водитель,пассажир,пешеход)

    OnPlayerEnterCheckpoint(OnPlayerEnterRaceCheckpoint)

    Когда игрок входит в чекпоинт(гоночный чекпоинт)

    OnPlayerLeaveCheckpoint(OnPlayerLeaveRaceCheckpoint)

    Когда игрок покидает чекпоинт(гоночный чекпоинт)

    OnPlayerPrivmsg

    Когда игрок посылает личное сообщение


    [GM]Village Riot TDM 1.0.4 - ЗАВЕРШЕН

    [FS]NDS 1.1 - ЗАВЕРШЕН(готова версия 1.2.Желающие приобрести скрипт писать в асю)

    [FS]Pereodevanie- ЗАВЕРШЕН

    [FS]Shield - ЗАВЕРШЕН

     
    ZaRДата: Воскресенье, 08.06.2008, 21:20 | Сообщение # 3
    Постоялец

    Группа: Продвинутые
    Сообщений: 376
    Город: Саратов
    Статус: status
    Quote (Baz)
    SetPlayerHealth(playerid, 0);

    Я дополню то, что в Pawno, также как и C++, нету целых чисел, а только десятичные
    Пример: - SetPlayerHealth(playerid, 0.0);

     
    OrangeДата: Воскресенье, 08.06.2008, 21:20 | Сообщение # 4
    Местный

    Группа: Ангел Хранитель
    Сообщений: 693
    Город: Город? ГОРОД?!?
    Статус: status
    Вопрос по теме: А свой паблик работает автоматически, или как его вызовешь(таймер, итд)?

     
    TorresДата: Воскресенье, 08.06.2008, 21:28 | Сообщение # 5
    Местный

    Группа: Модераторы
    Сообщений: 663
    Город: Йошкар-Ола
    Статус: status
    Quote (Mishanzanza)
    Вопрос по теме: А свой паблик работает автоматически, или как его вызовешь(таймер, итд)?

    Насколько я знаю,только по таймеру,чтоб было автоматически,юзай не publicstock


    [GM]Village Riot TDM 1.0.4 - ЗАВЕРШЕН

    [FS]NDS 1.1 - ЗАВЕРШЕН(готова версия 1.2.Желающие приобрести скрипт писать в асю)

    [FS]Pereodevanie- ЗАВЕРШЕН

    [FS]Shield - ЗАВЕРШЕН

     
    BazДата: Воскресенье, 08.06.2008, 21:38 | Сообщение # 6
    Постоялец

    Группа: Продвинутые
    Сообщений: 370
    Город: Moscow
    Статус: status
    есть пабликовые таймеры. и в павно есть целые числа, открой любой мод с командой /kill

     
    ZaRДата: Воскресенье, 08.06.2008, 21:44 | Сообщение # 7
    Постоялец

    Группа: Продвинутые
    Сообщений: 376
    Город: Саратов
    Статус: status
    Читал WIKI SAMP - там написано только десятичные + например SetVehicleHealth:
    100 - загориться
    100.0 - загориться
    200 - загориться
    200.0 - работает нормально
    Quote (Mishanzanza)
    Вопрос по теме: А свой паблик работает автоматически, или как его вызовешь(таймер, итд)?

    Можно например ещё сделать так, если тебе нужно чтобы он работал автоматически после ввода команды или включения мода - вводим так, пример: public SpawnPlayer(playerid) { ------------->
    В OnPlayerConnect:
    Code
    SpawnPlayer(playerid);




    Сообщение отредактировал DiversaK - Воскресенье, 08.06.2008, 21:45
     
    XAOCДата: Понедельник, 09.06.2008, 01:59 | Сообщение # 8
    Уважаемый

    Группа: Разработчики
    Сообщений: 944
    Город: Гдета там>>
    Статус: status
    new(int) название; - целочисленное значение(1,2,3,итд)
    new Float:название; - число с плавающей запятой(100.0,200.1,3.5, итд)
    new название[количество ячеек]; - массив, в него могут помещатся как символы, так и числа, и числа с плавающей запятой
    так-же присутствуют свои обозначения файловых переменных, и ещё много чего из C++


    Релизы:
    {APP} PAWNO GameText converter
    {APP} PEN1 Houses Builder
    {APP} SA-MP Server Cracker
    {APP} SA-MP Bot Attack

    {FS} Ultimate Admin Script

     
    EakwarpДата: Понедельник, 09.06.2008, 03:26 | Сообщение # 9
    Постоялец

    Группа: Продвинутые
    Сообщений: 454
    Город: Москва
    Статус: status
    Цикл

    Рассмотрим простейший цикл:
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    выполнение цикла;
    }
    где:
    i - переменная,
    1 < MAX_PLAYERS - выход из цикла.
    выполнение цикла - некий код который цикл будет выполнять


    Valakas SA-MP Devloper
    Valakas GF > 55555 lines ^^
     
    BazДата: Понедельник, 09.06.2008, 09:27 | Сообщение # 10
    Постоялец

    Группа: Продвинутые
    Сообщений: 370
    Город: Moscow
    Статус: status
    вы уже углубляете. тут совсем для новичков. им рано циклы и массивы давать

     
    Neo-RusДата: Понедельник, 09.06.2008, 12:00 | Сообщение # 11
    Постоялец

    Группа: Разработчики
    Сообщений: 310
    Город: Где-то на Северо-Западе
    Статус: status
    Пример IF конструкции:
    if(переменная == значение)
    {
    print("ok");
    }

    Пример IF - ELSE конструкции:
    if(переменная == значение)
    {
    print("ok");
    }
    else
    {
    print("ne ok");
    }

    Пример IF-Else IF конструкции:
    if(переменная == значение)
    {
    print("ok");
    }
    else if(переменная >= значение)
    {
    print("bol'we");
    }

    Знаки для сравнения:
    == - Равно
    >= - Больше или равно
    <= - Меньше или равно
    != - Не равно



    Нажми сюда чтобы получить похожую картинку

    Раздаю свои скрипты кусками, стучать в асю

    Сообщение отредактировал Neo-Rus - Понедельник, 09.06.2008, 12:01
     
    TorresДата: Понедельник, 09.06.2008, 12:24 | Сообщение # 12
    Местный

    Группа: Модераторы
    Сообщений: 663
    Город: Йошкар-Ола
    Статус: status
    дополню,
    && - и,например if(a>b&&b>c)
    || - или,например if(a>b||a>c)
    ! - не,например if(!IsPlayerAdmin) - если игрок не админ

    [GM]Village Riot TDM 1.0.4 - ЗАВЕРШЕН

    [FS]NDS 1.1 - ЗАВЕРШЕН(готова версия 1.2.Желающие приобрести скрипт писать в асю)

    [FS]Pereodevanie- ЗАВЕРШЕН

    [FS]Shield - ЗАВЕРШЕН

     
    KrovKopДата: Понедельник, 09.06.2008, 15:30 | Сообщение # 13
    Освоившийся

    Группа: Продвинутые
    Сообщений: 95
    Город: OdeSSa
    Статус: status
    Quote (Baz)
    SetPlayerPos(id, x,y,z) - координаты игрока, думаю расшифровывать скобки не надо.

    Вот никак не могу понять... Z - это куда направлен обьект или скин так, X высота...а Y лево, право?...
    Обьясните пожалуйста.

    Я мало шарю, но творю :)
    Vinewood TDM 0.1 - работа кипит (72%)
    P.S. Спасибо всем кто помогает)
    KrovKop aka BuTbKA
     
    DJSashoK59Дата: Понедельник, 09.06.2008, 16:14 | Сообщение # 14
    Постоялец

    Группа: Ангел Хранитель
    Сообщений: 484
    Город: .:[=-Пермь-=]:.
    Статус: status
    Продолжаю о стандартных пабликах.
    OnPlayerEnterVehicle(playerid, vehicleid)
    Что произойдет когда игрок сядет в машину.

    OnPlayerExitedMenu(playerid)
    Что произойдет когда игрок выйдет из меню.

    OnPlayerPickUpPickup(playerid, pickupid)
    Что произойдет когда игров подберет пикап.

    Хоть и не много, но хотябы что то добавил :)




    [GM]LVTDM++ - остановленно (траблы: вылетание игрока после смерти)
    [FS]The invisible car v1.0
    - скачать
    [FS]Pivnushka - скачать
    [FS]V.S.O. -=Скачать AMX+PWN=-=new version=-

    Сообщение отредактировал DJSashoK59 - Понедельник, 09.06.2008, 16:40
     
    XAOCДата: Понедельник, 09.06.2008, 16:32 | Сообщение # 15
    Уважаемый

    Группа: Разработчики
    Сообщений: 944
    Город: Гдета там>>
    Статус: status
    Когда описываете функцию, добавляйте их стандартные переменные


    Релизы:
    {APP} PAWNO GameText converter
    {APP} PEN1 Houses Builder
    {APP} SA-MP Server Cracker
    {APP} SA-MP Bot Attack

    {FS} Ultimate Admin Script

     
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » Об основах PAWNO (доступно для новичков)
    Страница 1 из 6123456»
    Поиск:

    Copyright SAMP-RUS© 2008