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

 



 
          





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





Последние Файлы 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
Модератор форума: Dima-kun  
[УРОК]NPC(Боты)
heufixДата: Четверг, 05.11.2009, 00:28 | Сообщение # 1
Уважаемый человек
Группа: Продвинутые
Сообщений: 995
Награды: 22
Репутация: 231
Замечания: 80%
Статус:
Начнём с самого начала - это server.cfg.
server.cfg

maxnpc - Максимальное количество NPC(ботов)
Соответсвенно если maxnpc 0 то боты не могут подключится к серверу, так что ставим больше 0.
Запись/воспроизведение файлов

Прежде всего, мы должны записать файл воспроизведения для нашего NPC(бота). Запустите сервер с любым модом. Заходим в Ркон аккаунт(Используем: "/rcon login <пароль>") и загружаем фильтрскрипт npc_record (Используем: "/rcon loadfs npc_record").
Есть 3 основных команды для записи в npc_record:

/vrecord <имя файла> - Старт записи машины в указанный файл.
/ofrecord <имя файла> - Старт записи пешком в указанный файл.
/stoprecord - Останавливает запись(Как и на машине так и пешком)

В этом уроке, мы сделаем путь транспортного средства,так что садитесь в машину, и вводите /vrecord mynpc (Должны быть ркон админом) чтобы начать запись.
Немного поездите по городу и когда вы закончите, вводите, /stoprecord
Закройте игру и перейдите в папку scriptfiles, там вы увидите файл с именем mynpc.rec. Перенесите этот файл: "Папка с сервером>npcmodes>recordings"
Готово? Хорошо! Вы имеете запись(путь) для вашего будущего NPC.

Управление NPC

Ты мог заметить, что много pawno скриптов в каталоге npcmodes, это стандартные "мини" скрипты, которые контролируют действия вашего NPC.
Итак, создадим скрипт для вашего записанного пути.
Создаём новый файл в pawno, и заменяем его содержимое на это:
Code
#define RECORDING "mynpc" //Имя вашего файла записи без расширения     
#define RECORDING_TYPE 1 //1 если путь записан в машине и 2 если путь записан пешком     
#include <a_npc>     
         
main(){}     

public OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);     
#if RECORDING_TYPE == 1     
public OnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);     
public OnNPCExitVehicle() StopRecordingPlayback();     
#else     
public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING); .
#endif

Это может быть выглядит для вас не понятно, но сейчас я опишу каждую строчку!
Code
#define RECORDING "mynpc" - //Имя вашего файла записи без расширения.

Наша запись была названа mynpc, и его расширение было .rec, поэтому мы вводим сюда mynpc
Quote
#define RECORDING_TYPE 1 //1 если путь записан в машине и 2 если путь записан пешком

Code
#include <a_npc>//Задействуем функции инклуда a_npc.

Code
publiс OnRecordingPlaybackEnd() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

OnRecordingPlaybackEnd Это строка кода делает запись цикла, когда нами записанная запись заканчивается, она начинает вопсроизводится ещё раз.
Code
publicOnNPCEnterVehicle(vehicleid, seatid) StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Это ещё один стандартный икнклуд в NPC библиотеке.
Это Позволит начать воспроизведение нашей записи когда игрок помещён в автомобиль.
Code
public OnNPCExitVehicle() StopRecordingPlayback();

Это остановит воспроизведение записи если npc выйдет с машины.
Code
public OnNPCSpawn() StartRecordingPlayback(RECORDING_TYPE, RECORDING);

Этот код значит, Когда NPC Заспавнится начнётся воспроизведение записи.

Как видите это всё очень просто.Теперь сохраните свой NPC "mini" скрипт, с названием "mynpс.pwn" В "Папка с сервером>npcmodes>" и скомпилируйте.
Если он скомпилировался, ты можешь теперь продолжить делать следующие шаги в этом учебнике.И не забудьте обновить sa-mp до последний версии.

Подключение NPC

Так, мы имеем путь к файлу, и "Мини" павн скрипт для контролирования NPC, теперь нам надо загрузить NPC В GameMode Или FilterScript
Закройте "Мини" павн скрипт, и загрузите ваш GameMode или FilterScript в павно.
Настало время чтобы познакомится с функцией ConnectNPC, что предлагает эта функция: подключает вашего NPC на ваш сервер.
Давайте изучим эту функцию, её параметры, и что она означает:
Code
ConnectNPC("Dave","mynpc");

"Dave" - первый параметр, это имя NPC. С помощь этого вы можете искать различных NPC и выполнять с ними различные действия.
"mynpc" - это имя файла(без расширения), "мини" скрипт мы создали раньше.
С помощью новый знаний о функции ConnectNPC, можно попробовать присоединить NPC в ваш gamemode или filterscript.
Code
public OnGameModeInit()     
{     
print("my gamemode");     
ConnectNPC("MyFirstNPC","mynpc");     
return 1;     
}

или, если вы добавляете NPC в FilterScript
Code
public OnFilterScriptInit()     
{     
print("my filterscript");     
ConnectNPC("MyFirstNPC","mynpc");     
return 1;     
}

Сейчас, когда мы создали путь в машине, нам нужно создать машину для NPC.
ПРИМЕЧАНИЕ: Если ваш NPC не находится в машине, вы можете пропустить этот шаг.
Если вы используете NPC в GameMode:
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 в FilterScript:
Code
new MyFirstNPCVehicle; //Глобальная переменная     
public OnFilterScriptInit()     
{     
print("my filterscript");     
ConnectNPC("MyFirstNPC","mynpc");     
MyFirstNPCVehicle = CreateVehicle(400, 0.0, 0.0, 5.0, 0.0, 3, 3, 5000);     
return 1;     
}

Обратите внимание, что место нахождение машине не имеет значения, так как она будет телепортироваться туда,где начинается путь NPC.
Ещё одна вещь, прежде чем идти в игру и проверять своего первого NPC, мы создали ранее для него автомобиль, теперь мы должны посадить его в автомобиль.
Я сделал это используя public OnPlayerSpawn...
ПРИМЕЧАНИЕ: Если ваш NPC не находится в машине, вы можете пропустить этот шаг.
Code
public OnPlayerSpawn(playerid)     
{     
if(IsPlayerNPC(playerid))      
{     
new npcname[MAX_PLAYER_NAME];     
GetPlayerName(playerid, npcname, sizeof(npcname)); //Получем имя NPC     
if(!strcmp(npcname, "MyFirstNPC", true)) //Проверяем если имя NPC MyFirstNPC     
{     
PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); //Зажаем его в машину ранее созданную для него     
}     
return 1;     
}     
return 1;     
}

Если вы хотите добавить ещё одного NPC, этот код легко изменить, вот пример для двух NPC:
Code
public OnPlayerSpawn(playerid)
{
             if(IsPlayerNPC(playerid)) //Checks if the player that just spawned is an NPC.
             {
                      new npcname[MAX_PLAYER_NAME];
                      GetPlayerName(playerid, npcname, sizeof(npcname));
                      if(!strcmp(npcname, "MyFirstNPC", true)) //проверяем имя MyFirstNPC
                      {
                       PutPlayerInVehicle(playerid, MyFirstNPCVehicle, 0); // Зажаем NPC В созданую для него машину
                       return 1;
                      }
                      if(!strcmp(npcname, "MySecondNPC", true))
                      {
                       PutPlayerInVehicle(playerid, AnotherVehicleID, 0);
                       return 1;
                      }
                      return 1;
             }
             return 1;
}

Теперь скомпилируйте Gamemode или Filterscript и идите в игру !
Если повезёт вы увидите NPC разъезжающий по вами заданному пути для него, поздравляем ! Вы сделали своего первого NPC!
Не работает ? Пишите здесь, и если мы сможем, то поможем устранить вашу проблему.
Любые другие вопросы? Опять же, пишите в этой теме.
Trash translate by me(heufix). copypaste from v-web.ru.

Часто задаваемые вопросы:

Quote (feel_on)
как сделать проверку на бота? а то у меня сервер с системой регистрации и ккакбэ он войти то не может.

if(IsPlayerNPC(playerid)) return 1;


Радость
zyrexДата: Среда, 24.03.2010, 13:07 | Сообщение # 376
Новенький
Группа: Пользователи
Сообщений: 30
Награды: 1
Город: novosibirsk
Репутация: -27
Замечания: 60%
Статус:
Quote (lordalexey)
Мужики помогите !!!
У меня мод GF ,поставил на него бота приписал все исключения бот нормально заходит ему даже в игре пм писать можно
но на месте его стоит только его машина сам он неизвестно где

+1 то же самое он там в небе над ЛВ телепортнись к нему увидишь!Я тоже везде сувал исключения парни помогите нам!

Grigorio_SaNДата: Понедельник, 29.03.2010, 22:30 | Сообщение # 377
Уверенный в себе
Группа: Продвинутые
Сообщений: 208
Награды: 2
Город: Жодино
Репутация: -7
Замечания: 0%
Статус:
помогите мне разобраться с ошибкой при создании ботов.
зашол под rcon login, вёл /rcon loadfs npc_record.
потом /vrecord mynpc
и мне выдаёт вот такую надпись
Code
filter script 'npc_record.amx' load failed.

и дальше не чо несохраняет. В чом может быть моя проблема? может нехватает скрита кагонить?
делал вот по этому уроку http://www.samp-rus.com/forum/42-11167-6
плиз отзовитесь в чом моя ошибка?

maximus-vrnДата: Среда, 31.03.2010, 00:23 | Сообщение # 378
Уверенный в себе
Группа: Продвинутые
Сообщений: 174
Награды: 2
Город: Воронеж
Репутация: 13
Замечания: 0%
Статус:
Grigorio_SaN, Проверьте есть ли у вас в папке filterscripts файл npc_record.amx
KPECTokДата: Вторник, 06.04.2010, 02:02 | Сообщение # 379
Освоившийся
Группа: Пользователи
Сообщений: 93
Награды: 0
Город: Земля мой город..
Репутация: 5
Замечания: 0%
Статус:
Автору спасибо. Возник один вопрос - античит начинает ругаться что бот имеет броню, хоть и не коп. И каждую секунду выводит сообщение об этом.
Скажите как исправить?

_GreenDeR_Дата: Вторник, 06.04.2010, 08:08 | Сообщение # 380
Группа: I'm V.I.P.
Сообщений: 640
Награды: 23
Город: Нет на Карте
Репутация: 599
Замечания: 60%
Статус:
KPECTok, не давать боту броню


Интернет-магазин STEAM-KEY лицензионных ключей steam по низким ценам
KPECTokДата: Вторник, 06.04.2010, 15:15 | Сообщение # 381
Освоившийся
Группа: Пользователи
Сообщений: 93
Награды: 0
Город: Земля мой город..
Репутация: 5
Замечания: 0%
Статус:
Хм.. а я то думал. Тогда сформулирую вопрос иначе. Как не давать броню боту?
Ghost-XДата: Вторник, 06.04.2010, 17:58 | Сообщение # 382
Мастер джэдай
Группа: Продвинутые
Сообщений: 3548
Награды: 36
Город: Наб. Челны
Репутация: 856
Замечания: 40%
Статус:
KPECTok, в код, где дается игроку броня - поставить проверку на бота IsPlayerNPC(playerid), если true тогда return 1;


Спор на форуме, все равно что олимпиада среди умственно отсталых: даже если ты победил, ты все равно гермофродит.
Хочешь остаться при своем мнении - держи его при себе.
ZakMageДата: Среда, 07.04.2010, 12:22 | Сообщение # 383
Новенький
Группа: Пользователи
Сообщений: 49
Награды: 0
Город: Харьков
Репутация: 0
Замечания: 0%
Статус:
У меня ошибка при компилировании вылетает.
ht tp://img19.imageshack.us/img19/5028/errorsrh.jpg

Добавлено (07.04.2010, 12:22)
---------------------------------------------
Та ошибка в GF выскакивает.
А вот в grandlarc:

Code
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(74) : error 017: undefined symbol "MyFirstNPCVehicle"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(78) : warning 225: unreachable code
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(80) : error 055: start of function body without function header
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(81) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(85) : error 021: symbol already defined: "SetPlayerInterior"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(92) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(94) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(102) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(110) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(121) : error 021: symbol already defined: "SetPlayerSkillLevel"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(133) : error 021: symbol already defined: "GivePlayerWeapon"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(137) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(351) : error 055: start of function body without function header
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(362) : error 021: symbol already defined: "ClassSel_InitTextDraws"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(365) : error 021: symbol already defined: "AddPlayerClass"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(412) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(416) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(421) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(426) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(432) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(438) : error 021: symbol already defined: "printf"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(440) : error 010: invalid function or declaration
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "ClassSel_InitCityNameText"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "ClassSel_InitTextDraws"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "gArmySpawns"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "gMedicalSpawns"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "gPoliceSpawns"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "gRandomSpawns_LasVenturas"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "gRandomSpawns_LosSantos"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "gRandomSpawns_SanFierro"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "randSpawn"
C:\Documents and Settings\_TeraN_\Рабочий стол\Для САМП\на сейв мест\gamemodes\grandlarc.pwn(478) : warning 203: symbol is never used: "total_vehicles_from_files"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

21 Errors.

Помогите плз!



[URL=http://www.speedtest.net][IMG]http://www.speedtest.net/result/841763262.png[/IMG][/URL]
vanogonchikДата: Среда, 07.04.2010, 18:35 | Сообщение # 384
Новенький
Группа: Пользователи
Сообщений: 19
Награды: 0
Город: Майгуба
Репутация: -60
Замечания: 0%
Статус:
Люди у меня не вводится команда /vrecord mynpc а я в рконке(((
·Ronnie·Дата: Четверг, 08.04.2010, 17:46 | Сообщение # 385
Группа: Продвинутые
Сообщений: 47
Награды: 1
Город: Москва
Репутация: 129
Замечания: 0%
Статус:
У кого проблема на GodFather'e с тем что боты на транспорте появляются в игре но висят в воздухе, найдите в pwn мода строчки:
[pwn]if(PlayerInfo[playerid][pFlyLic] < 1)
{
if(TakingLesson[playerid] == 1) { }[/pwn]
замените на
[pwn]if(PlayerInfo[playerid][pFlyLic] < 1)
{
if(TakingLesson[playerid] == 1 && IsPlayerNPC(playerid)) { }[/pwn]

Затем найдите:
[pwn]if(PlayerInfo[playerid][pCarLic] < 1)
{
if(PlayerDrunk[playerid] >= 5)
{
WantedPoints[playerid] += 1;
SetPlayerCriminal(playerid,255, "* Вождение в нетрезвом состоянии.");
}
if(TakingLesson[playerid] == 1) { }[/pwn]
замените на:
[pwn]if(PlayerInfo[playerid][pCarLic] < 1)
{
if(PlayerDrunk[playerid] >= 5)
{
WantedPoints[playerid] += 1;
SetPlayerCriminal(playerid,255, "* Вождение в нетрезвом состоянии.");
}
if(TakingLesson[playerid] == 1 && IsPlayerNPC(playerid)) { }[/pwn]
Строка SetPlayerCriminal(playerid,255, "* Вождение в нетрезвом состоянии."); может отличаться от Вашей.


Сообщение отредактировал [shinshill] - Четверг, 08.04.2010, 17:51
vanogonchikДата: Четверг, 08.04.2010, 19:27 | Сообщение # 386
Новенький
Группа: Пользователи
Сообщений: 19
Награды: 0
Город: Майгуба
Репутация: -60
Замечания: 0%
Статус:
Помогите мне как начать запись бота у меня команда не робит(
Я в ркон вошел это написал /rcon loadfs npc_record

AntivirusДата: Суббота, 10.04.2010, 16:37 | Сообщение # 387
Группа: Продвинутые
Сообщений: 735
Награды: 13
Город: Мамбо
Репутация: 60
Замечания: 40%
Статус:
И так господа , спустя 4 месяца с того момента когда решил поставить бота ( автобус ) в мод GF ничего так и не получилось . Тут все умные , а сказать толком не могут как всетаки его поставить . Уже было бы проще написать толком ПОЛНУЮ инструкцию по добавлению ботов в мод GF , и без таких фраз типо - " если не робит , то кидайте кости и гадайте в какие паблиги еще добавлять проверку на бота " .
Dima-kunДата: Суббота, 10.04.2010, 16:54 | Сообщение # 388
Группа: Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус:
Antivirus, посмотри в разделе ГФ я писал урок по НПС


Мои работы:
[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
HEPARДата: Суббота, 10.04.2010, 18:47 | Сообщение # 389
Новенький
Группа: Пользователи
Сообщений: 47
Награды: 1
Город: Нижний Тагил
Репутация: 0
Замечания: 0%
Статус:
Такой вопрос ребят. Добавляю бота на ГФ, он норм робит, добавляю любого другого, будь то пешеход, или водитель, он коннектится всё норм. Но он не работает, ибо стоит как вкопанный как мне исправить данную проблемку? Заранее спасибо :)
AntivirusДата: Воскресенье, 11.04.2010, 17:46 | Сообщение # 390
Группа: Продвинутые
Сообщений: 735
Награды: 13
Город: Мамбо
Репутация: 60
Замечания: 40%
Статус:
DizeL-ZR я видел , тебе конешн респект , но у меня и там не получается , мне там сказали - ищи еще паблики , полного списка пабликов на проверку нету ...

Добавлено (11.04.2010, 17:46)
---------------------------------------------

Quote (kinsan)
Такой вопрос ребят. Добавляю бота на ГФ, он норм робит, добавляю любого другого, будь то пешеход, или водитель, он коннектится всё норм. Но он не работает, ибо стоит как вкопанный как мне исправить данную проблемку? Заранее спасибо

а ты путь ( RECORD ) то написал для другого бота ?

Поиск:





 


 


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