SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Closed Thread
 
Thread Tools Display Modes
Old 12/05/2013, 12:36 AM   #1
WINDAM
Little Clucker
 
Join Date: Jan 2012
Posts: 32
Reputation: -1
Default Антикреш от создания пустых объектов читерами

Случайно заметил что креш клиента происходил из за несуществующих объектов по коду ошибки
И действительно вылеты клиента часто происходят из за этого сам проверял.
натолкнула на решение этой проблемы вот эта тема http://forum.sa-mp.com/showthread.php?t=324206

pawn Code:
SetTimer("CheckObjects",15000,1);

forward CheckObjects();
public CheckObjects()
{
    for(new i = 1; i < 3000; i++)
    {
        if(i > 2504)//тупо если превышает ваше количество объектов удалять их
        {
            DestroyDynamicObject(i);
            printf("Object ID: %d", i);
        }
    }
    return 1;
}
протестировано работает настраивайте на своё усмотрение
чтобы посмотреть количество объектов на сервере через консоль можно сначала поставить вот этот скрипт
потом соответственно заменить на тот что выше
forward CheckObjects();
public CheckObjects()
{
    for(new i = 1; i < 3000; i++)
    {
        if(IsValidDynamicObject(i))
        {
            DestroyDynamicObject(i);
            printf("Object ID: %d", i);
        }
    }
    return 1;
}
если у вас нет стримера от инкогнито то используйте в скрипте вот эти функции IsValidObject(i) DestroyObject(i);

Last edited by Stepashka; 12/05/2013 at 05:55 AM.
WINDAM is offline  
Old 12/05/2013, 12:52 AM   #2
WINDAM
Little Clucker
 
Join Date: Jan 2012
Posts: 32
Reputation: -1
Default Re: Антикреш от создания пустых объектов читерами

Оказалось придётся проверять ещё и обычные объекты помимо стримера
в GemeModeInit();
PHP Code:
SetTimer("CheckObjects",3000,1); 
в конец мода
PHP Code:
forward CheckObjects();
public 
CheckObjects()
{
    for(new 
14000i++)//4000 - максимально возможное количество объектов стримера
    
{
        if(
IsValidDynamicObject(i))
        {
            if(
2504)//количество объектов CreateDynamicObject
            
{
                
DestroyDynamicObject(i);//удалять объект который по счёту больше 2504 количества серверных объектов
            
}
        }
    }
    for(new 
1MAX_OBJECTSi++)
    {
        if(
IsValidObject(i))
        {
            if(
96)//количество объектов CreateObject
            
{
                
DestroyObject(i);//удалять объект который по счёту больше 96 количества серверных объектов
            
}
        }
    }
    return 
1;


Last edited by WINDAM; 12/05/2013 at 03:01 AM.
WINDAM is offline  
Old 12/05/2013, 03:06 AM   #3
sniper-termit
Little Clucker
 
Join Date: Mar 2011
Posts: 45
Reputation: 0
Default Re: Антикреш от создания пустых объектов читерами

Quote:
Originally Posted by WINDAM View Post
//4000 - максимально возможное количество объектов стримера
Где вы увидели лимит в 4к объектов?

Quote:
Originally Posted by WINDAM View Post
public CheckObjects()
{
for(new i = 1; i < 3000; i++)
{
if(i > 2504)//тупо если превышает ваше количество объектов удалять их
{
DestroyDynamicObject(i);
printf("Object ID: %d", i);
}
}
return 1;
}
ох лол...
sniper-termit is offline  
Old 12/05/2013, 04:02 AM   #4
WINDAM
Little Clucker
 
Join Date: Jan 2012
Posts: 32
Reputation: -1
Default Re: Антикреш от создания пустых объектов читерами

Лимит объектов был на стримере от инкогнито, больше я бы не рискнул добавлять у меня их 2500 нагрузка на сервер 15 процентов
А насчёт скрипта первый блин комом
вот скрипт чтобы посчитать объекты Посмотреть можно в serverlog.txt
PHP Code:
else if (strcmp(cmd"/test"true) == 0)
    {
        new 
nobject[32];
        for(new 
14000i++)
        {
            if(
IsValidDynamicObject(i))
            {
                
format(nobject,sizeof(nobject),"%d",i);
                
SendClientMessageToAll(0x00B95CAA,nobject);
                
printf("DynamicObject ID: %d"i);
            }
        }
        for(new 
1MAX_OBJECTSi++)
        {
            if(
IsValidObject(i))
            {
                
format(nobject,sizeof(nobject),"%d",i);
                
SendClientMessageToAll(0x00B95CAA,nobject);
                
printf("Object ID: %d"i);
            }
        }
        return 
1;
    } 
WINDAM is offline  
Old 12/05/2013, 05:33 AM   #5
sniper-termit
Little Clucker
 
Join Date: Mar 2011
Posts: 45
Reputation: 0
Default Re: Антикреш от создания пустых объектов читерами

На этом стримере лимит объектов только вокруг тебя.
Нагрузка на сервер 15 процентов? 15 процентов чего? 15 процентов от чего?

PHP Code:
        new nobject[32]; 
        for(new 
14000i++) 
        { 
            if(
IsValidDynamicObject(i)) 
            { 
                
format(nobject,sizeof(nobject),"%d",i); 
                
SendClientMessageToAll(0x00B95CAA,nobject); 
                
printf("DynamicObject ID: %d"i); 
            } 
        } 
        for(new 
1MAX_OBJECTSi++) 
        { 
            if(
IsValidObject(i)) 
            { 
                
format(nobject,sizeof(nobject),"%d",i); 
                
SendClientMessageToAll(0x00B95CAA,nobject); 
                
printf("Object ID: %d"i); 
            } 
        } 
Зачем писать правильные объекты в лог, да еще и выводить для всех пользователей?
Подсчитать объекты? Это можно сделать например так


Или так
PHP Code:
        for(new 14000i++) 
        { 
            if(!
IsValidDynamicObject(i)) return printf("Valid objects: %d"i-1);  
        } 
sniper-termit is offline  
Old 12/05/2013, 07:04 AM   #6
White_116
High-roller
 
Join Date: Sep 2010
Location: Russia/116
Posts: 1,495
Reputation: 69
Default Re: Антикреш от создания пустых объектов читерами

Quote:
Originally Posted by WINDAM View Post
Случайно заметил что креш клиента происходил из за несуществующих объектов по коду ошибки
И действительно вылеты клиента часто происходят из за этого сам проверял.
натолкнула на решение этой проблемы вот эта тема http://forum.sa-mp.com/showthread.php?t=324206
Вы бы для начала дочитали ту тему и лишь потом предлагали решение. А клиент вылетает не из-за отсутствия объектов а из за отсутствии модели объекта или объект вызывает краш так как он связан со скриптами самой игры.
__________________

Last edited by White_116; 12/05/2013 at 07:38 AM.
White_116 is offline  
Old 12/05/2013, 07:34 AM   #7
stabker
High-roller
 
Join Date: Mar 2012
Posts: 1,311
Reputation: 86
Default Re: Антикреш от создания пустых объектов читерами

То ли автор действительно людям помочь хотел, то ли просто репутации заработать, но о работе стримера и правильном, экономном написании циклов у него 0 представления.
stabker is offline  
Old 12/05/2013, 12:55 PM   #8
Jon_De
High-roller
 
Join Date: Mar 2011
Location: ru
Posts: 1,246
Reputation: 21
Default Re: Антикреш от создания пустых объектов читерами

эм, а как читер объект создает? вся инфа об объектах на сервере хранится
Jon_De is offline  
Old 12/05/2013, 12:55 PM   #9
WINDAM
Little Clucker
 
Join Date: Jan 2012
Posts: 32
Reputation: -1
Default Re: Антикреш от создания пустых объектов читерами

Quote:
Originally Posted by White_116 View Post
Вы бы для начала дочитали ту тему и лишь потом предлагали решение. А клиент вылетает не из-за отсутствия объектов а из за отсутствии модели объекта или объект вызывает краш так как он связан со скриптами самой игры.
Клиент вылетает если этот объект будет создан на сервере, смысл в том чтоб его удалить, можешь проверку на создание стандартных моделей сделать если у тебя там есть кривые модели. Я ща играю нормально варнинги только из за машин вылетают тоже наверное из за несуществующих моделей. Насчет этого ниче точно сказать немагу незнаю.
WINDAM is offline  
Old 12/05/2013, 12:58 PM   #10
WINDAM
Little Clucker
 
Join Date: Jan 2012
Posts: 32
Reputation: -1
Default Re: Антикреш от создания пустых объектов читерами

Quote:
Originally Posted by Jon_De View Post
эм, а как читер объект создает? вся инфа об объектах на сервере хранится
Информация инструкции для работы выполнения каких то задач типа мода хранятся в файле, но инструкции для сервера можно делать как то иначе, Используя функцию создания объекта во время игры CreateObject. Всё что не запрещено кодом сервера или есть где то недоработка, соответственно люди пользуются те что умеют. Например я знаю что самп не отслеживает находится ли игрок в стене или где то ещё он это вообще не понимает, для этого придумана была геодата для серверов Lineage чтоб через стены не ходить. Так же по моему можно тупо настроить на клиенте в текстовом документе параметры машин и гонять как на иномарках на стремных тачках.
WINDAM is offline  
Closed Thread

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Cпавн транспорта читерами! Egor123 Русский/Russian 123 02/12/2013 05:39 PM
[HELP] Пропадание объектов Incognito streamer ZAM Русский/Russian 8 18/08/2012 12:06 AM
Крэшат сервер путем создания несуществующих объектов T.S Русский/Russian 43 15/03/2012 09:51 AM
AttachObjectToObject прикрепление объектов CrunkBankS Русский/Russian 5 16/10/2011 07:21 PM
Перемещение нескольких объектов как один lost13 Русский/Russian 12 11/12/2010 09:58 AM


All times are GMT. The time now is 03:28 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.