17:47
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Alcoholik  
Основы павно
ImperealДата: Понедельник, 21.06.2010, 23:41 | Сообщение # 1
Мастер джэдай
Группа: I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
Репутация: 1868
Замечания: 100%
Статус:
И так начну с небольшого предисловия,
Вот я смотрю приходят новички которые хотят создать свой сервер.
И задоют одни и теже вопросы по очереди.
Они даже не пытаются поискать и подумать,зачем ведь есть Вопрос-Ответ где всё "ДАДУТ" именно ДАДУТ,
Многие просто не хотят нечего знать,им просто нужен готовый сервер так сказать.
Именно по этому так много нубо "РП" серверов.
Надо обьяснять а не довать всё на блюдечки.
-----------------------------------------------------------
Ну а теперь по теме.
В данной теме я раскажу основы которые должны знать новички,также выложу основные мануалы и факи(ведь поиском пользоватся тоже многие не умеют).
И так первое что нужно знать новичку,это что такое переменная,мас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)
масив

массив
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
Город: Санкт-Петербург
Репутация: 1868
Замечания: 100%
Статус:
_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
Город: Санкт-Петербург
Репутация: 1868
Замечания: 100%
Статус:
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)
поправил

Quote (zm-96)
пока i не станет меньше или равно MAX_PLAYERS

Quote (_LexA_)
пока i не станет равной или больше MAX_PLAYERS

плохо поправил :D
да, и с #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, fun
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
Город: Санкт-Петербург
Репутация: 1868
Замечания: 100%
Статус:
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[]);

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua