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

 



 
          





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





Последние Файлы 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 из 12
  • 1
  • 2
  • 3
  • 11
  • 12
  • »
Модератор форума: Dima-kun  
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Об основах PAWNO (доступно для новичков)
Об основах PAWNO
BazДата: Воскресенье, 08.06.2008, 20:32 | Сообщение # 1
Постоялец
Группа: Продвинутые
Сообщений: 390
Награды: 2
Город: Moscow
Репутация: 48
Замечания: 0%
Статус:
Данная статья предназначена для людей, не знающих принципов работы 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
Местный
Группа: Продвинутые
Сообщений: 690
Награды: 2
Город: Йошкар-Ола
Репутация: 127
Замечания: 0%
Статус:
Дополняю стандартные паблики:

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-MYSQL-PHP]PEN1:Ultra LS - совместим с samp 0.3
[ADD]MTA map converter
[SFD]ZaRДата: Воскресенье, 08.06.2008, 21:20 | Сообщение # 3
Местный
Группа: Пользователи
Сообщений: 519
Награды: 6
Город: Шлюхандия
Репутация: 65
Замечания: 60%
Статус:
Quote (Baz)
SetPlayerHealth(playerid, 0);

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



OrangeДата: Воскресенье, 08.06.2008, 21:20 | Сообщение # 4
Уважаемый человек
Группа: Продвинутые
Сообщений: 945
Награды: 6
Город: San Fierro
Репутация: 101
Замечания: 0%
Статус:
Вопрос по теме: А свой паблик работает автоматически, или как его вызовешь(таймер, итд)?


TorresДата: Воскресенье, 08.06.2008, 21:28 | Сообщение # 5
Местный
Группа: Продвинутые
Сообщений: 690
Награды: 2
Город: Йошкар-Ола
Репутация: 127
Замечания: 0%
Статус:
Quote (Mishanzanza)
Вопрос по теме: А свой паблик работает автоматически, или как его вызовешь(таймер, итд)?

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


[GM-MYSQL-PHP]PEN1:Ultra LS - совместим с samp 0.3
[ADD]MTA map converter
BazДата: Воскресенье, 08.06.2008, 21:38 | Сообщение # 6
Постоялец
Группа: Продвинутые
Сообщений: 390
Награды: 2
Город: Moscow
Репутация: 48
Замечания: 0%
Статус:
есть пабликовые таймеры. и в павно есть целые числа, открой любой мод с командой /kill


Делаю дизайны сайтов, недорого. Обращаться в ЛС
[SFD]ZaRДата: Воскресенье, 08.06.2008, 21:44 | Сообщение # 7
Местный
Группа: Пользователи
Сообщений: 519
Награды: 6
Город: Шлюхандия
Репутация: 65
Замечания: 60%
Статус:
Читал 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
Советчик
Группа: Разработчики
Сообщений: 1190
Награды: 11
Город: Гдета там>>
Репутация: 311
Замечания: 0%
Статус:
new(int) название; - целочисленное значение(1,2,3,итд)
new Float:название; - число с плавающей запятой(100.0,200.1,3.5, итд)
new название[количество ячеек]; - массив, в него могут помещатся как символы, так и числа, и числа с плавающей запятой
так-же присутствуют свои обозначения файловых переменных, и ещё много чего из C++

EakwarpДата: Понедельник, 09.06.2008, 03:26 | Сообщение # 9
Мастер джэдай
Группа: Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус:
Цикл

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


More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.


Valakas Roleplay on Twitter

Платные консультации, разработка, в ICQ. Дорого.
BazДата: Понедельник, 09.06.2008, 09:27 | Сообщение # 10
Постоялец
Группа: Продвинутые
Сообщений: 390
Награды: 2
Город: Moscow
Репутация: 48
Замечания: 0%
Статус:
вы уже углубляете. тут совсем для новичков. им рано циклы и массивы давать


Делаю дизайны сайтов, недорого. Обращаться в ЛС
WNeZRoSДата: Понедельник, 09.06.2008, 12:00 | Сообщение # 11
Местный
Группа: Продвинутые
Сообщений: 607
Награды: 11
Город: Где-то на Северо-Западе
Репутация: 119
Замечания: 0%
Статус:
Пример 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
Местный
Группа: Продвинутые
Сообщений: 690
Награды: 2
Город: Йошкар-Ола
Репутация: 127
Замечания: 0%
Статус:
дополню,
&& - и,например if(a>b&&b>c)
|| - или,например if(a>b||a>c)
! - не,например if(!IsPlayerAdmin) - если игрок не админ



[GM-MYSQL-PHP]PEN1:Ultra LS - совместим с samp 0.3
[ADD]MTA map converter
KrovKopДата: Понедельник, 09.06.2008, 15:30 | Сообщение # 13
Освоившийся
Группа: Продвинутые
Сообщений: 95
Награды: 1
Город: OdeSSa
Репутация: 4
Замечания: 20%
Статус:
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
Постоялец
Группа: Продвинутые
Сообщений: 481
Награды: 2
Город: Пермь
Репутация: 52
Замечания: 0%
Статус:
Продолжаю о стандартных пабликах.
OnPlayerEnterVehicle(playerid, vehicleid)
Что произойдет когда игрок сядет в машину.

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

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

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


Сообщение отредактировал DJSashoK59 - Понедельник, 09.06.2008, 16:40
XAOCДата: Понедельник, 09.06.2008, 16:32 | Сообщение # 15
Советчик
Группа: Разработчики
Сообщений: 1190
Награды: 11
Город: Гдета там>>
Репутация: 311
Замечания: 0%
Статус:
Когда описываете функцию, добавляйте их стандартные переменные
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Об основах PAWNO (доступно для новичков)
  • Страница 1 из 12
  • 1
  • 2
  • 3
  • 11
  • 12
  • »
Поиск:





 


 


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