Aimfake
Ученик
Всем привет! Сегодня я хочу вам продемонстрировать урок очереди для каких любо целей.
В начало ставим ко всем new, enum и так далее:
в
вставляем:
Далее в
далее в конец мода или ко всем Publicam
Если вы хотите сократить 200000 секунд до следующего удаления. Тогда в нужной функции поставьте OcheredAdd(); и список выкинет первого и передвнет всех на верх
услуги http://pawno-info.ru/showthread.php?t=251611
В начало ставим ко всем new, enum и так далее:
PHP:
enum Ochered
{
OcheredID,
OcheredName[MAX_PLAYER_NAME]
};
new OcheredInfo[10][OcheredInfo];
new TOTALOchered = 0;
new TimerOn;
new TimerOchered;
new pickup[2]
PHP:
public OnGameModeInit
PHP:
for(new i; i < 10; i++)
{
OchredInfo[i][OchredID] = -1;
strmid (OchredInfo[i][OchredName],"None", 0, strlen("None"), 5);
}
PHP:
public OnPlayerPickUpDynamicPickup(playerid, pickupid)
PHP:
else if(pickupid == pickup[0])
{
if(OcheredInfo[TOTALOchered ][OcheredID] == playerid) return scm(playerid,-1,"Ошибка: Вы уже стали в очередь");
if(TOTALOchered >= 5) return SendClientMessage(playerid,0xA020F0FF,"Очередь полна");
TOTALOchered ++;
OcheredInfo[TOTALOchered ][OcheredID] = playerid;
strmid(OcheredInfo[TOTALOchered ][OcheredName],p_info[playerid][p_name],0,strlen(p_info[playerid][p_name]), 32);
SendClientMessage(playerid,0xA020F0FF,"Вы стали в очередь, ожидайте пока она дойдет до вас.");
if(TOTALOchered == 1)
{
SendClientMessage(playerid,0xA020F0FF,"Вы являетесь первым в списке а дальше свой текст.");
TimerOchered= SetTimer("OcheredAdd", 200000, 0); // через 200000 секунд первый в списке очереди удалится
SetPVarInt(playerid, "Test", 1); // свой PVar
TimerOn = 1;
}
return true;
}
else if(pickupid == pickup[1])
{
if(TOTALOchered == 0) return SendClientMessage(playerid,0xA020F0FF,"Очередь пуста");
new string2[1550];
format(string2,sizeof(string2), "1. %s\t\tID: %d\n2. %s\t\tID: %d\n3. %s\t\tID: %d\n4. %s\t\tID: %d\n5. %s\t\tID: %d",
OcheredInfo[1][OcheredName],OcheredInfo[1][OcheredID],OcheredInfo[2][OcheredName],OcheredInfo[2][OcheredID],OcheredInfo[3][OcheredName],OcheredInfo[3][OcheredID],OcheredInfo[4][OcheredName],OcheredInfo[4][OcheredID],
OcheredInfo[5][OcheredName],OcheredInfo[5][OcheredID]);
ShowPlayerDialog(playerid,9999,DIALOG_STYLE_MSGBOX, "Очередь",string2, "Готово", "");
}
PHP:
forward OcheredAdd();
public OcheredAdd()
{
if(!strcmp(p_info[OcheredInfo[1][OcheredID]][p_name],OcheredInfo[1][OcheredName],true)) DisablePlayerCheckpoint(OcheredInfo[1][OcheredID]);
if(TimerOn == 1) KillTimer(TimerOchered), TimerOn = 0;
for(new i = 1; i <= TOTALOchered -1; i++)
{
OcheredInfo[i][OcheredID] = OcheredInfo[i+1][OcheredID];
strmid(OcheredInfo[i][OcheredName],OcheredInfo[i+1][OcheredName],0,strlen(OcheredInfo[i+1][OcheredName]), 50);
OcheredInfo[i+1][OcheredID] = -1;
strmid (OcheredInfo[i+1][OcheredName],"None", 0, strlen("None"), 32);
}
TOTALOchered --;
if(TOTALOchered > 0)
{
if(strcmp(p_info[OcheredInfo[1][OcheredID]][p_name],OcheredInfo[1][OcheredName],true) != 0) return TuneAdd();
else
{
SendClientMessage(OcheredInfo[1][OcheredID],0xA020F0FF,"Ваша очередь настала. Делайте то или то");
TimerOchered= SetTimer("OcheredAdd", 200000, 0); // через 200000 секунд первый в списке очереди удалится
TimerOn = 1;
SetPVarInt(OcheredInfo[1][OcheredID], "Test", 1); // тут замените на свой PVar
}
}
return true;
}
услуги http://pawno-info.ru/showthread.php?t=251611
Последнее редактирование:
