Re: Скриптинг курилка -
ZiGGi - 23.06.2016
Quote:
Originally Posted by Kolstin
В данный момент у меня есть такой код:
PHP код:
stock GetPlayerID(name[]) {
for(new playerid = 0; playerid <= GetPlayerPoolSize(); playerid++) {
if(!IsPlayerConnected(playerid)) continue;
if(!strcmp(name, PlayerInfo[playerid][pName], true)) {
return playerid;
}
}
return INVALID_PLAYER_ID;
}
/*
PlayerInfo[playerid][pName] - Переменная которая хранит имя игрока. При коннекте записывается, при дисконнекте очищается.
*/
Хочу сделать тоже самое, только через sscanf ( Потому что этот вариант быстрей работает):
PHP код:
stock GetPlayerID(name[]) {
new playerid;
sscanf(name, "u", playerid);
return playerid;
}
Только возникла проблема, через sscanf оно может также искать по части ника, а мне нужно это отключить.
|
Опиши где ты используешь эту функцию, что-то я не вижу области применения для неё.
Re: Скриптинг курилка -
Romz - 23.06.2016
Например,
команда offban:
PHP код:
new userID = GetPlayerID("ИМЯ_ИГРОКА");
if(IsPlayerConnected(userID)) {
Kick(userID);
}
Re: Скриптинг курилка -
ZiGGi - 23.06.2016
Quote:
Originally Posted by Kolstin
Например, команда offban:
PHP код:
new userID = GetPlayerID("ИМЯ_ИГРОКА");
if(IsPlayerConnected(userID)) {
Kick(userID);
}
|
Можно использовать обычный sscanf с u, затем проверять количество совпадений, и, в случае их наличия, выдавать сообщение об ошибке и показывать список найденных игроков. Так будет гораздо удобнее.
Пример кода это реализующее можно найти здесь:
https://sampforum.blast.hk/showthread.php?tid=602923
Я реализовывал команду /id, которая выводит список всех игроков, ники которых совпадают с введённой частью. Плюс к этому, введённая часть у каждого ника подсвечивается, посмотреть можно
здесь, может пригодится.
Re: Скриптинг курилка -
Mcc - 23.06.2016
crashdetect не отображает строки с ошибками в логе. Только какие то цифры в скобках. Че это?
Компилирую всегда с ключом -d. Как надо при нем всплывает информация об используемой памяти, а на строки не указывает, только на каллбеки.
Кто то подскажет что нибудь?
Re: Скриптинг курилка -
ZiGGi - 23.06.2016
Quote:
Originally Posted by Mcc
crashdetect не отображает строки с ошибками в логе. Только какие то цифры в скобках. Че это?
Компилирую всегда с ключом -d. Как надо при нем всплывает информация об используемой памяти, а на строки не указывает, только на каллбеки.
Кто то подскажет что нибудь?
|
Надо компилировать с ключом -d2 или -d3.
Re: Скриптинг курилка -
Mcc - 23.06.2016
Имел ввиду -d3. Писал с дикого спросоня.
Решил возвратом родного-родимого компилятора, теперь все отлично.
Re: Скриптинг курилка -
stabker - 30.06.2016
Что-то я не врубаюсь, как такое возможно
https://*********/jltvc-GCFa0?t=1m49s
Чувак стоит в 10 метров от остальных, в том же виртуальном мире, в том же интерьере, в состоянии ON_FOOT, не АФК, но его никто не видит.
Как чит это делает?
Re: Скриптинг курилка -
cm666 - 30.06.2016
Quote:
Originally Posted by stabker
Что-то я не врубаюсь, как такое возможно https://*********/jltvc-GCFa0?t=1m49s
Чувак стоит в 10 метров от остальных, в том же виртуальном мире, в том же интерьере, в состоянии ON_FOOT, не АФК, но его никто не видит.
Как чит это делает?
|
Инвиз может ?
Re: Скриптинг курилка -
stabker - 30.06.2016
Quote:
Originally Posted by cm666
Инвиз может ?
|
Наверное. Поискал, и похоже на то, что из этого собейта
https://www.youtube.com/watch?v=nwNe4mRjXV8
Сегодня проверю.
Re: Скриптинг курилка -
Romz - 30.06.2016
Quote:
Originally Posted by stabker
Что-то я не врубаюсь, как такое возможно https://*********/jltvc-GCFa0?t=1m49s
Чувак стоит в 10 метров от остальных, в том же виртуальном мире, в том же интерьере, в состоянии ON_FOOT, не АФК, но его никто не видит.
Как чит это делает?
|
Если не ошибаюсь, у данного читера будет
surfingvehicleid равно 1, даже если данного транспорта нету рядом с игроком.
Re: Скриптинг курилка -
stabker - 01.07.2016
Короче, проблема в том, что этот чит (невидимка) присылает серверу невалидные координаты surfing offsets, из-за чего игрока не видно и админы "уходят в загрузку" при слежке. По ходу, адекватно отловить можно только через плагины.
Re: Скриптинг курилка -
YourShadow - 02.07.2016
Quote:
Originally Posted by stabker
Короче, проблема в том, что этот чит (невидимка) присылает серверу невалидные координаты surfing offsets, из-за чего игрока не видно и админы "уходят в загрузку" при слежке. По ходу, адекватно отловить можно только через плагины.
|
Могу посоветовать плагин RakNet Manager. Достаточно проверять значения surfing offsets на NaN.
Вот псевдокод (я был одним из тех, кто нашел этот способ невидимки в 2013), который показывает работу этой невидимки на стороне клиента:
PHP код:
stOnFootData::sSurfingVehicleID = nearestVehicleID;
stOnFootData::fSurfingOffsets[0] = NaN;
stOnFootData::fSurfingOffsets[1] = NaN;
stOnFootData::fSurfingOffsets[2] = NaN;
sendOnFootData();
Re: Скриптинг курилка -
stabker - 02.07.2016
Quote:
Originally Posted by YourShadow
Могу посоветовать плагин RakNet Manager. Достаточно проверять значения surfing offsets на NaN.
Вот псевдокод (я был одним из тех, кто нашел этот способ невидимки в 2013), который показывает работу этой невидимки на стороне клиента:
PHP код:
stOnFootData::sSurfingVehicleID = nearestVehicleID;
stOnFootData::fSurfingOffsets[0] = NaN;
stOnFootData::fSurfingOffsets[1] = NaN;
stOnFootData::fSurfingOffsets[2] = NaN;
sendOnFootData();
|
Я уже так и сделал
Спасибо за плагин.
Вот код, мб кому еще пригодится
PHP код:
#define ID_PLAYER_SYNC (207)
public OnPlayerReceivedPacket(player_id, packet_id, BitStream:bs)
{
if(packet_id == ID_PLAYER_SYNC)
{
new surfingvehid, Float: surfingoffsets[3];
BS_SetReadOffset(bs, 408); // packet id + unused data
BS_ReadValue(bs, RNM_FLOAT, surfingoffsets[0], RNM_FLOAT, surfingoffsets[1], RNM_FLOAT, surfingoffsets[2], RNM_UINT16, surfingvehid);
if(surfingvehid != 0 && surfingvehid != INVALID_VEHICLE_ID)
{
new model = GetVehicleModel(surfingvehid);
if(!(400 <= model <= 611))
{
//невалидная машина, возможно читер
}
else
{
new Float: biggest_axis = vehicle_size[model - 400][1];
if(vehicle_size[model - 400][0] > biggest_axis)
{
biggest_axis = vehicle_size[model - 400][0];
}
if(vehicle_size[model - 400][2] > biggest_axis)
{
biggest_axis = vehicle_size[model - 400][2];
}
biggest_axis *= 2.0;
if(surfingoffsets[0] != surfingoffsets[0] || surfingoffsets[1] != surfingoffsets[1] || surfingoffsets[2] != surfingoffsets[2] ||
!(-biggest_axis <= surfingoffsets[0] <= biggest_axis) || !(-biggest_axis <= surfingoffsets[1] <= biggest_axis) || !(-biggest_axis <= surfingoffsets[2] <= biggest_axis))
{
//читер
return 1;
}
}
}
}
return 1;
}
Меня, конечно, смущает, что все пакеты будут пропускаться через pawn...
UPD: На случай, если кто-то будет использовать этот код, учтите, что тут кроме NaN еще стоит проверка на серфиг за границами размера машины (по размерам самой большой оси * 2), и я не уверен, но скорее всего могут быть ошибочные кики, даже несмотря на всю предосторожность.
Re: Скриптинг курилка -
TheMallard - 02.07.2016
Существует ли адекватный способ слать email через SMTP?
Re: Скриптинг курилка -
Romz - 02.07.2016
Quote:
Originally Posted by TheMallard
Существует ли адекватный способ слать email через SMTP?
|
А в чем собственно проблема?
Re: Скриптинг курилка -
TheMallard - 03.07.2016
Нашел плагин от Владокса.
Re: Скриптинг курилка -
Romz - 03.07.2016
Quote:
Originally Posted by TheMallard
Нашел плагин от Владокса.
|
Можно без плагина обойтись.
Звук колокола при попадании -
Rusich - 03.07.2016
Приветствую. Есть ли у кого то скринт "При попадании в человека, или ударе, звучит колокол".
Sms по ID -
Rusich - 03.07.2016
Снова приветствую. Есть ли у кого то скрипт "SMS сообщение по ID"?
Re: Sms по ID -
Diman777 - 03.07.2016
Не до конца понял. Просто в игре например пишешь /смс [ид_игрока] [текст], и этому игроку в чате пишет сообщение?)