Всем привет. Сегодня я расскажу, как сделать простую DM арену для вашего сервера SAMP.
Оригинал ( на английском ) - Клик
Ко всем new добавим:
PHP код:
new in_dm[MAX_PLAYERS];
К #define ( если нет ):
PHP код:
#define COLOR_GREEN 0x33AA33AA
#define COLOR_WHITE 0xFFFFFFFF
В public OnPlayerConnect:
PHP код:
in_dm[playerid] = 0;
В public OnPlayerSpawn:
PHP код:
if(in_dm[playerid] == 1)
{
SetPlayerHealth(playerid, 100); //здоровье
SetPlayerArmour(playerid, 100); //броня
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 26, cellmax); //оружие
GivePlayerWeapon(playerid, 28, cellmax);
GivePlayerWeapon(playerid, 24, cellmax);
GivePlayerWeapon(playerid, 34, cellmax);
SetPlayerInterior(playerid, 1); //спавн
switch(random(5)) //рандомный спавн
{
case 0: SetPlayerPos(playerid, 1412.639892,-1.787510,1000.924377);
case 1: SetPlayerPos(playerid, 1385.8126,-24.9797,1000.9221);
case 2: SetPlayerPos(playerid, 1410.6050,-43.1180,1000.9211);
case 3: SetPlayerPos(playerid, 1417.2075,-45.5887,1007.8926);
case 4: SetPlayerPos(playerid, 1417.8618,-32.7256,1007.8937);
}
SetPlayerVirtualWorld(playerid, 1);
SetPlayerSkin(playerid, 167); //скин
}
Ко всем stock ( если нет ):
PHP код:
stock GetName(playerid)
{
new player_name_id[24];
GetPlayerName(playerid,player_name_id,24);
return player_name_id;
}
В public OnPlayerDeatch:
PHP код:
if(in_dm[playerid] == 1)
{
new msg[60], msg2[60];
format(msg, sizeof(msg), "Вы убили %s!", GetName(playerid));
format(msg2, sizeof(msg2),"Вы были убиты %s!", GetName(killerid));
SendClientMessage(playerid, COLOR_GREEN, msg2);
SendClientMessage(killerid, COLOR_GREEN, msg);
SetPlayerHealth(killerid, 100);
SetPlayerArmour(killerid,100);
SpawnPlayer(playerid);
}
Теперь добавим команду, чтобы выйти с арены:
PHP код:
CMD:exitdm(playerid, params[])
{
if(in_dm[playerid] == 0)
{
SendClientMessage(playerid, -1, "Вы не на DM арене!");
return 1;
}
else if(in_dm[playerid] == 1)
{
InDM[playerid] = 0;
SetPlayerVirtualWorld(playerid, 0);
SetPlayerHealth(playerid, 0.00);
ForceClassSelection(playerid);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, -1, "Вы покинули DM арену!");
return 1;
}
return 1;
}
Теперь, чтобы зайти на арену:
PHP код:
CMD:dm(playerid, params[])
{
in_dm[playerid] = 1;
GameTextForPlayer(playerid, "/exitdm to exit!", 3000, 4);
SendClientMessage(playerid, -1, "{66FF66}Добро пожаловать на DM арену! {BABABA}");
SetPlayerInterior(playerid, 1);
switch(random(5)) //рандомный спавн
{
case 0: SetPlayerPos(playerid, 1412.639892,-1.787510,1000.924377);
сase 1: SetPlayerPos(playerid, 1385.8126,-24.9797,1000.9221);
case 2: SetPlayerPos(playerid, 1410.6050,-43.1180,1000.9211);
case 3: SetPlayerPos(playerid, 1417.2075,-45.5887,1007.8926);
case 4: SetPlayerPos(playerid, 1417.8618,-32.7256,1007.8937);
}
SetPlayerVirtualWorld(playerid, 1);
SetPlayerTeam(playerid, playerid);
ResetPlayerWeapons(playerid);
SetPlayerColor(playerid, COLOR_WHITE);
SetPlayerSkin(playerid, 167);
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
GivePlayerWeapon(playerid, 26, cellmax); //cellmax - бесконечные патроны. Вы можете выставить свое значение, которое вам нужно
GivePlayerWeapon(playerid, 28, cellmax);
GivePlayerWeapon(playerid, 24, cellmax);
GivePlayerWeapon(playerid, 34, cellmax);
GivePlayerWeapon(playerid, 16, 2);
new str[144], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(str, sizeof(str), "{FFFFFF}%s {BABABA}(ID: %d) зашел на DM арену!", name, playerid);
SendClientMessageToAll(-1, str);
return 1;
}
( Прим. SooBad. Для бесконечного количества патронов вместо cellmax можно использовать число больше 10998 )
Вот и все. Будут вопросы - пиши