Вторник, 02.12.2008, 18:19
 
 
Приветствую Вас Проезжий | RSS
[ Новые сообщения · Участники · Правила форума · Поиск! · RSS ]
Статистика Форума
Последние ответы Популярные темы Лучшие пользователи TOP 7
  • GTA 4 уже можно с... [GTA 4]
  • Боитесь ли вы при... [Обо Всём]
  • Литвинко или Литв... [Обо Всём]
  • Помощь новечкам п... [Вопросы и Проблемы]
  • info об участника... [Media-ProGroup]
  • Top's 100 bt ... [Юмор]
  • Adobe Photoshop C... [Графика и дизайн]
  • Вопрос - Ответ (Ответов: 959)
  • Обсуждение мода CityLi... (Ответов: 923)
  • Задавайте сюда ваши во... (Ответов: 919)
  • Помощь новечкам по скр... (Ответов: 610)
  • Обратный отщёт от 500 (Ответов: 512)
  • Пошли всех на хуй тут! (Ответов: 509)
  • Pen1 LS v1.4 by ONEhel... (Ответов: 386)
  • MiX (Сообщений: 2609)
  • AXE (Сообщений: 2262)
  • OKStyle™ (Сообщений: 1934)
  • fAkm4n (Сообщений: 1728)
  • RockStarGamer (Сообщений: 1608)
  • DarkByte (Сообщений: 1315)
  • MAK (Сообщений: 1293)
  • Страница 3 из 6«123456»
    Модератор форума: XAOC 
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » Об основах PAWNO (доступно для новичков)
    Об основах PAWNO
    PcixДата: Пятница, 25.07.2008, 11:21 | Сообщение # 31
    Освоившийся

    Группа: Продвинутые
    Сообщений: 94
    Статус: status
    Напишите про массивы плиз wall


    --------------------------------------------------------
    Кто самый крутой гопнег?

    ТУТ МОЖЕТЕ ПОСМОТРЕТЬ МОЙ РОЛИК СНЯТЫЙ В SA:MP

     
    Neo-RusДата: Пятница, 25.07.2008, 13:03 | Сообщение # 32
    Постоялец

    Группа: Разработчики
    Сообщений: 310
    Город: Где-то на Северо-Западе
    Статус: status
    масси задаются так:
    Code
    new tak[10]; // в нём 10 переменных

    чтобы использовать массив нужно писать так:

    Code
    tak[0] = 10;
    tak[9] = 1;
    if(tak[0] != tak[9]) { }



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

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

     
    ZaRДата: Среда, 20.08.2008, 19:43 | Сообщение # 33
    Постоялец

    Группа: Продвинутые
    Сообщений: 376
    Город: Саратов
    Статус: status
    Если такой паблик, *ДЕЙСТВИЕ_ПРИ_ВЫХОДЕ_ИЗ_МАШИНЫ* - OnPlayerExitVehicle ???

     
    Paul[ICK]Дата: Среда, 20.08.2008, 19:45 | Сообщение # 34
    Постоялец

    Группа: Public Team
    Сообщений: 403
    Город: Москва
    Статус: status
    Quote (ZaR)
    Если такой паблик, *ДЕЙСТВИЕ_ПРИ_ВЫХОДЕ_ИЗ_МАШИНЫ* - OnPlayerExitVehicle ???

    ?
    public OnPlayerExitVehicle(playerid, vehicleid)

    [FS] Adminhouse
    Mothership в SA-MP
     
    ZaRДата: Среда, 20.08.2008, 19:49 | Сообщение # 35
    Постоялец

    Группа: Продвинутые
    Сообщений: 376
    Город: Саратов
    Статус: status
    спс
    Quote (Paul|ICK|)
    public OnPlayerExitVehicle(playerid, vehicleid)


     
    SpiritДата: Четверг, 21.08.2008, 13:18 | Сообщение # 36
    Освоившийся

    Группа: Продвинутые
    Сообщений: 129
    Город: Омск
    Статус: status
    Вы бы хоть сами прочитали какую хренатень вы пишите, я почитах первые посты нифига непонял с чего надо начинать какието потоки когда блин всё идёт в одном потоке по порядку тут же пошли таймеры, а начинать надо было с малого это переменные ветвления, циклы и массивы по порядку как написал, уже потом можно объяснять куда что вписывать и про функции желательно с примерами, а не перечислением пабликов там блин из названия всё ясно, кому не ясно качайте словари.

    Модеры, удаляйте тему нафиг и пусть блин пишет подобные темы ктото один при том тот кто соображает что пишет.


    Любиш садизм люби и мазахизм :)
     
    webserferДата: Четверг, 21.08.2008, 13:21 | Сообщение # 37
    Уверенный

    Группа: Media-ProGroup
    Сообщений: 177
    Город: Мурманск
    Статус: status
    Spirit, ну блин, что ты хотел, если первый пост пишет мидиа-пг fun

    (с) Алфавит, 1990, 17 ноября
    ---
    АХ ТЫ...ЩА В ИГНОР ЗАЕБЕНЮ ©, ATOM57
    У мя наконец-то новый комп))) так что я снова здесь)
     
    BannyHopДата: Пятница, 22.08.2008, 02:04 | Сообщение # 38
    Новенький

    Группа: Продвинутые
    Сообщений: 39
    Статус: status
    Было бы очень хорошо, если вы соберете всю информацию в один постик. :)

    Ну, как-нибуть так:
    Данная статья предназначена для людей, не знающих принципов работы pawno.

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

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

    Паблики:

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

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

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

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

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

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

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

    OnPlayerEnterVehicle(playerid, vehicleid)
    Что произойдет когда игрок сядет в машину.

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

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

    OnGameModeExit(OnFilterScriptExit)

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

    OnVehicleSpawn

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

    OnPlayerText

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

    Code

    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

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

    OnVehicleMod(vehicleid, componentid);
    Когда машину тюнят

    OnVehiclePaintjob(vehicleid, paintjobid);
    Видимо когда меняется паинтжоб

    OnVehicleRespray(vehicleid, color1, color2);
    Когда машину перекрашивают

    OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid);
    Когда меняем интерьер

    OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
    Когда жмём кнопки

    OnPlayerSelectedMenuRow(playerid, row);
    Когда выбираем пункт в меню

    OnPlayerExitedMenu(playerid);
    Когда выходим из меню(По нажатию Enter)

    ---------
    Функции:
    Краткое описание некоторых функций:
    замена 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), команда должна выглядеть так:

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

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

    Code
    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;

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

    Code
    if(переменная == значение)
    {
    print("ok");
    }

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

    Пример IF-Else IF конструкции:

    Code
    if(переменная == значение)
    {
    print("ok");
    }
    else if(переменная >= значение)
    {
    print("bol'we");
    }

    Знаки для сравнения:
    == - Равно
    >= - Больше или равно
    <= - Меньше или равно
    != - Не равно
    && - и,например if(a>b&&b>c)
    ||- или,например if(a>b||a>c)
    ! - не,например if(!IsPlayerAdmin) - если игрок не админ


    Очень хочу научится скриптингу, если у кого-либо есть время, помогите.)
    ICQ: 352726328
    Mail: kristin_42@bk.ru


    Сообщение отредактировал Raper - Пятница, 22.08.2008, 13:32
     
    [SFD]EvilRiazДата: Пятница, 22.08.2008, 12:05 | Сообщение # 39
    Советчик

    Группа: Разработчики
    Сообщений: 1103
    Город: City of Los Angeles
    Статус: status
    Во что есть ещё

    OnVehicleMod(vehicleid, componentid);
    Когда машину тюнят

    OnVehiclePaintjob(vehicleid, paintjobid);
    Видимо когда меняется паинтжоб

    OnVehicleRespray(vehicleid, color1, color2);
    Когда машину перекрашивают

    OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid);
    Когда меняем интерьер

    OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
    Когда жмём кнопки

    OnPlayerSelectedMenuRow(playerid, row);
    Когда выбираем пункт в меню

    OnPlayerExitedMenu(playerid);
    Когда выходим из меню(По нажатию Enter)


    Где моя репа 0_o???
    Мои работы

    Кто хочет такую штучку смотрим сюда
    Current Developments: [SFD] TDM Mode, [GolNet] Big City Life [GF Mod]
     
    BannyHopДата: Пятница, 22.08.2008, 13:34 | Сообщение # 40
    Новенький

    Группа: Продвинутые
    Сообщений: 39
    Статус: status
    Вставила. Благодарю. :) Пишем еще.

    Очень хочу научится скриптингу, если у кого-либо есть время, помогите.)
    ICQ: 352726328
    Mail: kristin_42@bk.ru
     
    SpiritДата: Пятница, 22.08.2008, 17:19 | Сообщение # 41
    Освоившийся

    Группа: Продвинутые
    Сообщений: 129
    Город: Омск
    Статус: status
    *** ** вашу мать научили...
    Spirit (20:09:17 22/08/2008)
    OnPlayerCommandText - это функция и вызвать её можно из любой части мода

    TheBony (20:09:47 22/08/2008)
    А я думала это паблик

    За такие вопросы автора первого поста банить надо:)


    Любиш садизм люби и мазахизм :)

    Сообщение отредактировал Spirit - Пятница, 22.08.2008, 17:26
     
    BazДата: Среда, 03.09.2008, 13:47 | Сообщение # 42
    Постоялец

    Группа: Продвинутые
    Сообщений: 369
    Город: Moscow
    Статус: status
    Расчитано на новичков с мозгами.
    ...сочувствую

     
    [SFD]EvilRiazДата: Среда, 03.09.2008, 18:28 | Сообщение # 43
    Советчик

    Группа: Разработчики
    Сообщений: 1103
    Город: City of Los Angeles
    Статус: status
    Baz, многим и это сложно. Но я как открыл первый раз pawno, сразу всё понял куда пихать. crazy

    Где моя репа 0_o???
    Мои работы

    Кто хочет такую штучку смотрим сюда
    Current Developments: [SFD] TDM Mode, [GolNet] Big City Life [GF Mod]
     
    BazДата: Среда, 03.09.2008, 19:45 | Сообщение # 44
    Постоялец

    Группа: Продвинутые
    Сообщений: 369
    Город: Moscow
    Статус: status
    ну логика то должна быть у того кто решил заняться скриптингом. А если её нет, то никакие туториалы не помогут

     
    LuxurYДата: Пятница, 05.09.2008, 22:47 | Сообщение # 45
    Уверенный

    Группа: Продвинутые
    Сообщений: 268
    Город: OZ
    Статус: status
    Массив - это особая переменная содержащая в себе n-ное кол-во обычных переменных. Количество обычных переменных (размер массива) задается самостоятельно.

    Например:

    Code
    new string[256];

    Это массив с размерностью 256. Важно заметить, что 256 - кол-во ячеек в массиве для хранения данных. Ячейки определяются с 0 до 255 ( а не с 1 до 256 ! ).

    Quote
    Например:
    массив new array[n]; - с размерностью n
    Диапазон ячеек: 0 - ( n - 1 )

    Данный массив мы можем использовать для хранения строк и целых чисел. Почему нельзя хранить числа с плавающей точкой (дробные числа) ? Поясняю.
    Числа с плавающей точкой имеют свой синтаксис и задаются следующим образом:

    Code
    new Float:massiv[10];

    В таком массиве мы можем хранить 10 чисел с плавающей точкой.

    Становится интересно почему же можно хранить строки совместно с числами. Дело в том, что каждый символ имеет свой номер. Номера задаются кодировкой. Возможно кто-то уже знаком с данным термином благодаря работе с браузером (IE, Firefox, Opera и т.д.). Для справки: используется кодировка ANSI 1251.

    Ну а теперь примеры использования:

    Строки:

    Code
    new string[256]; //1
    format ( string , sizeof ( string ) , "This is %d and this is %s" , 5 , "6" ); //2
    SendClientMessageToAll ( 0x33AA33AA , string ); //3

    1. Создаем массив с размерностью 256
    2. Форматируем строку добавляя в них число 5 и строку (пусть она даже из одного символа) 6.
    Примечание: даже если перед вами цифра, это еще не значит что это не строка. :) Если мы напишем,
    format ( string , sizeof ( string ) , "This is %d and this is %d" , 5 , "6" );
    то в итоге мы не получим число 6 в строке, а получим 54! Аналогично и со всем остальным.
    Синтаксис очень важная вещь. Приведу некоторые "символы" для форматирования.
    %s - для строк
    %d - для целых чисел
    %f - для чисел с плавающей точкой (дробных чисел)
    Есть и другие типы и разновидности, но эти самые основные.

    sizeof ( ) - оператор для определения размерности массива.

    3. Отсылаем строку в чат.

    Целые числа:

    Code
    new time[3]; // 1
    gettime ( time[0] , time[1] , time[2] ); // 2
    printf ( "Now: %d hours %d minutes %d seconds" , time[0] , time[1] , time[2] ); // 3

    Что это? Объясняю.
    1. Создаем массив с размерностью 3.
    2. С помощью функции gettime записываем часы в переменную time[0], минуты в time[1], секунды в time[2].
    3. Форматируем и отсылаем в консоль сервера.
    Примечание: форматировать и отсылать строки можно только с функцией printf, с SendClientMessage не прокатит.

    Появляется вопрос что это за квадратные скобки с цифрами ( [0] ).
    Так как мы используем массив, то в нем несколько ( 3 ) ячеек для хранения данных. В 1 ячейке может храниться одна цифра или один символ ну или одно число с плавающей точкой ( только не забываем про Float: )
    Цифра в квадратных скобках есть цифра, определяющая в какую именно ячейку мы записываем данные.
    Функция gettime всего лишь делает следующие операции:

    Code
    time[0] = 12;
    time[1] = 30;
    time[2] = 59;

    В конце концов мы можем также расписать и строку.

    Например:

    Code
    new string[5];

    string[0] = 'H';
    string[1] = 'e';
    string[2] = 'l';
    string[3] = 'l';
    string[4] ='o';

    Но проще использовать функцию format.

    Поэтому по сути буквы ничем не отличаются от цифр. Дело только в способах отображения. В конце концов все записывается в память компьютера в формате 100101011.... :)


    www.gtascript.ru admin
    www.gtascript.ru - профессиональный скриптинг SA-MP, MTA


    Сообщение отредактировал LuxurY - Суббота, 06.09.2008, 17:24
     
    Форум о GTA Multiplayers. GTA SA-MP, MTA, VC-MP, IV-MP. » San Andreas MultiPlayer » Wiki-Samp-Rus » Об основах PAWNO (доступно для новичков)
    Страница 3 из 6«123456»
    Поиск:

    Copyright SAMP-RUS© 2008