Перейти к содержанию

Переменная по айпи


Рекомендуемые сообщения

Хотелось бы спросить, как сделать переменную, скажем хочу чтобы игроки 1 РАЗ получили плюшку и больше не смогли её получить, ни на новом аккаунте, не через год, как это можно провернуть?

Ссылка на комментарий
Поделиться на другие сайты

В любом случае реально будет получить, вопрос только в сложности. По IP если ограничение - изи. По железу: сложнее (правда я не сталкивался с таким, ибо не очень представляю, как штатными средствами эмуля можно сделать такое ограничение).

Ссылка на комментарий
Поделиться на другие сайты

Такого не сделать. Ибо можно будет легко обойти твои защиту. Через динамический айпи или через прокси.

Чтобы я сделал:

1) Сделал шмотку не передаваемой

2) Поставил бы привязку переменной к акку

3) Создал базу с айпишниками по которыми делал проверку при получении шмотки

if(##getitem==1) { mes "Вы уже получали шмотку"; close;}

set .getp,0;

set .getp2,0;

query_sql "SELECT `last_ip` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",.getp;

query_sql "SELECT `табл списка айпи` FROM `login` WHERE `"+.getp+"` = `last_ip2`,.getp2;

if(.getp==.getp2) { mes "Вы уже получали шмотку"; close;}

getitem 7227,1;

set ##getitem,1;

query_sql "INSERT `last_ip2` " VALUES "`"+.getp.+"`"

Как то так!

Ссылка на комментарий
Поделиться на другие сайты

И каким образом это лучше? Такую защиту точно так же легко обойти. Простой проверкой айпи-адреса не добиться 100% запрета как ни изгаляйся в скриптах.

Ссылка на комментарий
Поделиться на другие сайты


// quest_db.txt
// Добавить:
// 8511,0,0,0,0,0,0,0,""
// Запрос в БД:
// ALTER TABLE `quest` ADD COLUMN `mac` varchar(18) NOT NULL default '';
map,x,y,0 script Name Sprite_ID,{

set @state,0;
set @mac$, "";

if(#bonus)
{
mes "Вы уже получали бонус!";
close;
}

query_sql "SELECT `last_mac` FROM `login` WHERE `account_id`="+getcharid(3),@mac$;
query_sql "SELECT `state` FROM `quest` WHERE `mac`='"+@mac$+"' AND `quest_id`=8511 LIMIT 1",@state;

if(@state)
{
mes "Вы уже получали бонус!";
close;
}
mes "Получай бонус!";
set #bonus,1;
query_sql "INSERT INTO `quest` (quest_id,state,mac) VALUES (8511,1,'"+@mac$+"')";
close;
}

Изменено пользователем Break
Ссылка на комментарий
Поделиться на другие сайты


// quest_db.txt
// Добавить:
// 8511,0,0,0,0,0,0,0,""
// Запрос в БД:
// ALTER TABLE `quest` ADD COLUMN `mac` varchar(18) NOT NULL default '';
map,x,y,0 script Name Sprite_ID,{

set @state,0;
set @mac$, "";

if(#bonus)
{
mes "Вы уже получали бонус!";
close;
}

query_sql "SELECT `last_mac` FROM `login` WHERE `account_id`="+getcharid(3),@mac$;
query_sql "SELECT `state` FROM `quest` WHERE `mac`='"+@mac$+"' AND `quest_id`=8511 LIMIT 1",@state;

if(@state)
{
mes "Вы уже получали бонус!";
close;
}
mes "Получай бонус!";
set #bonus,1;
query_sql "INSERT INTO `custom_quest` (quest_id,state,mac) VALUES (1000,1,'"+@mac$+"')";
close;
}

Это с гармонией, ага? Если память мне не изменяет - в афине нету функционала для получения мак-адреса. Ну и да.. Обходится еще проще, чем проверка по айпи :D

Ссылка на комментарий
Поделиться на другие сайты

Можно сделать тоже самое только с ип, хотя обойти будет тоже несложно :)

О чем и речь. Можно лишь усложнить необходимые для получения требования. Или еще, как вариант, обломать людей, которые пользуются динамическими айпи адресами :D

Ссылка на комментарий
Поделиться на другие сайты

Вот Break правильно написал SQL запросы. Я по памяти набрасывал. Кеник я уже это сказал, поэтому я отметил что надо сделать привязку к 1 акку и сделать шмотку не передаваемой. =) Тогда все будет чики пуки =)

Ссылка на комментарий
Поделиться на другие сайты

Вот Break правильно написал SQL запросы. Я по памяти набрасывал. Кеник я уже это сказал, поэтому я отметил что надо сделать привязку к 1 акку и сделать шмотку не передаваемой. =) Тогда все будет чики пуки =)

И я смогу на мульта взять с динамического айпи-адреса еще одну. Решение точно такое же слабое, как и просто проверка по IP или переменной, привязанный к аккаунту. Нет тут сильного решения. Можно лишь усложнять, но 100% не получится запретить.

Я к тому, что такую "защиту", как ты предложил точно так же легко обойти.

Ссылка на комментарий
Поделиться на другие сайты

Я уже кому-то говорил что все это обходится, и сделать прямо совсем непроходимое почти невозможно. Поэтому самое лучшее решение не давать никаких супер пупер бонусов чтобы прям хотелось сделать мультом еще или давало какие-то супер преимущества которые опять же захотят еще.

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

ясно, спасибо за ответы.

Ещё хотелось бы спросить, как начать эвент скажем в 18 00 10 апреля, а закончить в 15 00 20 апреля?

Ссылка на комментарий
Поделиться на другие сайты

OnClock1800: // Время
if (gettime(6) == 4){ // Номер месяца
if (gettime(5) == 10){ // День месяца
// Start event
}
}
OnClock1500: // Время
if (gettime(6) == 4){ // Номер месяца
if (gettime(5) == 20){ // День месяца
// Stop event
}
}

Например, так

  • Upvote 1
Ссылка на комментарий
Поделиться на другие сайты

А если сделать так, предупредить игроков,ну скажем за неделю, мол будет квест на плюшку, например на день.

Ну и соответственно жесткий лут все дела что бы уж точно не успеть на два раза, а еще лучше сделать рандом лут на каждого игрока.

ну естественно поставить не передаваемой и сделать 1 плюха = 1 акк. Видишь и не надо быть шпионам и вычислять ip.

P.S. Как же сделать рандомный лут? Где то на форуме была такая тема, что то типо ежедневное задание с рандомным лутом для каждого.

искать лень ~_^

Изменено пользователем Saha
Ссылка на комментарий
Поделиться на другие сайты

А если сделать так, предупредить игроков,ну скажем за неделю, мол будет квест на плюшку, например на день.

Ну и соответственно жесткий лут все дела что бы уж точно не успеть на два раза, а еще лучше сделать рандом лут на каждого игрока.

ну естественно поставить не передаваемой и сделать 1 плюха = 1 акк. Видишь и не надо быть шпионам и вычислять ip.

P.S. Как же сделать рандомный лут? Где то на форуме была такая тема, что то типо ежедневное задание с рандомным лутом для каждого.

искать лень ~_^

Использовать функцию рандом

Как? Можешь поискать доках.

Изменено пользователем botka4aet
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика