 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Основы павно
| |
| Impereal | Дата: Понедельник, 21.06.2010, 23:41 | Сообщение # 1 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| И так начну с небольшого предисловия, Вот я смотрю приходят новички которые хотят создать свой сервер. И задоют одни и теже вопросы по очереди. Они даже не пытаются поискать и подумать,зачем ведь есть Вопрос-Ответ где всё "ДАДУТ" именно ДАДУТ, Многие просто не хотят нечего знать,им просто нужен готовый сервер так сказать. Именно по этому так много нубо "РП" серверов. Надо обьяснять а не довать всё на блюдечки. ----------------------------------------------------------- Ну а теперь по теме. В данной теме я раскажу основы которые должны знать новички,также выложу основные мануалы и факи(ведь поиском пользоватся тоже многие не умеют). И так первое что нужно знать новичку,это что такое переменная,масcив,цикл,константа и т п Я в кратце раскожу что всё это такое и дам пару примеров использования вышеперечисленых терменов. * Переменная — проименованная либо адресуемая иным способом область памяти, имя или адрес которой можно использовать для осуществления доступа к данным, находящимся в переменной (по данному адресу). Чтобы так сказать создать новую переменную мы либо в самое начало мода ставим следующее "new название переменной;"(Это мы создали глобальную переменную),Или внутри функции(паблика) ставим тоже самое и тогда это будет локальная переменная и использовать её вы сможете только внутри этой фукции,паблика. *Цикл - Циклическое исполнение поставленной задачи(Википедия - Цикл - любая многократно исполняемая последовательность инструкций) Тоесть например вам нужно всем игрокам выдать одно сообщение вы используете цикл Пример: for(new i =0; i < MAX_PLAYERS; i++)//Данный цикл будет исполнятся пока i не станет равной или больше MAX_PLAYERS,на каждом шаге прибавляем к i +1 { SendClientMessage(i, COLOR_WHITE, "Текст");//SendClientMessage функция выдачи сообщеия игроку,i заменяет ид тоесть на первом шаге выдаст сообщение иду 0 на 2 1 иду и т д COLOR_WHITE цвет сообщения "Текст" само сообщение } *Константа - это не изменная переменная,тоесть вы её в начале определяете и её нельзя больше изменить Вот пример COLOR_WHITE в предыдущем примере это и есть константа Тоесть в начале вы должны добавть #define COLOR_WHITE ид цвета #define это оператор, с помощью него можно добавить константу И дальше вы можете в каждом сообщение использовать одну и туже константу COLOR_WHITE массив — именованный набор однотипных переменных, расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу. Я не знаю как проще обьяснить что такое массив. Возможно на примере станет понятно Самый простой пример массива new string[256];//Вот собственно массив и понять что это массив можно по тому что после его названия идут квадратные скобки //В нашем массиве так сказать 256 ячеек в каждую ячейку записывается 1 символ format(string, sizeof(string), "%d", i);//использование массива SendClientMessage(k, COLOR_DBLUE, string); Если этот пример вставить в цикл приведённый выше то каждому игроку напишет его ид ------------------------------------------------------------- Создание фракционных машин forward IsACarFrac(carid);//создаём форвард в который потом впишим иды машин Ставим в OnGameModeInit сами машины и запоминаем их ид Создание машины Идём в папку с игрой ищем там samp_debug там пишем /vsel(Если ошибся поправте) Выбираем машину ставим,садимся набираем /save идём в папку с игрой Открываем блокнот savedpositions и берём оттуда кординаты Идём в OnGamemodeInit CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay); Дальше создаём public isacarfrac(carid) { if((carid >= id1) && (carid <= id2))//id1 1 ид машин для приписки по порядку id2 соответствено последний { return 1; } return 0; } Идём в public OnPlayerStateChange И там создаём следующее else if(IsACarFrac(newcar)) { if(PlayerInfo[playerid][pMember] == id||PlayerInfo[playerid][pLeader] == id) { }//id заменяем на ид фракции else { RemovePlayerFromVehicle(playerid); }//Выбрасываем из машины } Всё! ------------------------------------------------------------- Полезные ссылки: ФАК по созданию шлагбаумов(Автор:Alan_Wake) Назначение команды/действия на кнопку(Автор:MAS_22) ФАК по созданию ворот ФАк по созданию фракции wiki.sa-mp.com ФАК по моду Год Фазер Создание входов/выходов Форум на котором найдёш всё если руки вытащить из жопы уха Не нашёл?Поможем Пожалуйсто извените за граматические ошибки! Если что не так поправляйте,дополняйте! Спасибо! И хорошо бы что бы тема не терялась.
Прощай самп-рус =Р
Сообщение отредактировал zm-96 - Вторник, 22.06.2010, 00:16 |
| |
|
|
| _LexA_ | Дата: Вторник, 22.06.2010, 00:03 | Сообщение # 2 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1437
Награды: 161
Город: Ростов-на-Дону
Репутация: 563
Замечания: 20%
Статус: 
| массив Quote (zm-96) for(new i =0; i > MAX_PLAYERS; i++)//Данный цикл будет исполнятся пока i не станет больше MAX_PLAYERS(Тоесть Всех игроков),на каждом шаге прибавляем к i +1 вообще-то в условии i должно быть меньше MAX_PLAYERS и условие будет выполняться пока i не станет равной или больше MAX_PLAYERS #define это оператор а уже с помощью него можно добавить константу
|
| |
|
|
| Impereal | Дата: Вторник, 22.06.2010, 00:10 | Сообщение # 3 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| _LexA_, поправил,спс лёх))
Прощай самп-рус =Р
|
| |
|
|
| Maccer | Дата: Вторник, 22.06.2010, 00:14 | Сообщение # 4 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 7
Город: Санкт-Петербург
Репутация: 100
Замечания: 40%
Статус: 
| Quote (zm-96) for(new i =0; i < MAX_PLAYERS; i++)//Данный цикл будет исполнятся пока i не станет меньше или равно MAX_PLAYERS(Тоесть Всех игроков),на каждом шаге прибавляем к i +1 сам-то понимаешь что пишешь?
есть вопросы по sa-mp или pawn? помогу за $$
|
| |
|
|
| Impereal | Дата: Вторник, 22.06.2010, 00:15 | Сообщение # 5 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| Maccer, всё поправленно. Quote (zm-96) for(new i =0; i < MAX_PLAYERS; i++)//Данный цикл будет исполнятся пока i не станет равной или больше MAX_PLAYERS,на каждом шаге прибавляем к i +1
Прощай самп-рус =Р
|
| |
|
|
| _LexA_ | Дата: Вторник, 22.06.2010, 00:19 | Сообщение # 6 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1437
Награды: 161
Город: Ростов-на-Дону
Репутация: 563
Замечания: 20%
Статус: 
| Quote (zm-96) пока i не станет меньше или равно MAX_PLAYERS Quote (_LexA_) пока i не станет равной или больше MAX_PLAYERS плохо поправил да, и с #define можно не только добавлять константы можно добавлять переменные сравнивать их добавлять функции и тд
|
| |
|
|
| Maccer | Дата: Вторник, 22.06.2010, 00:27 | Сообщение # 7 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 7
Город: Санкт-Петербург
Репутация: 100
Замечания: 40%
Статус: 
| Quote (zm-96) Вот пример COLOR_WHITE в предыдущем примере это и есть константа Тоесть в начале вы должны добавть #define COLOR_WHITE ид цвета #define это оператор, с помощью него можно добавить константу константа начинается с ключевого слова const #define это директива препроцессора зачем писать про фракционные машины? как ты сам писал в начале - даешь готовое решение. имхо никого учить не надо, смышленые ребята сами научатся. Лучше официального туториала по pawn (да, именно павн, а не павно) никто все равно не напишет. мне кажется ты сам еще новичок.
есть вопросы по sa-mp или pawn? помогу за $$
|
| |
|
|
| Borog | Дата: Вторник, 22.06.2010, 01:08 | Сообщение # 8 |
|
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1362
Награды: 43
Город: Москва
Репутация: 1249
Замечания: 20%
Статус: 
| > И задоют одни и теже вопросы по очереди. И задают одни и те же вопросы по очереди. > Надо объяснять а не довать всё на блюдечки. Надо объяснять, а не давать всё на блюдечке. > В данной теме я раскажу основы которые должны знать новички,также выложу основные мануалы и факи(ведь поиском пользоватся тоже многие не умеют). В данной теме я расскажу основы, которые должны знать новички, также выложу основные мануалы и факи (ведь поиском пользоваться тоже многие не умеют). > И так первое что нужно знать новичку,это что такое переменная,масcив,цикл,константа и т п Пробелы после знаков препинания! > Я в кратце раскожу что всё это такое и дам пару примеров использования вышеперечисленых терменов. Я вкратце раскажу, что всё это такое и дам пару примеров использования выше перечисленных терминов. > Чтобы так сказать создать новую переменную мы либо в самое начало мода ставим следующее "new название переменной;" Чтобы, так сказать, создать новую переменную, мы, либо, в самое начало мода ставим следующее "new название_переменной;" > Тоесть например вам нужно всем игрокам выдать одно сообщение вы используете цикл То есть, например, если вам нужно отослать одно и то же сообщение всем игрокам, вы используете цикл. > //Данный цикл будет исполнятся пока i не станет равной или больше MAX_PLAYERS,на каждом шаге прибавляем к i +1 //Данный цикл будет исполнятся пока переменная i не станет равной значению MAX_PLAYERS. (на каждом шаге прибавляем к переменной i +1) > SendClientMessage(i, COLOR_WHITE, "Текст");//SendClientMessage функция выдачи сообщеия игроку,i заменяет ид тоесть на первом шаге выдаст сообщение иду 0 на 2 1 иду и т д COLOR_WHITE цвет сообщения "Текст" само сообщение SendClientMessage функция выдачи сообщения игроку, i заменяет ид то есть на первом шаге выдаст сообщение иду 0 на 2, 1 иду и т. д. COLOR_WHITE цвет сообщения. "Текст" - само сообщение Но при этом мы не будем забывать про функцию SendClientMessageToAll, которая отправляет сообщение всем игрокам без использования вами цикла. > *Константа - это не изменная переменная,тоесть вы её в начале определяете и её нельзя больше изменить Константа - это не изменяемая переменная, то есть вы можете задать её только в моде и не сможете менять через игру, как некоторые другие переменные. > Пожалуйсто извените за граматические ошибки! Пожалуйста, извините за грамматические ошибки! Это все, на что меня хватило)
Silver Break http://s-break.ru/ http://vk.com/sbreak
|
| |
|
|
| _LexA_ | Дата: Вторник, 22.06.2010, 01:13 | Сообщение # 9 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1437
Награды: 161
Город: Ростов-на-Дону
Репутация: 563
Замечания: 20%
Статус: 
| Borog,
|
| |
|
|
| Jumpman23 | Дата: Вторник, 22.06.2010, 01:21 | Сообщение # 10 |
|
Группа:
I'm V.I.P.
Сообщений: 1359
Награды: 23
Город: Kingston, Rastapolis
Репутация: 504
Замечания: 100%
Статус: 
| [cut=SendClientMessage] SendClientMessage Функция используется для отправки сообщения в чат определенному игроку. Параметры: (playerid, color, const message[]) playerid - ид игрока которому будет отправлено сообщение. color - цвет текста сообщения. В формате HEX. const message[] - текст сообщения. Эта функция не возвращает никаких специальных значений. Пример использования: SendClientMessage(playerid, COLOR_GREEN, " Добро пожаловать на мой сервер!"); Родственные функции: SendClientMessageToAll - отправляет сообщение в чат всем игрокам. SendPlayerMessageToPlayer - отправляет игроку в чат сообщение от имени другого игрока. Родственные калбеки: OnPlayerText - Вызывается когда игрок пишет в чат. [/cut] [cut=SetPlayerFightingStyle]SetPlayerFightingStyle ВНИМАНИЕ: РАБОТАЕТ ТОЛЬКО НА SA-MP 0.3 !!! Функция дает бойцовские искуства игроку... Параметры: (playerid, style) playerid = ид игрока для которого будут менятся бойцовские искуства style = ид искуства Список бойцовских искуств: 4 - Номальный стиль борьбы 5 - Боксер 6 - Кунфу 7 - Ебашит коленком 15 - Накаутер 26 - Пиздит локтем Пример использования: if(strcmp(cmdtext, "/boxing", true) == 0) //добавляет комманду /boxing { SetPlayerFightingStyle (playerid, 5); //устанавливает бойцовское искуству на ид 5 (боксер) SendClientMessage(playerid, 0xFFFFFFAA, " Теперь ты боксер !"); //Отправляет сообщение в чат для игрока return 1; } [/cut] [cut=TogglePlayerControlable]TogglePlayerControllable //------------------------------------------------------------------------------ Вы можете использовать это в сочетании с меню, так что игрок может управлять меню с помощью клавиш, замораживаясь. //------------------------------------------------------------------------------Параметры (playerid, toggle) playerid - Игрок toggle 0 - заморозка, 1 - разморозка. //------------------------------------------------------------------------------ Как использовать: public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp(cmdtext, "/freezeme", true) == 0) { TogglePlayerControllable(playerid,0); return 1; } return 0; [/cut]
Тсссс, тссс, отключите снисходительный тон. Помните: вас уже лишали права слова на этом форуме. Прошу прощения у всех кого я заебал или оскорбил (Кроме икварпа и чеза - вы ибланы). Великс ты красава.
|
| |
|
|
| _LexA_ | Дата: Вторник, 22.06.2010, 01:29 | Сообщение # 11 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1437
Награды: 161
Город: Ростов-на-Дону
Репутация: 563
Замечания: 20%
Статус: 
| вы решили сюда вики переписать? тут не описание функций раздел вики срк
|
| |
|
|
| Jumpman23 | Дата: Вторник, 22.06.2010, 01:31 | Сообщение # 12 |
|
Группа:
I'm V.I.P.
Сообщений: 1359
Награды: 23
Город: Kingston, Rastapolis
Репутация: 504
Замечания: 100%
Статус: 
| Ну как-бы тема основы павно, вот выложил некоторые ф-ции с которыми новоиспечённые скриптеры будут встречатся
Тсссс, тссс, отключите снисходительный тон. Помните: вас уже лишали права слова на этом форуме. Прошу прощения у всех кого я заебал или оскорбил (Кроме икварпа и чеза - вы ибланы). Великс ты красава.
|
| |
|
|
| Dima-kun | Дата: Вторник, 22.06.2010, 08:23 | Сообщение # 13 |
|
Группа:
Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус: 
| Jesus, зайди на wiki.sa-mp.com и увидешь..
Мои работы: [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники, [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos, [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
|
| |
|
|
| Impereal | Дата: Вторник, 22.06.2010, 10:08 | Сообщение # 14 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| Quote (Maccer) константа начинается с ключевого слова const #define это директива препроцессора В павно все константы обозначают #define, не видел чтобы было обозначено так const Borog,ты как всегда:D
Прощай самп-рус =Р
|
| |
|
|
| _LexA_ | Дата: Вторник, 22.06.2010, 10:35 | Сообщение # 15 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1437
Награды: 161
Город: Ростов-на-Дону
Репутация: 563
Замечания: 20%
Статус: 
| Quote (zm-96) не видел чтобы было обозначено так const forward BroadCast(color,const string[]);
|
| |
|
|
|
 |
|
 | |
| |
|