// 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;
}
на гитхабе потерял.