Извините заранее снова я со своей сраной Империум ареной! SQL Часть: CREATE TABLE IF NOT EXISTS `arena_guildempladder` ( `gdbreaker_id` int(11) unsigned NOT NULL default '0', `guildname` varchar(30) NOT NULL default '', `EmpBreaked` smallint(6) unsigned NOT NULL default '0', `keep_time` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`gdbreaker_id`), KEY `guildname` (`guildname`), KEY `EmpBreaked` (`EmpBreaked`), KEY `keep_time` (`keep_time`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; CREATE TABLE IF NOT EXISTS `arena_prizeget` ( `guild_id` int(11) unsigned NOT NULL default '0', `players` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`guild_id`), KEY `players` (`players`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; CREATE TABLE IF NOT EXISTS `arena_prizegetcheck` ( `guild_id` int(11) unsigned NOT NULL default '0', `player_acc_id` int(11) unsigned NOT NULL default '0', PRIMARY KEY (`guild_id`), KEY `player_acc_id` (`player_acc_id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; Сам скрипт: - script emp_arena -1,{ onreset: stopnpctimer; killmonster "pvp_n_5-5.gat","emp_arena::OnEMP"; OnInit: set $LastEmpKiller$, "EMPERIUM"; monster "pvp_n_5-5.gat",99,100,$LastEmpKiller$,1288,1,"emp_arena::OnEMP"; end; OnEMP: set $emp_kepp_time,getnpctimer(0)/1000; stopnpctimer; set $LastEmpGuild, getcharid(2); MapRespawnGuildID "pvp_n_5-5.gat",$LastEmpGuild,2; announce "Игрок "+strcharinfo(0)+" из гильдии [" + getguildName($LastEmpGuild) + "] захватил Империум Арену!",0; soundeffectall "yehaa.wav",0,"pvp_n_5-5.gat"; monster "pvp_n_5-5.gat",100,100,getguildName($LastEmpGuild),1288,1,"emp_arena::OnEMP"; initnpctimer; end; OnTimer600000: set $guildonmap,getMapGuildUsers("pvp_n_5-5.gat",$LastEmpGuild); if($guildonmap < 1) { announce "Все защищающие Империум Арену сбежали, она теперь свободна!",bc_all; callsub onreset; end; } mapannounce "pvp_n_5-5.gat","Так держать, вы защищаете Империум Арену уже 10 минут!",0; end; OnTimer1200000: set $emp_kepp_time,getnpctimer(0)/1000; stopnpctimer; set $guildonmap,getmapguildusers("pvp_n_5-5.gat",$LastEmpGuild); if($guildonmap < 1) { announce "Все защищающие Империум Арену сбежали, она теперь свободна!",bc_all; callsub onreset; end; } set .@numplayers, $guildonmap; // тупо сколько народу было на арене после 3 часов set .@Exist,0; query_sql "SELECT `guild_id` FROM `arena_prizeget` WHERE `guild_id` = '"+ $LastEmpGuild +"'", .@Exist; if (.@Exist) query_sql "UPDATE `arena_prizeget` SET `players` = `players` + '"+ .@numplayers +"' WHERE `guild_id` = '"+ $LastEmpGuild +"'"; else query_sql "INSERT INTO `arena_prizeget` (`guild_id`, `players`) VALUES ('"+ $LastEmpGuild +"', '"+ .@Exist[0] +"')"; //query_sql "DELETE FROM `arena_prizegetcheck` WHERE `guild_id` = '"+ $LastEmpGuild +"'"; // обнуляем список выдачи призов set .@Exist,0; query_sql "SELECT `gdbreaker_id`, `keep_time` FROM `arena_guildempladder` WHERE `gdbreaker_id` = '"+ $LastEmpGuild +"'", .@Exist, .@time; if (!.@Exist) query_sql "INSERT INTO `arena_guildempladder` (`gdbreaker_id`, `guildname`, `keep_time`) VALUES ('"+ $LastEmpGuild +"', '"+ GetGuildName($LastEmpGuild) +"', '"+ $emp_kepp_time +"')"; query_sql "UPDATE `arena_guildempladder` SET `keep_time` = `keep_time` + '"+ $emp_kepp_time +"' WHERE `gdbreaker_id` = '"+ $LastEmpGuild +"'"; mapannounce "pvp_n_5-5.gat","Слава гильдии ["+GetGuildName($LastEmpGuild)+"], они защищали Империум Арену целый 20 минут!",0; callsub onreset; end; } pvp_n_5-5.gat,87,116,5 script Приз 100,{ mes "[Приз]"; mes "Что то хотели?"; if(select("Получить приз:Ничего")==2) close; if( getcharid(2)==0 ) { mes "Прости, ты не состоишь в гильдии"; close; } set .@Exist,0; query_sql "SELECT `guild_id`,`players` FROM `arena_prizeget` WHERE `guild_id` = '"+getcharid(2)+"'", .@Exist, .@players; if( !.@Exist ) { mes "Прости, твоя гильдия не удерживала Империум Арену в течении 20 минут"; close; } set .@Exist,0; query_sql "SELECT `player_acc_id` FROM `arena_prizegetcheck` WHERE `guild_id` = '"+ .@my_GID +"' AND `player_acc_id` = '"+ getcharid(3) +"'", .@Exist; if( .@Exist ) { mes "Прости, ты уже получил приз за последнее удержание"; close; } if( .@players < 1 ) { mes "Прости, все призы уже выданы"; close; } mes "Поздравляю, твой приз - Event Coin 3"; getitem 12103,3; set .@prized_players,.@prized_players-1; query_sql "UPDATE `arena_prizeget` SET `players` = '"+ .@prized_players +"' WHERE `guild_id` = '"+ .@my_GID +"'"; query_sql "INSERT INTO `arena_prizegetcheck` (`guild_id`, `player_acc_id`) VALUES ('"+ .@my_GID +"', '"+ getcharid(3) +"')"; close; } Проблема, что 2 человека на арене после 20 минут! Тот кто захватил Прости, ты уже получил приз за последнее удержание А согильдийцу можно брать призы до бесконечности!