Главная Новости Программы Статьи Контакты
Реклама
Новые файлы
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Нас сегодня посетили:
Форма входа
Главная » Статьи » SA:MP » SAMP

Основы pawno-павно. Как все начинается.

Скриптинг Samp происходит в Pawno. Pawno это программа компилирующая pwn (изменяемый файл будущего скрипта) в amx (сам скрипт) и для изменения первого. Открыв какой-нибудь скрипт мы видим множество надписей и цифр. Разберем что же они значат. Откроем new.pwn. Начнём разбирать самое простое.

public OnGameModeInit() 

print("GameModeInit()"); 

SetGameModeText("Blank Script"); 

AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; 

}

{ и } это скобочки открытия/закрытия. 

printf("GameModeInit()"); Это сообщение на сам сервер. 

SetGameModeText("Blank Script"); Это установка название нашего режима. 

AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); Это добавление спавна(скина). Первый 0 это ID скина, следующие 4 числа это координаты, остальные 6 нулей это оружие и их патроны. 

return 1; Это конец. 

public OnGameModeInit() Это паблик в котором содержится все вышеперечисленное, их мы пока трогать не будем. 

Каждый паблик выполняет свою задачу, можно создавать свои паблики и засунуть туда определенные действия и сделать чтобы они выполнялись в нужный момент. Это сложновато, поэтому не будем пока об этом. Можно задавать определенные действия например при подключении, спавне. Найдем 

public OnPlayerDeath(playerid, killerid, reason) 

printf("OnPlayerDeath(%d, %d, %d)", playerid, killerid, reason); 

return 1; 

и переделаем на 

public OnPlayerDeath(playerid, killerid, reason) 

SendClientMessa ge(playerid, 0xFFFF00AA, "Вы погибли"); 

printf("OnPlayerDeath(%d, %d, %d)", playerid, killerid, reason); 

return 1; 

SendClientMessa ge(playerid, 0xFFFF00AA, "Вы погибли"); Сработает как сообщение в чат "Вы погибли" (без кавычек) 0xFFFF00AA это цвет текста про него также напишу в следующих уроках. 

Далее ищем вверху синий треугольник и жмем на него. Должна произойти компиляция и появится текст: 

Pawn compiler 3.0.3367 Copyright © 1997-2005, ITB CompuPhase 

Если надпись отличается то есть какие-то ошибки, в этой надписи будет указано в каких именно строчках есть таковые. Ну про это тоже позже. Дальше, заходим в папку с сервером и открываем server.CFG и меняем там строчку(и) gamemode0(или другие числа) на gamemode0(если другие числа то строчку можно удалить она нам не понадобится) new 1 и включаем samp-server.exe. 

Дальше идём в папку San Andreas,открываем samp_debug.exe и там жмем connect lokalhost,мы заходим на сервер и проверяем скрипт. Если все сделано верно то после смерти (можно написать /kill) мы увдим надпись в чате "Вы умерли" (без скобок) жёлтого цвета,то все сделано верно, если нет то внимательно проверьте скрипт.

Урок 2

Делаем телепорт, вообщем простенько но может кому пригодится.

// Command: /Teleport 

if(strcmp(cmdtext, "/Teleport", true)==0) 

new vehicleid = GetPlayerVehicl eID(playerid); 

new State = GetPlayerState(playerid); 

if(IsPlayerInAnyVe hicle(playerid) && State == PLAYER_STATE_DR IVER) 

return SetVehiclePos(vehicleid,Координаты X,Y.Z ), 

GameTextForPlay er(playerid, "~w~Ваше Сообщение после телепорта", 5000, 5); 

SetPlayerPos(playerid,Координаты X,Y.Z); 

GameTextForPlay er(playerid, "~w~Ваше Сообщение после телепорта!", 5000, 5); 

return 1; 

И всё это вставляем в в паблик: 

public OnPlayerCommand Text(playerid, cmdtext[]){

Урок 3

Расставим транспорт и респауны.

Сейчас начнем осваивать координаты, где достать куда ставить. В папке San-Andreas'а ищем файл samp_debug.exe (желательно сделать ярлык и поставить его в папку сервера) и нажать кнопку Launch Debug. Начнет загружатся игра и вы окажетесь в Los Santos. В этом режиме вы сможете находить нужные вам координаты. Используйте команды /vsel для выбора транспорта. /save <примечание> сохранение координат. Встаньте там где нужно сохранить координаты и используйте команду; F11 и F12 прокрутка скинов вперед и назад соответственно. Далее находим файл savedpositions. txt в папке San Andreas'а (тоже желательно сделать ярлык в папку с сервером) и смотрим там: 

Если вы сохраняли координаты находясь пешком у вас должно быть: 

AddPlayerClass(0,1496.7302,1438.9197,10.8281,115.1 985,0,0,0,0,0,0); // spawn 

Если на авто: 

AddStaticVehicle(494,1505.4323,1450.9718,10.7365,3 57.1130,36,13); // hotring Дальше поставим координаты в наш скрипт: 

Ищем 

public OnGameModeInit() 

print("GameModeInit()"); 

SetGameModeText("Blank Script"); 

AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); 

return 1; 

и переделываем на 

public OnGameModeInit() 

print("GameModeInit()"); 

SetGameModeText("Blank Script"); 

AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); 

return 1; 

Внимание ставьте свои координаты из savedpositions. txt!

Урок 5

Цвет банд

Сначало ищим: 

public SetPlayerToTeam Color(playerid) 

Там видим строки: 

if(IsPlayerConnect ed(playerid)) 

SetPlayerColor 

Чтобы сделать цвет банды нам надо просто добавить строки: 

SetPlayerColor((PlayerInfo[playerid][pMember]== 4 || PlayerInfo[playerid][pLeader] == 4),0xFFFF00AA);

Что выделено зеленым это - какая фракциия(id) будет таким цветом , а то что выделено синим цветом это цвет. 

И так несколько раз( смотря для сколько банд вы поставите)

Урок 6 

Телепорт по пикапу

Где все new(переменные) пишем 

new teleport;

Далее в поиске ищем public OnGameModeInit() и вставляем там:

teleport = CreatePickup(1274,1,x,y,z);

Поясняю 1274 - это ID пикапа, 1 - это тип пикапа, x,y,z - это координаты вашего местоположения пикапа

Ищем OnPlayerPickUpPickup(playerid, pickupid) и туда вставляем:

if(pickupid == teleport) 

SetPlayerInteri or(playerid, 0); 

SetPlayerPos(playerid,x,y,z); 

SendClientMessa ge(playerid, 0xFF0000FF, "Ты телепортировался в нужную точку"); 

Поясняю: SetPlayerInteri or(playerid, 0); - этим вы задаёте интерьер игроку, 0 это улица, пишите свой интерьер 

SetPlayerPos(playerid,x,y,z); - этим вы задаёте местоположение игрока. XYZ это ваши координаты куда он будет телепортироваться 

SendClientMessa ge(playerid, 0xFF0000FF, "Ты телепортировался в нужную точку"); - это сообщение при телепортации. Можно убрать

Мод для основы тык



Категория: SAMP | Добавил: admin (28.03.2013)
Просмотров: 5445 | Теги: Мод, скриптинг, САМП, павно, SAMP, pawno, Public, mod, сервер | Рейтинг: 4.0/3


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]