Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[Мануал] Арена смерти(Orio[N]) v 2.

Статус
В этой теме нельзя размещать новые ответы.

Serejka_Rich

Умник
Добрый день.

Небольшое описание:
Игрок встает на пикап, соглашается, его телепортирует куда-либо (координаты поставите), за убийство игрока + 200$, за смерть -100$.
- Рандом оружие (5 видов).
- Красивый текст при убийстве/смерти.

Сразу же говорю, неточная копия..
- Статистика арены есть.
- Есть маппинг.

​
Ко всем new
PHP:
new zone[MAX_PLAYERS], pickupzone;
В OnPlayerConnect:

PHP:
zone[playerid] = false;
В OnPlayerSetSpawn:
PHP:
	if(zone[playerid] == 1)
{
    SetPlayerPos(playerid, 2891.4065,2222.7935,10.8203);
    GivePlayerWeapon(playerid, 9, 200);
    GivePlayerWeapon(playerid, 16, 200);
    GivePlayerWeapon(playerid, 24, 200);
    GivePlayerWeapon(playerid, 26, 200);
    GivePlayerWeapon(playerid, 32, 200);
    GivePlayerWeapon(playerid, 34, 200);
}
В OnGameModeInit:
PHP:
	pickupzone = CreatePickup(1239,48,2892.5820,2209.0056,10.8203, -1);
В OnPlayerPickup(OnPlayerPickUpPickUp):
PHP:
else if(pickupid == pickupzone)
{
    ShowPlayerDialog(playerid,5999,DIALOG_STYLE_LIST,"Арена смерти","Участвовать\n Не участвовать","Принять","Отмена");
    SetPlayerPos(playerid, 2888.8359,2204.2607,10.8203); // ставите координаты, чтобы когда встанишь на пикап, немного тпшило от него, а то диалог.окно будет появляеться. :|
}
В OnDialogResponse:
PHP:
if(dialogid == 5999)
{
    switch(listitem)
    {
    case 0:
        {
            zone[playerid] = 1;
            SendClientMessage(playerid, -1, "Вы приняли участие в арене смерти.");
            SetPlayerPos(playerid, 2891.4065,2222.7935,10.8203);
             GivePlayerWeapon(playerid, 9, 200);
             GivePlayerWeapon(playerid, 16, 200);
             GivePlayerWeapon(playerid, 24, 200);
             GivePlayerWeapon(playerid, 26, 200);
             GivePlayerWeapon(playerid, 32, 200);
             GivePlayerWeapon(playerid, 34, 200);
        }
    case 1:
        {
            SendClientMessage(playerid, -1, "Вы отказались от участия.");
        }
    }
	}
В OnPlayer Death:
PHP:
    if(zone[playerid] == 1 || zone[killerid] == 1)
{
    GivePlayerMoney(killerid, -200);
    GivePlayerMoney(playerid, 100);
    PlayerInfo[killerid][pArena] += 1;
    format(string, sizeof(string), "~r~$+%d", 200);
    GameTextForPlayer(playerid, string, 200, 1);
    format(string, sizeof(string), "~r~$-%d", 100);
    GameTextForPlayer(killerid, string, 200, 1);
}
Создаем 3D Text:
PHP:
Create3DTextLabel(" {FFFFFF}Арена смерти.\n За убийство 200$, За смерть -100$\n Чтобы выйти из зоны: /exarena ",COLOR_GREEN,2892.5820,2209.0056,10.8203,20.0,0,1);
Ну и команда выйти из Арены:
PHP:
if(strcmp(cmd, "/exarena", true) == 0)
{
    if(zone[playerid] == 0) return 1;
    SetPlayerHealth(playerid, 0), SendClientMessage(playerid, -1, "Вы покинули арену смерти.");
    zone[playerid] = 0;
    return true;
}
[/CENTER]
Так, теперь делаем Статистику Зоны!
В pInfo:
PHP:
pArena,
В OnPlayerConnect:
PHP:
PlayerInfo[playerid][pArena] = 0;
В ShowStats:
PHP:
new arena1 = PlayerInfo[targetid][pArena];
В OnPlayerRegister:
PHP:
ini_setInteger(iniFile, "Arena", PlayerInfo[playerid][pArena]);
В OnPlayerSave
PHP:
	ini_setInteger(iniFile, "Arena", PlayerInfo[playerid][pArena]);
В OnPlayerLogin
PHP:
ini_getInteger(iniFile, "Arena", PlayerInfo[playerid][pArena]);
Ну и в саму статистику добавляете куда-нибудь:
Количество убийств в Арене: %d
Что-то вроде этого должно получиться:
PHP:
format(pizda3,sizeof(pizda3),"{FF9900}Наркотики: {EEEEFF}%d\n{FF9900}Материалы: {EEEEFF}%d\n{FF9900}Наркотики на складе: {eeeeff}%d\n{ff9900}Материалы на складе: {eeeeff}%d\nКоличество убийств в Арене Смерти: {eeeeff}%d",drugs,mats,drugs1,mats1,arena1);
Ну и конечно же, добавляем саму клетку :)
PHP:
CreateObject(18857,2894.04003906,2220.13403320,12.31999969,0.00000000,0.00000000,0.00000000); //object(cage20mx20mx10m) (1)
​
Автор: Serejka_Rich!
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу