Так у тебя вначале :
?? что тут не читабельного, так-же в предыдущим сообщение я оставил примечание: "Да и обычно оператором "const" выделяют вроде как максимальное значение чего либо,я бы оставил просто энуменатор id диалогов, и варианты никакие не нужны.", как у тебя это сделано сейчас.PHP код:
const
MAX_ADMIN_TELEPORTS = 2, // Максимальное количество телепортов. При добавлении нового телепорта инкрементируйте данное значение (добавляйте +1 к значению).
MAX_ADMIN_TELEPORT_NAME = 17, // Максимальное количество символов в названии телепорта
MAX_AT_SECTIONS_NAME = 28; // Максимальное количество символов в названии раздела телепортов
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Да, думаю, что самое время попробовать :)
Уже нашёл информацию от DC по поводу перехватов. Попробую освоить в ближайшее время, и, если всё будет благополучно - постараюсь реализовать твою задумку по поводу FS/Include
Upd: обновил первый пост (убрал вариант с константами для диалогов).
Update: Релиз системы в include.
Ссылка на скачивание в первом посте.
P.S Сегодня осилил только знакомство с перехватами и написание include-версии.
P.S.S Возможно, в скором времени, при наличии времени, займусь реализацией обновлений (но это не точно :D)
Последний раз редактировалось whale; 04.06.2017 в 19:40.
Мне кажется можно избежать циклов, когда игрок входит/выходит в динамическую зону (если создаются динамические зоны одновременно, то есть в данном случае)
Да и не совсем понятно зачем было создавать итератор, если ты их используешь лишь в данных пабликахPHP код:
public OnPlayerEnterDynamicArea(playerid, areaid) // Когда игрок входит в динамическую зону
{
if(atInfo[0][atDynamicArea] <= areaid <= atInfo[MAX_ADMIN_TELEPORTS - 1][atDynamicArea])
{
new
cout = areaid - atInfo[0][atDynamicArea];
atInfo[cout][atNumberOfPlayers]++; // Инкрементируем количество игроков в указанной динамической зоне
if(atData[cout][atGreenZone] == 1) // Если зона, в которую вошёл игрок, является "зелёной" (anti-dm)
{
p_green_zone_status{playerid} = 1; // Устанавливаем игроку статус "находится в зелёной зоне"
SetPVarInt(playerid, "damage_in_green_zone", 0); // Устанавливаем игроку количество попыток нанести урон в "зелёной зоне" на 0
}
return 1;
}
return 1;
}
public OnPlayerLeaveDynamicArea(playerid, areaid) // Когда игрок покидает динамическую зону
{
if(atInfo[0][atDynamicArea] <= areaid <= atInfo[MAX_ADMIN_TELEPORTS - 1][atDynamicArea])
{
new
cout = areaid - atInfo[0][atDynamicArea];
atInfo[cout][atNumberOfPlayers]--; // Декрементируем количество игроков в указанной динамической зоне
if(atData[cout][atGreenZone] == 1) // Если зона, из которой вышел игрок, является "зелёной" (anti-dm)
{
p_green_zone_status{playerid} = 0; // Устанавливаем игроку статус "не находится в зелёной зоне"
DeletePVar(playerid, "damage_in_green_zone"); // Удаляем PVar с информацией о количестве попыток нанести урон в "зелёной зоне"
}
return 1;
}
return 1;
}
С учётом того, что это паблик-система, цикл тут является защитой "от дурака". Если до вызова функции с загрузкой зон будет создано несколько динамических зон, а потом какая-нибудь одна из зон будет удалена, твой код уже не будет работать нормально
Чтоб быстрее искать нужную зону?
Хотя вообще такое актуально только для ситуаций, когда зоны могут во время работы сервера удаляться. Если удаления нет, то можно обойтись обычным циклом.
Связаться со мной в VK можно через личные сообщения этой группы
Заказы не принимаю
Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
Великих идей полно, на них нет спроса.
Воплощение идеи в законченную игру требует долгой работы,
таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
Предложить идею просто, воплотить – вот в чём проблема
Steve Pavlina
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)