Добрый день.
Небольшое описание:
Игрок встает на пикап, соглашается, его телепортирует куда-либо (координаты поставите), за убийство игрока + 200$, за смерть -100$.
- Рандом оружие (5 видов).
- Красивый текст при убийстве/смерти.
Сразу же говорю, неточная копия..
- Статистику арены смерти чуть позже доделаю.
- Ну и маппинг позже сделаю, сейчас нет возможности зайти в mta.
Начнем.
Ко всем new:
Code
new zone[MAX_PLAYERS], pickupzone;
В OnPlayerConnect:
Code
PlayerInfo[playerid][zone] = false;
В public SetPlayerSpawn:
Code
if(PlayerInfo[playerid][zone] == 1)
{
SetPlayerPos(playerid, 268.5777,1857.9351,9.8133);
switch(random(6))
{
case 0: GivePlayerWeapon(playerid, 9, 200);
case 1: GivePlayerWeapon(playerid, 16, 200);
case 2: GivePlayerWeapon(playerid, 24, 200);
case 3: GivePlayerWeapon(playerid, 26, 200);
case 4: GivePlayerWeapon(playerid, 32, 200);
case 5: GivePlayerWeapon(playerid, 34, 200);
}
}
В OnGameModeInit:
Code
pickupzone = CreatePickup(1239, x,y,z,-1); // ставите координаты где хотите..
В OnPlayerPickup:
Code
if(pickupid == pickupzone)
{
ShowPlayerDialog(playerid, 599, DIALOG_STYLE_MSGBOX,"Арена смерти","Добро пожаловать на арену смерти.\nОписание: за убийство вы получаете $200, за смерть -$100.\nВы хотите принять участие в арене смерти?","Принять","Отмена");
SetPlayerPos(playerid, x,y,z); // ставите координаты, чтобы когда встанишь на пикап, немного тпшило от него, а то диалог.окно будет появляеться. :|
В OnDialogResponse:
Code
case 599:
{
switch(listitem)
{
case 0:
{
PlayerInfo[playerid][zone] = 1;
SendClientMessage(playerid, -1, "Вы приняли участие в арене смерти.");
SetPlayerPos(playerid, 268.5777,1857.9351,9.8133);
switch(random(6))
{
case 0: GivePlayerWeapon(playerid, 9, 200);
case 1: GivePlayerWeapon(playerid, 16, 200);
case 2: GivePlayerWeapon(playerid, 24, 200);
case 3: GivePlayerWeapon(playerid, 26, 200);
case 4: GivePlayerWeapon(playerid, 32, 200);
case 5: GivePlayerWeapon(playerid, 34, 200);
}
}
case 1:
{
SendClientMessage(playerid, -1, "Вы отказались от участия.");
}
}
}
В OnPlayerDeath:
Code
if(PlayerInfo[playerid][zone] == 1 || PlayerInfo[killerid][zone] == 1)
{
new string[126];
GivePlayerMoney(killerid, -200);
GivePlayerMoney(playerid, 100);
format(string, sizeof(string), "~r~$+%d", 200);
GameTextForPlayer(playerid, string, 200, 1);
format(string, sizeof(string), "~r~$-%d", 100);
GameTextForPlayer(killerid, string, 200, 1);
}
Ну и команда для выхода с арены:
Code
CMD:exarena(playerid, params[])
{
if(PlayerInfo[playerid][zone] == 0) return 1;
SetPlayerHealth(playerid, 0), SendClientMessage(playerid, -1, "Вы покинули арену смерти.");
PlayerInfo[playerid][zone] = 0;
return true;
}
Автор:Like2