07:58
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
        
[SA-MP] Hosted Tab (116)
DieSeL 17.05.2017 17:33
Физрук (15)
Lanablogger1 16.05.2017 16:00
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 11
Модератор форума: Dima-kun 
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [Tutorial]Killstreaks
[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
. ;)

Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [Tutorial]Killstreaks
Страница 1 из 11
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM