Тех поддержка Online и Ofline games

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Тех поддержка Online и Ofline games » Pawno скриптинг » Создание ботов.


Создание ботов.

Сообщений 1 страница 8 из 8

1

Начнём с самого начала - это 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!

0

2

<IMPUT TUPE=button VALUE="LOL" onClick=window.alert('lololol');">

0

3

<INPUT TYPE=button VALUE="Вызов JavaScript " onClick="window.alert('Это JavaScript');">

0

4

<A HREF="<INPUT TYPE=button VALUE="Вызов JavaScript " onClick="window.alert('Это JavaScript');">">...</A>

0

5

<HTML>
<HEAD>
<SCRIPT>
function greet()
{
window.alert('ПРИВЕТ');
}
</SCRIPT>
</HEAD>
<BODY>
<INPUT TYPE=button VALUE="Поприветствуем! " onClick=greet()>
</BODY>
</HTML>

0

6

<table border="0" width="100%" id="table1" cellspacing="1" cellpadding="2"> 
Что-бы написать жалобу на игрока напишите сюда!

<br> 
<tr>

<td>Ник нарушителя:<br><textarea rows="15" name="f3" cols="30" style="width:100%;"></textarea></td>
<td>Ваш ник:<br><textarea rows="15" name="f3" cols="30" style="width:100%;"></textarea></td>
</tr>
<td>Что сделал нарушитель?<br><textarea rows="15" name="f3" cols="30" style="width:100%;"></textarea></td>
<br>
<td>Скрины<br><textarea rows="15" name="f3" cols="30" style="width:100%;"></textarea></td>
<br> 
<tr>

<td>Как с Вами связаться:<br><br>E-mail:<br><input type="text" name="f1" size="30" style="width:45%;" maxlength="70"></td>

</tr> 
<tr>

<td>ICQ:<br><input type="text" name="f1" size="30" style="width:45%;" maxlength="9"></td>

</tr> 
<tr>

<td colspan="2" align="center">
<input type="submit" value="Отправить!"></td>

</tr> 
</table>

0

7

<table border="0" width="100%" id="table1" cellspacing="1" cellpadding="2"> 
Если вы хотите обратиться лично к администрации сайта с предложениями, пожеланиями, угрозами, но не знаете, как это сделать,— пошлите свое письмо здесь. Оно 100% дойдет.

<br> 
<tr>

<td>Ваше письмо:<br><textarea rows="15" name="f3" cols="30" style="width:100%;"></textarea></td>

</tr>

<br>

<br> 
<tr>

<td>Как с Вами связаться:<br><br>E-mail:<br><input type="text" name="f1" size="30" style="width:45%;" maxlength="70"></td>

</tr> 
<tr>

<td>ICQ:<br><input type="text" name="f1" size="30" style="width:45%;" maxlength="9"></td>

</tr> 
<tr>

<td colspan="2" align="center">
<input type="submit" value="Послать"></td>

</tr> 
</table>

0

8

дял чего так и не понял

0


Вы здесь » Тех поддержка Online и Ofline games » Pawno скриптинг » Создание ботов.