[Мануал] Создание обычной системы AFK
|
|
Chester_Master |
Дата: Воскресенье, 30.11.2014, 11:42 | Сообщение # 1
|
Бывалый
Сообщений: 339
Статус: Offline
|
Всем добрый день. Решил сделать мануал по созданию "AFK системы", в этом нет ничего сложного, и пойдет на все игровые моды. p.s Не увидел подобной темы в разделе, по этому решил выложить.
И так, пожалуй начнем:
В public OnPlayerExitVehicle(playerid, vehicleid) Код SetPVarInt(playerid,"AFK_Time",0);
ко всем #define добавим ( Если нету ) Код #define publics:%0(%1) forward %0(%1); public %0(%1)
В конец мода добавим: Код publics: GlobalAfkCheck() { foreach(new i: Player) { if(!gPlayerLogged[i]) continue; if(GetPVarInt(i,"AFK_Tick") > 10000) { SetPVarInt(i,"AFK_Tick",1); SetPVarInt(i,"AFK_Check",0); } if(GetPVarInt(i,"AFK_Check") < GetPVarInt(i,"AFK_Tick") && GetPlayerState(i)) { SetPVarInt(i,"AFK_Check",GetPVarInt(i,"AFK_Tick")); SetPVarInt(i,"AFK_Time",0); } if(GetPVarInt(i,"AFK_Check") == GetPVarInt(i,"AFK_Tick") && GetPlayerState(i)) { SetPVarInt(i,"AFK_Time",GetPVarInt(i,"AFK_Time") + 1); if(GetPVarInt(i, "AFK_Time") > 2) { new CB[30]; Convert1(GetPVarInt(i,"AFK_Time")-2,CB); strins(CB,"На паузе: ",0); SetPlayerChatBubble(i,CB,COLOR_LIGHTRED,20.0,1200); } } } }
В public OnPlayerUpdate(playerid) Код SetPVarInt(playerid,"AFK_Tick", GetPVarInt(playerid,"AFK_Tick") + 1);
В конец мода добавим: Код stock Convert1(seconds, stringTo[], size = sizeof(stringTo)) { stringTo[0] = 0x0; new result[4]; result[0] = floatround(seconds / (3600 * 24)); result[1] = floatround(seconds / 3600); result[2] = floatround((seconds / 60) - (result[1] * 60)); result[3] = floatround(seconds - ((result[1] * 3600) + (result[2] * 60))); switch(result[0]) { case 0: { switch(result[1]) { case 0: format(stringTo,size,"%02d:%02d",result[2],result[3]); default: format(stringTo,size,"%d:%02d:%02d",result[1],result[2],result[3]); } } } return stringTo; }
А так же, в stock Fresh() Вот и все, нет ничего сложно. У кого будут ошибки при вставке системы, обращайтесь, помогу.
Сообщение отредактировал Chester_Master - Воскресенье, 30.11.2014, 12:22 |
|
|
|
[CM]Morente |
Дата: Воскресенье, 30.11.2014, 11:53 | Сообщение # 2
|
Новичок
Сообщений: 16
Статус: Offline
|
Вырезано не до конца , + не видно функции кика и уведомление о большем проведение времени в AFK.
|
|
|
|
Chester_Master |
Дата: Воскресенье, 30.11.2014, 12:08 | Сообщение # 3
|
Бывалый
Сообщений: 339
Статус: Offline
|
Цитата [CM]Morente ( ) Вырезано не до конца , + не видно функции кика и уведомление о большем проведение времени в AFK.
До конца, а на счет кика и уведомлении о большем времени проведения в АФК нету. Я же в заголовке указал, что самая обычная система АФК.
|
|
|
|
Монашка |
Дата: Воскресенье, 30.11.2014, 14:57 | Сообщение # 4
|
Боец
Сообщений: 109
Статус: Offline
|
Спасибо, для тех кто с 0 делает пригодиться)
R259737627414
|
|
|
|
[CM]Morente |
Дата: Воскресенье, 30.11.2014, 15:38 | Сообщение # 5
|
Новичок
Сообщений: 16
Статус: Offline
|
Цитата Chester_Master ( ) До конца, а на счет кика и уведомлении о большем времени проведения в АФК нету. Я же в заголовке указал, что самая обычная система АФК.
Зачем тогда такое гавно сюда выкладывать? Если можно написать в несколько раз меньше и рабочий код.
|
|
|
|
Quonx |
Дата: Воскресенье, 30.11.2014, 16:36 | Сообщение # 6
|
Боец
Сообщений: 110
Статус: Offline
|
[CM]Morente, А давайте мы подождем твой код? покажи нам как нужно правильно писать код
Продаю много аккаунтов Steam/Origin/Uplay! http://cheat-master.ru/forum/140-513506-1
|
|
|
|
Chester_Master |
Дата: Воскресенье, 30.11.2014, 20:44 | Сообщение # 7
|
Бывалый
Сообщений: 339
Статус: Offline
|
Цитата [CM]Morente ( ) Зачем тогда такое гавно сюда выкладывать? Если можно написать в несколько раз меньше и рабочий код.
Может прекратишь писать чушь тут? Кому нужно - тот возьмет данную систему. Ах да, давай ка профессионал, покажи как нужно писать системы. Жду, в течении 24 часов не выложишь, будешь конченным болоболом.
|
|
|
|
TITANIK |
Дата: Понедельник, 01.12.2014, 00:13 | Сообщение # 8
|
Боец
Сообщений: 65
Статус: Offline
|
Хороший мануал,попробую что нибудь смастерить.
Регистрация: 19.06.2009 Вы здесь: 1968-й день
|
|
|
|
[CM]Morente |
Дата: Понедельник, 01.12.2014, 08:55 | Сообщение # 9
|
Новичок
Сообщений: 16
Статус: Offline
|
К forward:
В Public OnPlayerConnect
Код PlayerForeach(i) { if (GetPVarInt(i, "AFK") > 0) { if (GetPVarInt(i, "AFK") >=1200) { SendClientMessage(i, COLOR_LIGHTRED,"Вы были кикнуты за 20 просто без движения."); Kick(playerid); } } return 1; } return 1; }
OnPlayerDisconect
Код
SetPVarInt(playerid, "AFK", -2);
OnPlayerUpdate Код
if (GetPVarInt(playerid, "Kick") != 0) Kick(playerid); if (GetPVarInt(playerid, "AFK") > -2) { if (GetPVarInt(playerid, "AFK") > 2) SetPlayerChatBubble(playerid, "Игрок на паузе 0сек.",COLOR_ORANGE, 10.0, 500); SetPVarInt(playerid, "AFK", 0); }
в UpdatePlayer
В конце мода создаем Public AFK()
Код
public AFK() { PlayerForeach(i) { new str[56]; if (IsPlayerConnected(i)) { if (GetPVarInt(i, "AFK") == 0) SetPVarInt(i, "AFK", -1); else if (GetPVarInt(i, "AFK") == -1) { SetPVarInt(i, "AFK", 1); format(str, sizeof(str), "Игрок на паузе: %s .", Convertsec(GetPVarInt(i, "AFK"))); SetPlayerChatBubble(i, str, COLOR_ORANGE, 10.0, 1200); } else if (GetPVarInt(i, "AFK") > 0) { SetPVarInt(i, "AFK", GetPVarInt(i, "AFK")+1); format(str, sizeof(str), "Игрок на паузе: %s.", Convertsec(GetPVarInt(i, "AFK"))); SetPlayerChatBubble(i, str, COLOR_ORANGE, 10.0, 1200); } } } }
Для проверки копипаста: http://text.ru
Если во время вшивки системы в мод вылезли ошибки , обращайтесь в skype: ywilson225 , помогу.
|
|
|
|
Chester_Master |
Дата: Понедельник, 01.12.2014, 11:44 | Сообщение # 10
|
Бывалый
Сообщений: 339
Статус: Offline
|
Оптимизация кода? Нет, не слышал?
[CM]Morente, Посмотри на мой код, и на свой. На всех пабликах практически стоит твоя подобная система АФК, твоя система всего лишь лишняя нагрузка на мод.
Прошу не критиковать, если делать лучше можете - пожалуйста, создавайте мануалы, вам никто не запрещает. Тому, кому нужна система - берите и пользуйтесь.
Сообщение отредактировал Chester_Master - Понедельник, 01.12.2014, 12:26 |
|
|
|