• Страница 1 из 1
  • 1
Модератор форума: [east_side]_trane, drifter-dron, valych, admin  
Урок №59 (Создаем нового NPC в samp 0.3)
adminДата: Среда, 06.10.2010, 04:21:52 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
Урок посвящен созданию нового бота с нуля.

Запись файла путей



Для начала нам необходимо записать файл путей для нашего npc. Для этого заходим на сервер, логинимся как ркон админ. Загружаем фильтрскрипт
Code
npc_record ("/rcon loadfs npc_record" )
(если он не был загружен до этого). Скрипт
Code
npc_record
содержит три основные команды:
Code
/vrecord <filename>
- Начинает запись путей транспорта в указанный файл
Code
/ofrecord <filename>
- Начинает запись путей пешехода в указанный файл
Code
/stoprecord
- Останавливает запись файла


В этом уроке мы будем делать бота управляющего транспортом. Поэтому садимся в тачку и пишем
Code
/vrecord mynpc

Далее катаемся по пути где будет ездить наш будущий бот
Когда закончим останавливаем запись файла
Code
/stoprecord



Выходим из игры и идем в папку
Code
scriptfiles,
там нас должен ожидать файл
Code
mynpc.rec.
Перемещаем его в папку
Code
/npcmodes/recordings/

Все запись путей для NPC закончена!


Code

#define RECORDING "mynpc" //Это имя файла путей, который мы только что записали   
#define RECORDING_TYPE 1//1 для водителя 2 для пешехода   
#include <a_npc>   
main(){}   
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);   
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);   
publicOnNPCExitVehicle() StopRecordingPlayback();

Рассмотрим каждую строчку подробнее:


Code

#define RECORDING "mynpc" //Это имя файла путей, который мы только что записали

Как говорит комментарий - это имя файла путей который мы записали. Имя указывается без расширения!


Code

#define RECORDING_TYPE 1//1 для водителя 2 для пешехода

Это тип записи. Для NPC водителя указываем 1, для NPC пешехода 2


Code

#include <a_npc>

Подключаем инклуд содержащий функции для работы с NPC


Code

public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Благодаря этой строчке, когда npc проедет весь свой путь, прописанный в его файле, воспроизведение начнется начало.


Code

public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Эта строка начинает воспроизведение файла пути когда NPC садиться в транспорт


Code

publicOnNPCExitVehicle() StopRecordingPlayback();

Эта строка останавливает воспроизведение, если по какой то причине NPC покинет транспорт.


Как видите все просто! Теперь компилируем скрипт
Code
mynpc.pwn
и отправляем его в папку
Code
/npcmodes



Присоединение NPC


Итак у нас уже есть готовый файл путей и скрипт управляющий NPC. Теперь нам нужно загрузить NPC в моде или фильтр скрипте. Для этих целей существует функция
Code
ConnectNPC

Синтаксис:


Code

ConnectNPC("Dave","mynpc");

где, Dave - имя NPC, благодаря которому можно различать между собой разных NPC и заставлять их выполнять различные действия.
mynpc - имя скрипта (без расширения), управляющего NPC
Итак, используя эту функцию загрузим NPC в моде:


Code

public OnGameModeInit()   
{   
print("my gamemode");   
ConnectNPC("MyFirstNPC","mynpc");   
return 1;   
}

или в фс
Code

public OnFilterScriptInit()   
{   
print("my filterscript");   
ConnectNPC("MyFirstNPC","mynpc");   
return 1;   
}



Теперь когда у нас есть маршрут по которому будет кататься NPC, нужно создать ему транспорт на котором он будет кататься:


Code

new MyFirstNPCVehicle;   
public OnGameModeInit()   
{   
print("my gamemode");   
ConnectNPC("MyFirstNPC","mynpc");   
MyFirstNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);   
return 1;   
}



Положение транспорта не имеет значение, поскольку он будет телепортирован к NPC, когда начнется воспроизведение файла пути.


Еще одна вещь, которую нужно сделать - это посадить NPC в транспорт. Это можно реализовать так:


Code

public OnPlayerSpawn(playerid)   
{   
if(IsPlayerNPC(playerid)) //Если игрок - NPC.   
{   
new npcname[MAX_PLAYER_NAME];   
GetPlayerName(playerid, npcname, sizeof(npcname)); //Получаем имя NPC   
if(!strcmp(npcname, "MyFirstNPC", true)) //Проверяем если имя NPC - MyFirstNPC   
{   
PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Сажаем NPC в созданный для него транспорт   
}   
return 1;   
}   
//Остальной код для обычных игроков   
return 1;   
}




zm-jail.ru

Разработка сайта samp-pawno.ru


 
Сообщение
Урок посвящен созданию нового бота с нуля.

Запись файла путей



Для начала нам необходимо записать файл путей для нашего npc. Для этого заходим на сервер, логинимся как ркон админ. Загружаем фильтрскрипт
Code
npc_record ("/rcon loadfs npc_record" )
(если он не был загружен до этого). Скрипт
Code
npc_record
содержит три основные команды:
Code
/vrecord <filename>
- Начинает запись путей транспорта в указанный файл
Code
/ofrecord <filename>
- Начинает запись путей пешехода в указанный файл
Code
/stoprecord
- Останавливает запись файла


В этом уроке мы будем делать бота управляющего транспортом. Поэтому садимся в тачку и пишем
Code
/vrecord mynpc

Далее катаемся по пути где будет ездить наш будущий бот
Когда закончим останавливаем запись файла
Code
/stoprecord



Выходим из игры и идем в папку
Code
scriptfiles,
там нас должен ожидать файл
Code
mynpc.rec.
Перемещаем его в папку
Code
/npcmodes/recordings/

Все запись путей для NPC закончена!


Code

#define RECORDING "mynpc" //Это имя файла путей, который мы только что записали   
#define RECORDING_TYPE 1//1 для водителя 2 для пешехода   
#include <a_npc>   
main(){}   
public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);   
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);   
publicOnNPCExitVehicle() StopRecordingPlayback();

Рассмотрим каждую строчку подробнее:


Code

#define RECORDING "mynpc" //Это имя файла путей, который мы только что записали

Как говорит комментарий - это имя файла путей который мы записали. Имя указывается без расширения!


Code

#define RECORDING_TYPE 1//1 для водителя 2 для пешехода

Это тип записи. Для NPC водителя указываем 1, для NPC пешехода 2


Code

#include <a_npc>

Подключаем инклуд содержащий функции для работы с NPC


Code

public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Благодаря этой строчке, когда npc проедет весь свой путь, прописанный в его файле, воспроизведение начнется начало.


Code

public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Эта строка начинает воспроизведение файла пути когда NPC садиться в транспорт


Code

publicOnNPCExitVehicle() StopRecordingPlayback();

Эта строка останавливает воспроизведение, если по какой то причине NPC покинет транспорт.


Как видите все просто! Теперь компилируем скрипт
Code
mynpc.pwn
и отправляем его в папку
Code
/npcmodes



Присоединение NPC


Итак у нас уже есть готовый файл путей и скрипт управляющий NPC. Теперь нам нужно загрузить NPC в моде или фильтр скрипте. Для этих целей существует функция
Code
ConnectNPC

Синтаксис:


Code

ConnectNPC("Dave","mynpc");

где, Dave - имя NPC, благодаря которому можно различать между собой разных NPC и заставлять их выполнять различные действия.
mynpc - имя скрипта (без расширения), управляющего NPC
Итак, используя эту функцию загрузим NPC в моде:


Code

public OnGameModeInit()   
{   
print("my gamemode");   
ConnectNPC("MyFirstNPC","mynpc");   
return 1;   
}

или в фс
Code

public OnFilterScriptInit()   
{   
print("my filterscript");   
ConnectNPC("MyFirstNPC","mynpc");   
return 1;   
}



Теперь когда у нас есть маршрут по которому будет кататься NPC, нужно создать ему транспорт на котором он будет кататься:


Code

new MyFirstNPCVehicle;   
public OnGameModeInit()   
{   
print("my gamemode");   
ConnectNPC("MyFirstNPC","mynpc");   
MyFirstNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);   
return 1;   
}



Положение транспорта не имеет значение, поскольку он будет телепортирован к NPC, когда начнется воспроизведение файла пути.


Еще одна вещь, которую нужно сделать - это посадить NPC в транспорт. Это можно реализовать так:


Code

public OnPlayerSpawn(playerid)   
{   
if(IsPlayerNPC(playerid)) //Если игрок - NPC.   
{   
new npcname[MAX_PLAYER_NAME];   
GetPlayerName(playerid, npcname, sizeof(npcname)); //Получаем имя NPC   
if(!strcmp(npcname, "MyFirstNPC", true)) //Проверяем если имя NPC - MyFirstNPC   
{   
PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Сажаем NPC в созданный для него транспорт   
}   
return 1;   
}   
//Остальной код для обычных игроков   
return 1;   
}



Автор - admin
Дата добавления - 06.10.2010 в 04:21:52
MaNb9KДата: Воскресенье, 26.12.2010, 15:16:57 | Сообщение # 2

Группа: Пользователи
Сообщений: 220
а у меня пишит
Code
E:\[RRP]Rus\stalker.pwn(10) : error 017: undefined symbol "main"
E:\[RRP]Rus\stalker.pwn(12) : error 029: invalid expression, assumed zero
E:\[RRP]Rus\stalker.pwn(12) : error 017: undefined symbol "OnRecordingPlaybackEnd"
E:\[RRP]Rus\stalker.pwn(12) : error 017: undefined symbol "StartRecordingPlayback"
E:\[RRP]Rus\stalker.pwn(12) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

5 Errors.


[img]http://sa-mp-fail.at.ua/premium.gif[/img]
 
Сообщениеа у меня пишит
Code
E:\[RRP]Rus\stalker.pwn(10) : error 017: undefined symbol "main"
E:\[RRP]Rus\stalker.pwn(12) : error 029: invalid expression, assumed zero
E:\[RRP]Rus\stalker.pwn(12) : error 017: undefined symbol "OnRecordingPlaybackEnd"
E:\[RRP]Rus\stalker.pwn(12) : error 017: undefined symbol "StartRecordingPlayback"
E:\[RRP]Rus\stalker.pwn(12) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

5 Errors.

Автор - MaNb9K
Дата добавления - 26.12.2010 в 15:16:57
adminДата: Вторник, 28.12.2010, 01:23:35 | Сообщение # 3

Группа: Администраторы
Сообщений: 3869
Quote (MaNb9K)
E:\[RRP]Rus\stalker.pwn(12) : error 017: undefined symbol "OnRecordingPlaybackEnd"
E:\[RRP]Rus\stalker.pwn(12) : error 017: undefined symbol "StartRecordingPlayback"

на счет этого ты паблике хоть поставил?


zm-jail.ru

Разработка сайта samp-pawno.ru


 
Сообщение
Quote (MaNb9K)
E:\[RRP]Rus\stalker.pwn(12) : error 017: undefined symbol "OnRecordingPlaybackEnd"
E:\[RRP]Rus\stalker.pwn(12) : error 017: undefined symbol "StartRecordingPlayback"

на счет этого ты паблике хоть поставил?

Автор - admin
Дата добавления - 28.12.2010 в 01:23:35
MaNb9KДата: Вторник, 28.12.2010, 13:36:27 | Сообщение # 4

Группа: Пользователи
Сообщений: 220
admin, я скрипт делаю.Ну да поствил

[img]http://sa-mp-fail.at.ua/premium.gif[/img]
 
Сообщениеadmin, я скрипт делаю.Ну да поствил

Автор - MaNb9K
Дата добавления - 28.12.2010 в 13:36:27
adminДата: Четверг, 30.12.2010, 02:48:46 | Сообщение # 5

Группа: Администраторы
Сообщений: 3869
MaNb9K, инклуд стоит сверху?
Code
#include <a_samp>
#include <dini>
?


zm-jail.ru

Разработка сайта samp-pawno.ru


 
СообщениеMaNb9K, инклуд стоит сверху?
Code
#include <a_samp>
#include <dini>
?

Автор - admin
Дата добавления - 30.12.2010 в 02:48:46
danik_rokДата: Четверг, 06.01.2011, 12:07:18 | Сообщение # 6

Группа: Проверенные
Сообщений: 317
Знаю такие ошибки но в е*том случае не знаю как их исправить, помогите плз :)
Code
error 021: symbol already defined: "___OnGameModeInit"   
  error 021: symbol already defined: "___OnGameModeInit"   
  error 021: symbol already defined: "OnPlayerSpawn"


1. Вы сейчас в интернете.
2. Вы на сайте www.forum-pawno.net.ru.
3. Вы читаете это.
5. Вы не заметили что отсутствует пункт 4.
6. Вы сейчас это проверили.
7. Вы улыбаетесь.
 
СообщениеЗнаю такие ошибки но в е*том случае не знаю как их исправить, помогите плз :)
Code
error 021: symbol already defined: "___OnGameModeInit"   
  error 021: symbol already defined: "___OnGameModeInit"   
  error 021: symbol already defined: "OnPlayerSpawn"

Автор - danik_rok
Дата добавления - 06.01.2011 в 12:07:18
MaNb9KДата: Четверг, 06.01.2011, 12:53:30 | Сообщение # 7

Группа: Пользователи
Сообщений: 220
admin, а я и незнал что нужен
Code
#include <dini>


[img]http://sa-mp-fail.at.ua/premium.gif[/img]
 
Сообщениеadmin, а я и незнал что нужен
Code
#include <dini>

Автор - MaNb9K
Дата добавления - 06.01.2011 в 12:53:30
adminДата: Пятница, 07.01.2011, 11:08:37 | Сообщение # 8

Группа: Администраторы
Сообщений: 3869
Quote (danik_rok)
error 021: symbol already defined: "___OnGameModeInit"
error 021: symbol already defined: "___OnGameModeInit"
error 021: symbol already defined: "OnPlayerSpawn"

посмотри не повторяется ли 2 раза паблика в моде?:)) MaNb9K, ну теперь будешь знать :D


zm-jail.ru

Разработка сайта samp-pawno.ru


 
Сообщение
Quote (danik_rok)
error 021: symbol already defined: "___OnGameModeInit"
error 021: symbol already defined: "___OnGameModeInit"
error 021: symbol already defined: "OnPlayerSpawn"

посмотри не повторяется ли 2 раза паблика в моде?:)) MaNb9K, ну теперь будешь знать :D

Автор - admin
Дата добавления - 07.01.2011 в 11:08:37
danik_rokДата: Понедельник, 10.01.2011, 20:03:18 | Сообщение # 9

Группа: Проверенные
Сообщений: 317
Если ты про OnGameModeInt и OnPlayerSpawn то да, и не раз 11

1. Вы сейчас в интернете.
2. Вы на сайте www.forum-pawno.net.ru.
3. Вы читаете это.
5. Вы не заметили что отсутствует пункт 4.
6. Вы сейчас это проверили.
7. Вы улыбаетесь.
 
СообщениеЕсли ты про OnGameModeInt и OnPlayerSpawn то да, и не раз 11

Автор - danik_rok
Дата добавления - 10.01.2011 в 20:03:18
ArTeMkAДата: Четверг, 03.02.2011, 17:26:07 | Сообщение # 10

Группа: Пользователи
Сообщений: 16
Я ваще не догнал!!

[RP]MultiGame[RUS]
 
СообщениеЯ ваще не догнал!!

Автор - ArTeMkA
Дата добавления - 03.02.2011 в 17:26:07
danik_rokДата: Воскресенье, 12.06.2011, 14:43:27 | Сообщение # 11

Группа: Проверенные
Сообщений: 317
У меня проблема, сделал ботов, а когда запускаю сервер они заходят и сразуже выходят я даже зайти неуспеваю, пробывал делать рестарты не помогает, в server.cfg max кол-во ботов настроенно, никак немогу понять почему они выходят

1. Вы сейчас в интернете.
2. Вы на сайте www.forum-pawno.net.ru.
3. Вы читаете это.
5. Вы не заметили что отсутствует пункт 4.
6. Вы сейчас это проверили.
7. Вы улыбаетесь.


Сообщение отредактировал danik_rok - Воскресенье, 12.06.2011, 14:44:24
 
СообщениеУ меня проблема, сделал ботов, а когда запускаю сервер они заходят и сразуже выходят я даже зайти неуспеваю, пробывал делать рестарты не помогает, в server.cfg max кол-во ботов настроенно, никак немогу понять почему они выходят

Автор - danik_rok
Дата добавления - 12.06.2011 в 14:43:27
Тех-поддержкаДата: Понедельник, 13.06.2011, 13:42:14 | Сообщение # 12

Группа: Администраторы
Сообщений: 82
danik_rok, проверь все ли ты правильно сделал в pawno.exe роботов все указал верно и путь к ним?)


тех.поддержка!
В лс на тупые вопросы не отвечаю,это как pawno!
Тех.поддержка e-mail - support@samp-pawno.ru !
 
Сообщениеdanik_rok, проверь все ли ты правильно сделал в pawno.exe роботов все указал верно и путь к ним?)

Автор - Тех-поддержка
Дата добавления - 13.06.2011 в 13:42:14
danik_rokДата: Понедельник, 13.06.2011, 18:58:00 | Сообщение # 13

Группа: Проверенные
Сообщений: 317
Ну вроде все правильно, попробывал даже два бот пака скачать, тоже самое со всеми

Добавлено (13.06.2011, 18:58)
---------------------------------------------
А может чтото быть изза того что у меня в сервер паке сначало небыло npcmodes папки? 11


1. Вы сейчас в интернете.
2. Вы на сайте www.forum-pawno.net.ru.
3. Вы читаете это.
5. Вы не заметили что отсутствует пункт 4.
6. Вы сейчас это проверили.
7. Вы улыбаетесь.
 
СообщениеНу вроде все правильно, попробывал даже два бот пака скачать, тоже самое со всеми

Добавлено (13.06.2011, 18:58)
---------------------------------------------
А может чтото быть изза того что у меня в сервер паке сначало небыло npcmodes папки? 11


Автор - danik_rok
Дата добавления - 13.06.2011 в 18:58:00
adminДата: Вторник, 14.06.2011, 06:46:27 | Сообщение # 14

Группа: Администраторы
Сообщений: 3869
danik_rok, прошу тебя не флудить по 2 раза :) так же сделай чтоб все папки были у тебя на сервере и файлы в том же числа а вот моды фс стандартные можешь удалить а другое не в коем случие не удаляй!


zm-jail.ru

Разработка сайта samp-pawno.ru


 
Сообщениеdanik_rok, прошу тебя не флудить по 2 раза :) так же сделай чтоб все папки были у тебя на сервере и файлы в том же числа а вот моды фс стандартные можешь удалить а другое не в коем случие не удаляй!

Автор - admin
Дата добавления - 14.06.2011 в 06:46:27
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
02:52:21
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: