SA-MP Forums Archive
Скриптинг курилка - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Скриптинг курилка (/showthread.php?tid=111279)



Re: Скриптинг курилка - ZiGGi - 23.06.2016

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
В данный момент у меня есть такой код:
PHP код:
stock GetPlayerID(name[]) { 
    for(new 
playerid 0playerid <= GetPlayerPoolSize(); playerid++) { 
        if(!
IsPlayerConnected(playerid)) continue; 
        if(!
strcmp(namePlayerInfo[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_idpacket_idBitStream:bs)
{
    if(
packet_id == ID_PLAYER_SYNC)
    {
        new 
surfingvehidFloatsurfingoffsets[3];
        
BS_SetReadOffset(bs408); // packet id + unused data
        
BS_ReadValue(bsRNM_FLOATsurfingoffsets[0], RNM_FLOATsurfingoffsets[1], RNM_FLOATsurfingoffsets[2], RNM_UINT16surfingvehid);
        if(
surfingvehid != && surfingvehid != INVALID_VEHICLE_ID)
        {
            new 
model GetVehicleModel(surfingvehid);
            
            if(!(
400 <= model <= 611))
            {
                
//невалидная машина, возможно читер
            
}
            else
            {
                new 
Floatbiggest_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

Не до конца понял. Просто в игре например пишешь /смс [ид_игрока] [текст], и этому игроку в чате пишет сообщение?)