ocelote Опубликовано 24 сентября, 2015 Жалоба Поделиться Опубликовано 24 сентября, 2015 (изменено) Каждый день входим в игру -> получаем бонус. Расчитано на 31 день.Создаем таблицу в базе :create table `daily_bonus` (`unique_id` int(11),`ip` varchar (100),`account_id` int(11),`day` tinyint (2));Сам скрипт: GitHub.Проверка на мультов идет по IP + UniqueID от Gepard Shield Изменено 24 сентября, 2015 пользователем ocelote 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 24 сентября, 2015 Жалоба Поделиться Опубликовано 24 сентября, 2015 (изменено) Не совсем понял насчет блока аккаунта из этой системыНу и dispbottom "≈жедневные награды активированы."; Изменено 24 сентября, 2015 пользователем botka4aet Ссылка на комментарий Поделиться на другие сайты Поделиться
ocelote Опубликовано 24 сентября, 2015 Автор Жалоба Поделиться Опубликовано 24 сентября, 2015 В общем, заходишь в игру > идет проверка если в базе есть данный IP или UniqueID то текущего персонажа блокируют, и он не будет получать бонусов.#blocked_from_bonus = 0; // игрока нет в системе#blocked_from_bonus = 1; // игрок прошел проверку, получает бонус#blocked_from_bonus = 2; // игрок забанен в системе и не будет получать бонусов. Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 24 сентября, 2015 Жалоба Поделиться Опубликовано 24 сентября, 2015 Но эта проверка происходит только в первый раз. Те главное в первый раз зайти на новый аккаунт с другого компа, а после ничто не помешает тебе фармить на одном компе любое число акков, тк проверки на гепард и айпи потом просто нет Ссылка на комментарий Поделиться на другие сайты Поделиться
ocelote Опубликовано 24 сентября, 2015 Автор Жалоба Поделиться Опубликовано 24 сентября, 2015 (изменено) Нет, смотри.Берем 2 аккаунта назовем их 1 и 21 заходит в игру, активирует бонусы, тем самым занося свой аккаунт, IP, UniqueID в базу2 заходит в игру > идет проверка его IP + UniqueID. Система находит его IP ИЛИ UniqueID в базе и сразу блокирует его.Ну а вообще так как ты сказал это да, но можно будет конечно еще одну влепить проверку, это не проблема) Изменено 24 сентября, 2015 пользователем ocelote Ссылка на комментарий Поделиться на другие сайты Поделиться
ocelote Опубликовано 24 сентября, 2015 Автор Жалоба Поделиться Опубликовано 24 сентября, 2015 Обновил скрипт, добавил проверку при каждом входе, теперь будет блокировать каждый раз после захода, если найдет идентичный IP или UniqueID в базе.Залил все на Github. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ocelote Опубликовано 25 сентября, 2015 Автор Жалоба Поделиться Опубликовано 25 сентября, 2015 Снова обновил.Добавил еще проверок:Теперь IP и ID будут сверяться каждый раз при входе в игру.Например : Игрок имеет 2 ПК, 1 дома 1 на работе.Идет на работу, входит первый раз в игру и его IP+ID записываются в базу, затем он идет домой и на следующий день хочет забрать бонус из дому. Но не тут то было! Скрипт сверяет IP + ID которые записаны в базе (с работы) с текущими (с дому) и если они не соответствуют друг другу - игрока блокирует и он больше не получает бонусы.В общем, больше я не знаю что придумать, чтоб не жульничали. Если уже у человека 2 разных пк и 2 разных инета дома то мне кажется это уже никак не проверить) Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 25 сентября, 2015 Жалоба Поделиться Опубликовано 25 сентября, 2015 К примеру:- ставишь непися- при разговоре с неписем можно активировать N компов, с которых можно забирать награду- записывается ID- при добавлении компа дается задержка на активацию подаркаА с айпи может быть шляпа из-за динамического 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
ocelote Опубликовано 25 сентября, 2015 Автор Жалоба Поделиться Опубликовано 25 сентября, 2015 Можно, но это я делаю для своего сервера, поэтому мне так более подходит.Возможно когда-нибудь и реализую, а сейчас тупо не для кого. Мало кто юзает уже неписей с паблика. Ссылка на комментарий Поделиться на другие сайты Поделиться
ocelote Опубликовано 2 октября, 2015 Автор Жалоба Поделиться Опубликовано 2 октября, 2015 Апну чтоль, опыт подсказал что использование аккаунтских переменных на такие скрипты - плохая затея, чуток изменил скрипт + добавил массив с белым списком, если внести туда ID аккаунтов они будут получать бонусы без проверки ID+IP. Вроде пока проблем не возникло, и если что-то пойдет не так, и скрипт заблокирует не того персонажа, то можно изменить в таблице значение blocked с 1 на 0, и все будет отлично. Ссылка на комментарий Поделиться на другие сайты Поделиться
MalaX Опубликовано 26 марта, 2016 Жалоба Поделиться Опубликовано 26 марта, 2016 В 24.09.2015в4:44 PM, ocelote сказал: Каждый день входим в игру -> получаем бонус. Расчитано на 31 день. Создаем таблицу в базе : Где можно скачать етот скрипт В 24.09.2015в4:44 PM, ocelote сказал: create table `daily_bonus` ( `unique_id` int(11), `ip` varchar (100), `account_id` int(11), `day` tinyint (2) ); Сам скрипт: GitHub. Проверка на мультов идет по IP + UniqueID от Gepard Shield Ссылка на комментарий Поделиться на другие сайты Поделиться
MalaX Опубликовано 26 марта, 2016 Жалоба Поделиться Опубликовано 26 марта, 2016 Где можно скачать етот скрипт Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 26 марта, 2016 Жалоба Поделиться Опубликовано 26 марта, 2016 (изменено) 1 час назад, MalaX сказал: Где можно скачать етот скрипт // ALTER TABLE `daily_bonus` ADD `blocked` smallint(1) NOT NULL DEFAULT '0' - script Bonus_DailyDB -1,{ OnPCLoginEvent: if(#daily_bonus_block == 2) end; if(!#daily_bonus_block) { query_sql("SELECT last_ip, last_unique_id FROM `login` WHERE `account_id` = '"+getcharid(3)+"'", .@ip$, .@id$); query_sql("SELECT unique_id, ip FROM `daily_bonus` WHERE `unique_id`= '"+.@id$+"' OR `ip` = '"+.@ip$+"'", .@id_check$, .@ip_check$); // На всякий случай ---------- if(.@ip$ == "" || .@id$ == "" || .@id_check$ != "" || .@ip_check$ != "") callfunc("Bonus_Block", getcharid(3)); // --------------------------- query_sql("INSERT INTO `daily_bonus` (`unique_id`,`ip`,`account_id`,`day`,`blocked`) VALUES ('"+.@id$+"', '"+.@ip$+"', '"+getcharid(3)+"', '1', '0')"); #daily_bonus_block = 1; message strcharinfo(0), "Система Ежедневных наград активирована!"; #day ++; setd "#day_" + getcharid(3), #day; callfunc("Bonus_DB", getd("#day_" + getcharid(3)), getcharid(3), 0); end; } else if(#daily_bonus_block == 1) { query_sql("SELECT login.account_id, login.last_ip, login.last_unique_id, daily_bonus.unique_id, daily_bonus.ip, daily_bonus.account_id, daily_bonus.blocked FROM `daily_bonus` LEFT JOIN `login` ON login.account_id = daily_bonus.account_id WHERE daily_bonus.account_id = '"+getcharid(3)+"'", .@laid, .@lip$, .@lid$, .@id$, .@ip$, .@aid, .@block); if(getarraysize(.@id$) > 1 || getarraysize(.@ip$) > 1) callfunc("Bonus_Block", getcharid(3)); callfunc("Daily_Check", .@lip$, .@lid$, .@ip$, .@id$); if(getd("#day_" + getcharid(3)) == 0) setd "#day_" + getcharid(3), 1; callfunc("Bonus_DB", getd("#day_" + getcharid(3)), .@aid, .@block); end; } } function script Daily_Check { if(getarg(0) != getarg(2)) callfunc("Bonus_Block", getcharid(3)); if(getarg(1) != getarg(3)) callfunc("Bonus_Block", getcharid(3)); return; } function script Bonus_Block { if(!getarg(0)) end; query_sql("UPDATE `daily_bonus` SET `blocked` = '1' WHERE `account_id` = '"+getarg(0)+"'"); #daily_bonus_block = 2; message strcharinfo(0), "Вы были заблокированы в системе Ежедневных наград!"; end; } function script Bonus_DB { // arg(0) -> day // arg(1) -> acc_id // arg(2) -> blocked? if(getarg(0) > 31 || getarg(2) == 1) return; if(!getarg(0) || !getarg(1)) return; .@bonus_prize = .@amount_prize = .@switch_days = 0; if(getd("#delay_bonus_" + getarg(1)) > gettimetick(2)) return; if(getd("#day_" + getarg(1)) == 0) setd "#day_" + getarg(1), 1; set .@switch_days, getd("#day_" + getarg(1)); switch(.@switch_days) { case 0: return; case 1: .@bonus_prize = 14545; .@amount_prize = 1; break; case 2: .@bonus_prize = 12214; .@amount_prize = 1; break; case 3: .@bonus_prize = 12210; .@amount_prize = 1; break; case 4: .@bonus_prize = 7621; .@amount_prize = 1; break; case 5: .@bonus_prize = 7539; .@amount_prize = 10; break; case 6: .@bonus_prize = 12103; .@amount_prize = 1; break; case 7: .@bonus_prize = 6241; .@amount_prize = 1; break; case 8: .@bonus_prize = 6240; .@amount_prize = 1; break; case 9: .@bonus_prize = 7621; .@amount_prize = 2; break; case 10: .@bonus_prize = 14170; .@amount_prize = 1; break; case 11: .@bonus_prize = 14169; .@amount_prize = 1; break; case 12: .@bonus_prize = 12214; .@amount_prize = 3; break; case 13: .@bonus_prize = 7539; .@amount_prize = 30; break; case 14: .@bonus_prize = 12103; .@amount_prize = 3; break; case 15: .@bonus_prize = 14154; .@amount_prize = 1; break; case 16: .@bonus_prize = 675; .@amount_prize = 30; break; case 17: .@bonus_prize = 671; .@amount_prize = 200; break; case 18: .@bonus_prize = 7621; .@amount_prize = 5; break; case 19: .@bonus_prize = 6226; .@amount_prize = 1; break; case 20: .@bonus_prize = 6225; .@amount_prize = 1; break; case 21: .@bonus_prize = 12214; .@amount_prize = 5; break; case 22: .@bonus_prize = 12103; .@amount_prize = 2; break; case 23: .@bonus_prize = 7539; .@amount_prize = 50; break; case 24: .@bonus_prize = 7828; .@amount_prize = 50; break; case 25: .@bonus_prize = 7829; .@amount_prize = 50; break; case 26: .@bonus_prize = 7773; .@amount_prize = 50; break; case 27: .@bonus_prize = 675; .@amount_prize = 50; break; case 28: .@bonus_prize = 671; .@amount_prize = 400; break; case 29: .@bonus_prize = 12103; .@amount_prize = 3; break; case 30: .@bonus_prize = 22721; .@amount_prize = 1; break; case 31: .@bonus_prize = 12246; .@amount_prize = 1; break; } if(.@bonus_prize && .@amount_prize) getitem .@bonus_prize, .@amount_prize; setd "#delay_bonus_" + getarg(1), gettimetick(2) + 86400; message strcharinfo(0), "Система Ежедневных наград: День - "+getd("#day_" + getarg(1))+". Вы получили "+getitemname(.@bonus_prize)+", "+.@amount_prize+"шт."; #day ++; setd "#day_" + getarg(1), #day; return; } на гитхабе потерял. Изменено 26 марта, 2016 пользователем Gendalf 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Kreol89 Опубликовано 3 апреля, 2016 Жалоба Поделиться Опубликовано 3 апреля, 2016 (изменено) То ли я идиот... То ли лыжи не те... А если серьёзно, то что я пропустил в установке. Это первый заход на сервер. Изменено 3 апреля, 2016 пользователем Kreol89 Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 3 апреля, 2016 Жалоба Поделиться Опубликовано 3 апреля, 2016 У тебя стоит Gepard Shield? Ссылка на комментарий Поделиться на другие сайты Поделиться
Kreol89 Опубликовано 3 апреля, 2016 Жалоба Поделиться Опубликовано 3 апреля, 2016 Эм... Нет... Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 3 апреля, 2016 Жалоба Поделиться Опубликовано 3 апреля, 2016 1 минуту назад, Kreol89 сказал: Эм... Нет... Ну тогда не заработает =) Ссылка на комментарий Поделиться на другие сайты Поделиться
Kreol89 Опубликовано 3 апреля, 2016 Жалоба Поделиться Опубликовано 3 апреля, 2016 А по поводу Gepard Shield, это я так понимаю к Functor'у? Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 3 апреля, 2016 Жалоба Поделиться Опубликовано 3 апреля, 2016 Ага. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения