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

 



 
          





Рекомендуем:





Последние Файлы 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
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
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
  • Страница 1 из 1
  • 1
Модератор форума: 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 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua