 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[Tutorial]Killstreaks
| |
| Andrejs | Дата: Воскресенье, 25.03.2012, 19:08 | Сообщение # 1 |
|
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус: 
| Ещё один перевод статьи с офф. форума. На этот раз, всё гораздо проще и быстрее. Поэтому в этом коде сможет разобраться даже человек, который совсем не знает pawn языка, при желании.
Сегодня разберём, туториал под названием "Killstreaks", перевести одним красивым словом на русский язык у меня пока не получилось, буду признателен, если подскажите как это правильно назвать по русски. Скрипт предназначен для (T)DM и подобных серверов. Суть скрипта заключается в том, что при двух, трёх, ..., десяти подряд убийствах, об этом будет оповещаться всему серверу.
Процесс создания состоит всего из 4 пунктов.
1. Создаём глобальную переменную Code new Streaks[MAX_PLAYERS];
2. Обнуляем переменную в public OnPlayerConnect или public OnPlayerDisconnect, чтобы статистика повторяющихся убийств хранилась до выхода Code Streaks[playerid] = 0;
3. Теперь собственно добавим в скрипт ту самую статистику, которая нам нужна. Для этого ищем public OnPlayerDeath, в который добавляем следующие строки Code public OnPlayerDeath(playerid, killerid, reason) { if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID ) { if(GetPlayerWantedLevel(killerid) < 6) SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid) + 1); Streaks[killerid] ++; GivePlayerMoney(killerid, 500); KillStreaks(killerid); } SetPlayerWantedLevel(playerid, 0); Streaks[playerid] = 0; return 1; }
4. Со статистикой разобрались. Теперь немного разнообразим всё это. Теперь создадим функцию KillStreaks(killerid), которая будет выглядеть у нас следующим образом Code stock KillStreaks(killerid) { SetPlayerScore(killerid,GetPlayerScore(killerid)+1); // увеличиваем результат игрока на 1 очко new str[ 128 ], KillerName[MAX_PLAYER_NAME]; //объявление переменных GetPlayerName(killerid, KillerName, sizeof(KillerName)); switch(Streaks[killerid]) { case 2: format(str, sizeof(str), "[KILLINGSPREE] ~g~%s has performed a ~y~double kill!", KillerName); case 3: format(str, sizeof(str), "[KILLINGSPREE] ~y~Triple Kill for ~b~%s!", KillerName); case 4: format(str, sizeof(str), "[KILLINGSPREE] ~p~Quadro Kill for ~r~%s!", KillerName); case 5: format(str, sizeof(str), "[KILLINGSPREE] ~r~%s is dominating with ~p~five kills!", KillerName); case 6: format(str, sizeof(str), "[KILLINGSPREE] ~w~%s is godlike with ~y~six kills!", KillerName); case 7: format(str, sizeof(str), "[KILLINGSPREE] ~r~RAMPAGE for %s with ~w~seven kills!", KillerName); case 8: format(str, sizeof(str), "[KILLINGSPREE] ~p~%s is unbelievable with ~y~eight kills!", KillerName); case 9: format(str, sizeof(str), "[KILLINGSPREE] ~g~%s is worldclass, ~b~nine kills!", KillerName); case 10: format(str, sizeof(str), "[KILLINGSPREE] ~b~%s is annihilating with ~g~ten kills!", KillerName); //case 11: format(str, sizeof(str), "[KILLINGSPREE] ~b~%s ваше текст...", KillerName); } GameTextForAll(str,4000,4); //Показываем текст всем игрокам }
Это всё, компилируем. Если не получилось - прилагаю PWN файл, или задавайте вопросы в теме Скачать PWN
Сообщение отредактировал Andrejs - Воскресенье, 25.03.2012, 20:21 |
| |
|
|
| Borog | Дата: Воскресенье, 25.03.2012, 19:45 | Сообщение # 2 |
|
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1362
Награды: 43
Город: Москва
Репутация: 1249
Замечания: 20%
Статус: 
| Quote (Andrejs) буду признателен, если подскажите как это правильно назвать по русски Я бы перевел как "Цепочка убийств"
Quote (Andrejs) Обнуляем переменную в public OnPlayerConnect и public OnPlayerDisconnect Зачем? Одного раза при коннекте уже мало? И причем тут розыск вообще? Какое отношение он имеет к выводу сообщений за убийство?
Теме не хватает описания. Из предисловия не понятно что это и для чего это нужно + много лишнего. Не тру
Silver Break http://s-break.ru/ http://vk.com/sbreak
Сообщение отредактировал Borog - Воскресенье, 25.03.2012, 19:47 |
| |
|
|
| Andrejs | Дата: Воскресенье, 25.03.2012, 20:19 | Сообщение # 3 |
|
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус: 
| Quote (Borog) Зачем? Одного раза при коннекте уже мало? И причем тут розыск вообще? Какое отношение он имеет к выводу сообщений за убийство? Вполне достаточно. Забыл просто это уточнить Розыск опционально стоит, в PWN там больше комментариев и описания
А вообще, я просто перевёл статью с офф. форума, немного подкорректировав сам код
|
| |
|
|
| taler | Дата: Воскресенье, 25.03.2012, 20:54 | Сообщение # 4 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 152
Награды: 1
Город: 13
Репутация: 121
Замечания: 40%
Статус: 
| у меня на сервере ооочень давно было реализовано, за одним исключением, а именно бонусом за даблкиллы триплкилы и пр (Вознаграждение_за_убийство+бонус*на_число_киллов_за_1_жизнь)
Ыыыы
|
| |
|
|
| Andrejs | Дата: Воскресенье, 25.03.2012, 21:37 | Сообщение # 5 |
|
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус: 
| taler, да никто и не говорит о том, что это нигде не было реализовано. Бонус уже можно самому придумать, на свой вкус.
|
| |
|
|
| IInkvizitor | Дата: Воскресенье, 25.03.2012, 21:41 | Сообщение # 6 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1177
Награды: 7
Город: Санкт-Петербург
Репутация: 493
Замечания: 0%
Статус: 
| Было бы круто, если бы ты добавил звуки при убийствах (rampage, dominate, legendary)
|
| |
|
|
| Andrejs | Дата: Воскресенье, 25.03.2012, 23:28 | Сообщение # 7 |
|
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус: 
| Попозже может добавлю разнообразия это все, и сделаю в виде инклуда или фс. Но не факт, потому что сейчас планы меняются по 100 раз в день
|
| |
|
|
| IInkvizitor | Дата: Воскресенье, 25.03.2012, 23:33 | Сообщение # 8 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1177
Награды: 7
Город: Санкт-Петербург
Репутация: 493
Замечания: 0%
Статус: 
| Выдели час своего времени вечерком и всё
|
| |
|
|
| Andrejs | Дата: Понедельник, 26.03.2012, 14:12 | Сообщение # 9 |
|
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус: 
| Вопрос не времени, а желания)
|
| |
|
|
| Mix | Дата: Четверг, 29.03.2012, 20:31 | Сообщение # 10 |
|
Постоялец
Группа:
Продвинутые
Сообщений: 305
Награды: 1
Город: Ульяновск
Репутация: 52
Замечания: 20%
Статус: 
| OnPlayerDisconnect - нужно обнулить Code Streaks[playerid] = 0; А то играет малое количество, один всех убивает, набрал это все и вышел. Заходит другой с его id и все на нем сохраняется. Или я ошибаюсь?? А так это было очень просто, идея хорошая, но, я думаю, лучше в Textdraw выводить в центр. Ник игрока и под ним его "достижение".
|
| |
|
|
| Andrejs | Дата: Четверг, 29.03.2012, 22:44 | Сообщение # 11 |
|
Группа:
I'm V.I.P.
Сообщений: 1801
Награды: 37
Город: Tallinn
Репутация: 2282
Замечания: 20%
Статус: 
| Quote (ZeT73) А то играет малое количество, один всех убивает, набрал это все и вышел. Заходит другой с его id и все на нем сохраняется. Или я ошибаюсь?? второй пункт
|
| |
|
|
| Affliction | Дата: Пятница, 30.03.2012, 13:30 | Сообщение # 12 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 288
Награды: 2
Город: Владивосток
Репутация: 471
Замечания: 40%
Статус: 
| Давно в паблике - Code http://www.samp-rus.com/load/fs_cs_kill_combos/4-1-0-1539 .
|
| |
|
|
|
 |
|
 | |
| |
|