EgasVegas 841 Опубликовано 28 сентября, 2015 Добавляем ко всем forward forward AntiMoney(playerid); Дальше мы бежим в конец мода и добавляем вот такую вот вещь public AntiMoney(playerid) { if(GetPlayerMoney(playerid) > PlayerInfo[playerid][pMoney]) // Если денег у игрока в игре больше чем записано в переменной pMoney - читер! { ResetPlayerMoney(playerid); // Забираем деньги у игрока GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); // Выдаем столько, сколько должно быть на самом деле. } else if(GetPlayerMoney(playerid) < PlayerInfo[playerid][pMoney]) PlayerInfo[playerid][pMoney] = GetPlayerMoney(playerid); // Иначе, присваиваем к переменной pMoney возвращённое функцией GetPlayerMoney кол-во денег. return 1; } Ко всем new new AntiMoneyTime[MAX_PLAYERS]; Теперь в коде находим места где игрок входит в аккаунт (конец регистрации/авторизации) и прописываем там: AntiMoneyTime[playerid] = SetTimerEx("AntiMoney", 1000, true, "i", playerid); Когда игрок выходит с сервера функцию отключаем (удаляем таймер), в OnPlayerDisconnect прописываем: KillTimer(AntiMoneyTime[playerid]); И последнее, сделаем функцию выдачи денег игроку сервером: stock GiveMoney(playerid, money) { PlayerInfo[playerid][pMoney] += money; ResetPlayerMoney(playerid); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); return 1; } Автор неизвестен 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Smolin 1,410 Опубликовано 28 сентября, 2015 if(GetPlayerMoney(playerid) > PlayerInfo[playerid][pMoney]) // Если денег у игрока в игре больше чем записано в переменной pMoney - читер @EgasVegas, А если я например заработал, или мне перевели большую сумму денег 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Mark' 4 Опубликовано 28 сентября, 2015 @Smolin, PlayerInfo[playerid][pMoney] изменяешь значения и всё. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evgenii_Ptichkin 0 Опубликовано 4 марта, 2016 @Smolin, PlayerInfo[playerid][pMoney] изменяешь значения и всё. Это конечно хорошо , но я вот начинающий в этом . Можно попросить уже готовую строчку. Заранее спасибо Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Red_Devils 368 Опубликовано 4 марта, 2016 Зачем создавать ежесекундный таймер? Не проще использовать в данной ситуации OnPlayerUpdate? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Max_Eitzen 337 Опубликовано 6 марта, 2016 Зачем создавать ежесекундный таймер? Не проще использовать в данной ситуации OnPlayerUpdate? Не стоит всё подряд пихать в OnPlayerUpdate, те же GPS зоны на гринтиче. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Red_Devils 368 Опубликовано 6 марта, 2016 Зачем создавать ежесекундный таймер? Не проще использовать в данной ситуации OnPlayerUpdate? Не стоит всё подряд пихать в OnPlayerUpdate, те же GPS зоны на гринтиче. Зоны стоят и при этом рассинхронизации нет как у вас была, сейчас не знаю есть ли она у вас. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
BaseMussel29 56 Опубликовано 6 марта, 2016 хмм....нормально Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Light_Dragon 0 Опубликовано 31 декабря, 2016 PlayerInfo[playerid][pMoney] А что именно нужно изменить? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Maxim14665 1 Опубликовано 30 января, 2018 поставил античит у меня деньги даются и обратно обнуляються Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
noname_idk 150 Опубликовано 30 января, 2018 @Maxim14665, стандартную функцию замените новой GiveMoney. А вообще жаль, что данная система реализована без перехвата функций. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Maxim14665 1 Опубликовано 30 января, 2018 (изменено) ,я заменил ну все равно обнуляет я уже не первый античит ставлю и они так же обнуляют Изменено 30 января, 2018 пользователем Maxim14665 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты