Просмотр полной версии : [Вопрос] Стример блокирует NPC бота.
Ребятушки добрый вечер, не кто не знает почему стример блокирует NPC бота.. Дело именно в нем, ибо подключал без него, бот заходил и подключался, включил стример, бот подключился и отключился сразу же.. С этого я и сделал выводы, что стример блочит бота... Не знаю как быть, и стример нужен для погрузки объектов + текстур, и бот нужен, для реализации идей!
p.S : Кто сталкивался с таким?
- - - Добавлено - - -
[20:08:05] Incoming connection: 127.0.0.1:3768
[20:08:06] [npc:join] [BOT]CJ has joined the server (0:127.0.0.1)
[20:08:06] [npc:part] [BOT]CJ has left the server (0:2)
Archange
14.09.2014, 22:14
Какая версия Streamer?
Какая версия Streamer?
Licensed under the Apache License, Version 2.0 (the "License");
Залогируйте каждый коллбэк, вызываемый во время подключения игрока к серверу и посмотрите на каком из коллбэков бота кикает
v2.7.4
- - - Добавлено - - -
Залогируйте каждый коллбэк, вызываемый во время подключения игрока к серверу и посмотрите на каком из коллбэков бота кикает
Я загружаю через ФС, пробовал через ongamemodeinit.. Так же само.. Через инклуд пробовал.
v2.7.4
- - - Добавлено - - -
Я загружаю через ФС, пробовал через ongamemodeinit.. Так же само.. Через инклуд пробовал.
Я, конечно, рад за вас, но сделайте то, что я от вас просил
Я, конечно, рад за вас, но сделайте то, что я от вас просил
Если честно я не понял.. :blush:
Если честно я не понял.. :blush:
В начало каждого public вставьте
print("Текст");
Где вместо "Текст" будет название public. И после включите мод. Как только бота кикнет, скиньте логи
Мод пустой или готовый? Там в OnPlayerConnect надо return 1 поставить при условии бота.
Не знаю я то сделал или нет.. Вот что вышло..
[21:03:10] Number of vehicle models: 7
[21:03:10] Incoming connection: 127.0.0.1:1876
[21:03:10] [npc:join] [BOT]CJ has joined the server (0:127.0.0.1)
[21:03:10] OnPlayerConnect
[21:03:10] OnPlayerRequestClass
[21:03:11] kick
[21:03:11] OnPlayerDisconnect
[21:03:11] [npc:part] [BOT]CJ has left the server (0:2)
[21:03:11] AFKCheck
- - - Добавлено - - -
Мод пустой или готовый? Там в OnPlayerConnect надо return 1 поставить при условии бота.
Мод пишу сам с 0..
- - - Добавлено - - -
Не знаю я то сделал или нет.. Вот что вышло..
[21:03:10] Number of vehicle models: 7
[21:03:10] Incoming connection: 127.0.0.1:1876
[21:03:10] [npc:join] [BOT]CJ has joined the server (0:127.0.0.1)
[21:03:10] OnPlayerConnect
[21:03:10] OnPlayerRequestClass
[21:03:11] kick
[21:03:11] OnPlayerDisconnect
[21:03:11] [npc:part] [BOT]CJ has left the server (0:2)
[21:03:11] AFKCheck
- - - Добавлено - - -
Мод пишу сам с 0..
Стои..
- - - Добавлено - - -
Мод пустой или готовый? Там в OnPlayerConnect надо return 1 поставить при условии бота.
Стоит**
код OnPlayerRequestClass в студию
public OnPlayerRequestClass(playerid, classid)
{
print("OnPlayerRequestClass");
// SetPVarInt(playerid, "TPS", TogglePlayerSpectating(playerid, true));
//----------------------------------------------------------------------|
//SetPlayerPos(playerid, 0.0, 0.0, 0.0); // Положение игрока.
//SetPlayerCameraPos(playerid, 1649.8954,-1013.8740,137.4525); // Камера
//SetPlayerCameraLookAt(playerid, 1649.8954,-1013.8740,137.4525); // Камера
//----------------------------------------------------------------------|
//
switch(PAccount[playerid])
{
case 1:
{
//if(PAccount[playerid] == 1)// Если аккаунт есть
new string[256],playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,sizeof(playername));
format(string, 256, "Добро пожаловать на сервер: "DR" "servername" \n\n"W"Ваш аккаунт зарегистрирован на сервере!\nВаш игровой логин:"DR" %s \n\n"W"Введите ваш пароль в поле ниже:", playername);
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, " "DR"~Авторизация аккаунта~ ", string, "Далее", "");
}
case 0:
//else// Если аккаунта нет
{
SendClientMessage(playerid, -1, ""); SendClientMessage(playerid, -1, ""); SendClientMessage(playerid, -1, ""); SendClientMessage(playerid, -1, ""); SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, -1, ""); SendClientMessage(playerid, -1, ""); SendClientMessage(playerid, -1, ""); SendClientMessage(playerid, -1, ""); SendClientMessage(playerid, -1, "");
SendClientMessage(playerid, 0xF0F0F0FF, "Выбирайте пароль посложнее, состоящий из символов разного регистра, с цифрами и [для абсолютной надёжности] знаками препинания.");
SendClientMessage(playerid, 0xF0F0F0FF, "Не используйте пароль, связанный с теми данными, которые могут быть о вас известны, например, ваше имя или дату рождения.");
SendClientMessage(playerid, 0xF0F0F0FF, "Пример пароля : Цифры, регистр : HTs2mwo0 Слово и число : hyeb8207 Простой пароль : aylnccsm");
new string[256],playername[MAX_PLAYER_NAME];
GetPlayerName(playerid,playername,sizeof(playername));
format(string, 256, "Добро пожаловать на сервер: "DR" "servername" \n\n"W"Ваш аккаунт не зарегистрирован на сервере!\nВаш игровой логин:"DR" %s \n\n"W"Для начала игры необходимо пройти регистрацию\nВведите ваш будующий пароль в поле ниже:", playername);
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, " "G"~Регистрация аккаунта~ ", string, "Далее", "");
//ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация аккаунта","{FAFAFA}Зарегистрируйтесь введя пароль в окошко\n{Выбирайте пароль посложнее, состоящий из символов разного регистра, с цифрами и [для абсолютной надёжности] знаками препинания.\nНе используйте пароль, связанный с теми данными, которые могут быть о вас известны, например, ваше имя или дату рождения.\n{FF0A00}Пример пароля : Цифры, регистр : HTs2mwo0 Слово и число : hyeb8207 Простой пароль : aylnccsm","Ввод","");
}
}
return 1;
}
Так и где у вас тут проверки на ботов? Или у вас боты умеют нажимать на кнопки в диалоговых окнах и вводить пароли?
Так и где у вас тут проверки на ботов? Или у вас боты умеют нажимать на кнопки в диалоговых окнах и вводить пароли?
Так что мне сделать, подскажите, пожалуйста...
Использовать функцию IsPlayerNPC, дабы боты могли обходить авторизацию/античиты и прочее, что может их как-то остановить
Использовать функцию IsPlayerNPC, дабы боты могли обходить авторизацию/античиты и прочее, что может их как-то остановить
Я так и делаю, но странности происходят когда я подключаю стример!! без него все работает отлично...
#define RECORDING "HELP" //This is the filename of your recording without the extension.
#define RECORDING_TYPE 2 //1 for in vehicle and 2 for on foot.
#include <a_samp>
new cjcar;
public OnGameModeInit()
{
ConnectNPC("[BOT]CJ","HELP");
cjcar = AddStaticVehicle(454,0,0,0,0,26,26); // car
}
public OnPlayerSpawn(playerid)
{
if(IsPlayerNPC(playerid)) //Checks if the player that just spawned is an NPC.
{
new npcname[64];
GetPlayerName(playerid,npcname,64);
if(!strcmp(npcname,"[BOT]CJ",true))
{
PutPlayerInVehicle(playerid, cjcar, 2);
SetPlayerColor(playerid,0x0000BBAA);
SetPlayerSkin(playerid, 171);
return 1;
}
return 0;
}
return 1;
}
underwoker
15.09.2014, 18:13
if(IsPlayerNPC(playerid)) return true;
Используйте в паблике где у вас бот отключается.
if(IsPlayerNPC(playerid)) return true;
Используйте в паблике где у вас бот отключается.
Увы, не помогло..
В OnPlayerConnect/OnPlayerRequestClass и прочие коллбеки добавьте тот код, что дали выше:
if(IsPlayerNPC(playerid)) return true;
Либо поменяйте версию стримера, но вряд ли это поможет, ибо сейчас бот тупо не может пройти авторизацию
В OnPlayerConnect/OnPlayerRequestClass и прочие коллбеки добавьте тот код, что дали выше:
if(IsPlayerNPC(playerid)) return true;
Либо поменяйте версию стримера, но вряд ли это поможет, ибо сейчас бот тупо не может пройти авторизацию
Не помогло, да уж, стример менял, так же...
Не помогло, да уж, стример менял, так же...
Значит дело не в стримере, а вы где-то забыли добавить нужные проверки. У всех остальных же всё работает.
Показывайте как делали то, что вам не помогло
Как не в нем! смотрите, я беру старую версию сервер без стримера (Копия 3 месяца назад), запускаю копию, бот работает, запускаю копию со стримером, бот выходит! значит??? дело в стримере!
- - - Добавлено - - -
ах да, проверки чего?, в самом gamemode что то нужно делать или что?..
Как не в нем! смотрите, я беру старую версию сервер без стримера (Копия 3 месяца назад), запускаю копию, бот работает, запускаю копию со стримером, бот выходит! значит??? дело в стримере!
Я запускаю любой мод, подключаю к нему стример и следом подключаю бота. Всё работает! Значит что? Дело в вашем коде!
http://breedpmnr.ru/i/EC52657
Либо у вас какая-то система блокирует бота и тот просто выходит, либо у вас есть код, вызывающий какой-то баг стримера, заставляющий отсоединиться бота. Хотя как вы себе представляете то, что стример кикает бота? Откуда у него такие полномочия вдруг появились? (если вы внимательно посмотрите логи, вы увидите, что бот не вылетел, а именно кикнут)
ах да, проверки чего?, в самом gamemode что то нужно делать или что?..
Проверку на то, бот ли подключается или игрок. Как вы прикажете боту проходить вашу систему авторизации или какую-то другую защитную систему?
2.7.4 у меня стример!, может на этой версии баги?, попробую который у вас на скришоте, установить..
- - - Добавлено - - -
Собственно v 2.6.1 :(
http://i.imgur.com/QHoR8DI.png
Уфф, сделайте то, что я вам сказал ещё в самом начале и покажите то, как вы реализовали сказанное мной. Дело именно в ваших руках, а не в стримере или сампе
Вообщем что я сделал..
В паблики:
OnPlayerSpawn
OnPlayerConnect
Поставил следующие:
if(IsPlayerNPC(playerid))return 1;
И заработало!
DeimoS Огромное спасибо что сказал поставить проверки, догнал потом как.
Вообщем что я сделал..
В паблики:
OnPlayerSpawn
OnPlayerConnect
Поставил следующие:
if(IsPlayerNPC(playerid))return 1;
И заработало!
DeimoS Огромное спасибо что сказал поставить проверки, догнал потом как.
Соответствующие проверки нужны и в различных античитах, дабы ботов не кикало.
Не за что =) Закрыто
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot