- Регистрация
- 27 Авг 2015
- Сообщения
- 357
- Лучшие ответы
- 0
- Репутация
- 188
Система игровых комнат
Автор:
Время работы: 30+ минут
Простая, как бы, система. Разрабатывал для игротек в SAMP. То есть люди бы садились за ПК заходили бы в разные сервера(комнаты) и играли бы. Планирую еще добавить пару фишек в будущем!Автор:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Время работы: 30+ минут
Ко всем переменным:
PHP:
//__PaintBall
#define MAX_ROOMS 2
enum RumInfo
{
rPlayers
}
new Room[MAX_ROOMS][RumInfo];
new Text:RoomsList[8],Text:GameMotd[5],PlayerText:StatsMotd[MAX_PLAYERS][2];
new PaintGun[] = {24,31,25,29,30,23};
new Float:PaintballSpawns[6][3] = {
{2563.6877,2807.0288,10.8203},
{2554.0505,2837.7419,10.8203},
{2585.6748,2848.5283,10.8203},
{2598.7083,2843.5200,10.8203},
{2546.7622,2830.9004,14.2559},
{2575.9900,2839.3103,19.9922}
};
PHP:
if(GetPVarInt(playerid, "InGame"))
{
GivePlayerWeapon(playerid, PaintGun[random(sizeof(PaintGun))], 300);
new rand = random(sizeof(PaintballSpawns));
SetPlayerPos(playerid, PaintballSpawns[rand][0], PaintballSpawns[rand][1], PaintballSpawns[rand][2]);
SetPlayerVirtualWorld(playerid,GetPVarInt(playerid,"Room"));
SetPlayerHealth(playerid,100);
return 1;
}
PHP:
if(clickedid == Text:INVALID_TEXT_DRAW)
{
if(GetPVarInt(playerid,"RoomList") == 1)
{
for(new td; td < 8; td++) TextDrawHideForPlayer(playerid,RoomsList[td]);
DeletePVar(playerid,"RoomList");
}
}
if(clickedid == RoomsList[2])
{
if(Room[0][rPlayers] >= 10) return SendClientMessage(playerid,0xFF0000FF,"[i] Ошибка! Данная комната заполнена!");
Room[0][rPlayers]++;
GivePlayerWeapon(playerid, PaintGun[random(sizeof(PaintGun))], 300);
new rand = random(sizeof(PaintballSpawns));
SetPlayerPos(playerid, PaintballSpawns[rand][0], PaintballSpawns[rand][1], PaintballSpawns[rand][2]);
SetPlayerVirtualWorld(playerid,0);
for(new td; td < 8; td++) TextDrawHideForPlayer(playerid,RoomsList[td]);
DeletePVar(playerid,"RoomList");
CancelSelectTextDraw(playerid);
SetPVarInt(playerid,"Kills",0);//Убийств
SetPVarInt(playerid,"Death",0);//Смертей
SetPVarInt(playerid,"InGame",1);//В игре
SetPVarInt(playerid,"Room",1);//Комната
for(new td; td < 5; td++) TextDrawShowForPlayer(playerid,GameMotd[td]);
PlayerTextDrawSetString(playerid,StatsMotd[playerid][0], "0");
PlayerTextDrawSetString(playerid,StatsMotd[playerid][1], "0");
for(new td; td < 2; td++) PlayerTextDrawShow(playerid,StatsMotd[playerid][td]);
SendClientMessage(playerid,0xFFFFFFFF ,"Вы вошли в первую комнату!");
}
if(clickedid == RoomsList[5])
{
if(Room[1][rPlayers] >= 10) return SendClientMessage(playerid,0xFF0000FF,"[i] Ошибка! Данная комната заполнена!");
Room[1][rPlayers]++;
GivePlayerWeapon(playerid, PaintGun[random(sizeof(PaintGun))], 300);
new rand = random(sizeof(PaintballSpawns));
SetPlayerPos(playerid, PaintballSpawns[rand][0], PaintballSpawns[rand][1], PaintballSpawns[rand][2]);
SetPlayerVirtualWorld(playerid,1);
for(new td; td < 8; td++) TextDrawHideForPlayer(playerid,RoomsList[td]);
DeletePVar(playerid,"RoomList");
CancelSelectTextDraw(playerid);
SetPVarInt(playerid,"Kills",0);//Убийств
SetPVarInt(playerid,"Death",0);//Смертей
SetPVarInt(playerid,"InGame",1);//В игре
SetPVarInt(playerid,"Room",2);//Комната
for(new td; td < 5; td++) TextDrawShowForPlayer(playerid,GameMotd[td]);
PlayerTextDrawSetString(playerid,StatsMotd[playerid][0], "0");
PlayerTextDrawSetString(playerid,StatsMotd[playerid][1], "0");
for(new td; td < 2; td++) PlayerTextDrawShow(playerid,StatsMotd[playerid][td]);
SendClientMessage(playerid,0xFFFFFFFF ,"Вы вошли в вторую комнату!");
}
PHP:
GameMotd[0] = TextDrawCreate(523.000000, 150.187500, "LD_SPAC:white");
TextDrawLetterSize(GameMotd[0], 0.000000, 0.000000);
TextDrawTextSize(GameMotd[0], 109.000000, 41.000000);
TextDrawAlignment(GameMotd[0], 1);
TextDrawColor(GameMotd[0], 186596351);
TextDrawSetShadow(GameMotd[0], 0);
TextDrawSetOutline(GameMotd[0], 0);
TextDrawBackgroundColor(GameMotd[0], 255);
TextDrawFont(GameMotd[0], 4);
TextDrawSetProportional(GameMotd[0], 0);
TextDrawSetShadow(GameMotd[0], 0);
GameMotd[1] = TextDrawCreate(525.000000, 151.937500, "LD_SPAC:white");
TextDrawLetterSize(GameMotd[1], 0.000000, 0.000000);
TextDrawTextSize(GameMotd[1], 52.000000, 37.000000);
TextDrawAlignment(GameMotd[1], 1);
TextDrawColor(GameMotd[1], 288382207);
TextDrawSetShadow(GameMotd[1], 0);
TextDrawSetOutline(GameMotd[1], 0);
TextDrawBackgroundColor(GameMotd[1], 255);
TextDrawFont(GameMotd[1], 4);
TextDrawSetProportional(GameMotd[1], 0);
TextDrawSetShadow(GameMotd[1], 0);
GameMotd[2] = TextDrawCreate(578.500000, 151.937500, "LD_SPAC:white");
TextDrawLetterSize(GameMotd[2], 0.000000, 0.000000);
TextDrawTextSize(GameMotd[2], 52.000000, 37.000000);
TextDrawAlignment(GameMotd[2], 1);
TextDrawColor(GameMotd[2], 288382207);
TextDrawSetShadow(GameMotd[2], 0);
TextDrawSetOutline(GameMotd[2], 0);
TextDrawBackgroundColor(GameMotd[2], 255);
TextDrawFont(GameMotd[2], 4);
TextDrawSetProportional(GameMotd[2], 0);
TextDrawSetShadow(GameMotd[2], 0);
GameMotd[3] = TextDrawCreate(551.000000, 153.250000, "KILLS");
TextDrawLetterSize(GameMotd[3], 0.286999, 0.659375);
TextDrawAlignment(GameMotd[3], 2);
TextDrawColor(GameMotd[3], -1);
TextDrawSetShadow(GameMotd[3], 0);
TextDrawSetOutline(GameMotd[3], 0);
TextDrawBackgroundColor(GameMotd[3], 255);
TextDrawFont(GameMotd[3], 2);
TextDrawSetProportional(GameMotd[3], 1);
TextDrawSetShadow(GameMotd[3], 0);
GameMotd[4] = TextDrawCreate(605.399536, 153.250000, "DEATH");
TextDrawLetterSize(GameMotd[4], 0.286999, 0.659375);
TextDrawAlignment(GameMotd[4], 2);
TextDrawColor(GameMotd[4], -1);
TextDrawSetShadow(GameMotd[4], 0);
TextDrawSetOutline(GameMotd[4], 0);
TextDrawBackgroundColor(GameMotd[4], 255);
TextDrawFont(GameMotd[4], 2);
TextDrawSetProportional(GameMotd[4], 1);
TextDrawSetShadow(GameMotd[4], 0);
RoomsList[0] = TextDrawCreate(319.000000, 163.750000, "SELECT A ROOM");
TextDrawLetterSize(RoomsList[0], 0.161500, 0.777500);
TextDrawTextSize(RoomsList[0], 0.000000, 146.000000);
TextDrawAlignment(RoomsList[0], 2);
TextDrawColor(RoomsList[0], -1);
TextDrawUseBox(RoomsList[0], 1);
TextDrawBoxColor(RoomsList[0], 288382207);
TextDrawSetShadow(RoomsList[0], 0);
TextDrawSetOutline(RoomsList[0], 0);
TextDrawBackgroundColor(RoomsList[0], 255);
TextDrawFont(RoomsList[0], 2);
TextDrawSetProportional(RoomsList[0], 1);
TextDrawSetShadow(RoomsList[0], 0);
RoomsList[1] = TextDrawCreate(244.000000, 172.500000, "LD_SPAC:white");
TextDrawLetterSize(RoomsList[1], 0.000000, 0.000000);
TextDrawTextSize(RoomsList[1], 150.000000, 131.000000);
TextDrawAlignment(RoomsList[1], 1);
TextDrawColor(RoomsList[1], 288382207);
TextDrawSetShadow(RoomsList[1], 0);
TextDrawSetOutline(RoomsList[1], 0);
TextDrawBackgroundColor(RoomsList[1], 255);
TextDrawFont(RoomsList[1], 4);
TextDrawSetProportional(RoomsList[1], 0);
TextDrawSetShadow(RoomsList[1], 0);
RoomsList[2] = TextDrawCreate(245.500000, 173.812500, "LD_SPAC:white");
TextDrawLetterSize(RoomsList[2], 0.000000, 0.000000);
TextDrawTextSize(RoomsList[2], 147.000000, 19.000000);
TextDrawAlignment(RoomsList[2], 1);
TextDrawColor(RoomsList[2], 186596351);
TextDrawSetShadow(RoomsList[2], 0);
TextDrawSetOutline(RoomsList[2], 0);
TextDrawBackgroundColor(RoomsList[2], 255);
TextDrawFont(RoomsList[2], 4);
TextDrawSetProportional(RoomsList[2], 0);
TextDrawSetShadow(RoomsList[2], 0);
TextDrawSetSelectable(RoomsList[2], true);
RoomsList[3] = TextDrawCreate(248.000000, 176.000000, "Room N1");
TextDrawLetterSize(RoomsList[3], 0.210999, 0.760000);
TextDrawAlignment(RoomsList[3], 1);
TextDrawColor(RoomsList[3], -1);
TextDrawSetShadow(RoomsList[3], 0);
TextDrawSetOutline(RoomsList[3], 0);
TextDrawBackgroundColor(RoomsList[3], 255);
TextDrawFont(RoomsList[3], 2);
TextDrawSetProportional(RoomsList[3], 1);
TextDrawSetShadow(RoomsList[3], 0);
RoomsList[4] = TextDrawCreate(248.000000, 185.625000, "PLAYERS: 1/10");
TextDrawLetterSize(RoomsList[4], 0.188499, 0.589375);
TextDrawAlignment(RoomsList[4], 1);
TextDrawColor(RoomsList[4], -1);
TextDrawSetShadow(RoomsList[4], 0);
TextDrawSetOutline(RoomsList[4], 0);
TextDrawBackgroundColor(RoomsList[4], 255);
TextDrawFont(RoomsList[4], 2);
TextDrawSetProportional(RoomsList[4], 1);
TextDrawSetShadow(RoomsList[4], 0);
RoomsList[5] = TextDrawCreate(245.500000, 193.625061, "LD_SPAC:white");
TextDrawLetterSize(RoomsList[5], 0.000000, 0.000000);
TextDrawTextSize(RoomsList[5], 147.000000, 19.000000);
TextDrawAlignment(RoomsList[5], 1);
TextDrawColor(RoomsList[5], 186596351);
TextDrawSetShadow(RoomsList[5], 0);
TextDrawSetOutline(RoomsList[5], 0);
TextDrawBackgroundColor(RoomsList[5], 255);
TextDrawFont(RoomsList[5], 4);
TextDrawSetProportional(RoomsList[5], 0);
TextDrawSetShadow(RoomsList[5], 0);
TextDrawSetSelectable(RoomsList[5], true);
RoomsList[6] = TextDrawCreate(248.000000, 195.751098, "ROOM N2");
TextDrawLetterSize(RoomsList[6], 0.210999, 0.760000);
TextDrawAlignment(RoomsList[6], 1);
TextDrawColor(RoomsList[6], -1);
TextDrawSetShadow(RoomsList[6], 0);
TextDrawSetOutline(RoomsList[6], 0);
TextDrawBackgroundColor(RoomsList[6], 255);
TextDrawFont(RoomsList[6], 2);
TextDrawSetProportional(RoomsList[6], 1);
TextDrawSetShadow(RoomsList[6], 0);
RoomsList[7] = TextDrawCreate(248.000000, 205.050170, "PLAYERS: 1/10");
TextDrawLetterSize(RoomsList[7], 0.188499, 0.589375);
TextDrawAlignment(RoomsList[7], 1);
TextDrawColor(RoomsList[7], -1);
TextDrawSetShadow(RoomsList[7], 0);
TextDrawSetOutline(RoomsList[7], 0);
TextDrawBackgroundColor(RoomsList[7], 255);
TextDrawFont(RoomsList[7], 2);
TextDrawSetProportional(RoomsList[7], 1);
TextDrawSetShadow(RoomsList[7], 0);
PHP:
CMD:gameexit(playerid)
{
if(!GetPVarInt(playerid,"InGame")) return 1;
DeletePVar(playerid,"InGame");
Room[GetPVarInt(playerid,"Room")][rPlayers]--;
DeletePVar(playerid,"Room");
SpawnPlayer(playerid);
SendClientMessage(playerid,0xFFFFFFFF ,"Вы вышли из комнаты!");
return 1;
}
CMD:gamelist(playerid,params[])
{
new string[101];
format(string,sizeof(string),"PLAYERS: %d/10",Room[0][rPlayers]);
TextDrawSetString( RoomsList[4], string);
format(string,sizeof(string),"PLAYERS: %d/10",Room[1][rPlayers]);
TextDrawSetString(RoomsList[7], string);
for(new td; td < 8; td++) TextDrawShowForPlayer(playerid,RoomsList[td]);
SelectTextDraw(playerid,0x43434350);
SetPVarInt(playerid,"RoomList",1);
return 1;
}
PHP:
StatsMotd[playerid][0] = CreatePlayerTextDraw(playerid, 551.000000, 159.375000, "0");
PlayerTextDrawLetterSize(playerid, StatsMotd[playerid][0], 0.501000, 2.689375);
PlayerTextDrawAlignment(playerid, StatsMotd[playerid][0], 2);
PlayerTextDrawColor(playerid, StatsMotd[playerid][0], -1);
PlayerTextDrawSetShadow(playerid, StatsMotd[playerid][0], 0);
PlayerTextDrawSetOutline(playerid, StatsMotd[playerid][0], 0);
PlayerTextDrawBackgroundColor(playerid, StatsMotd[playerid][0], 255);
PlayerTextDrawFont(playerid, StatsMotd[playerid][0], 2);
PlayerTextDrawSetProportional(playerid, StatsMotd[playerid][0], 1);
PlayerTextDrawSetShadow(playerid, StatsMotd[playerid][0], 0);
StatsMotd[playerid][1] = CreatePlayerTextDraw(playerid, 604.500122, 159.375000, "0");
PlayerTextDrawLetterSize(playerid, StatsMotd[playerid][1], 0.501000, 2.689375);
PlayerTextDrawAlignment(playerid, StatsMotd[playerid][1], 2);
PlayerTextDrawColor(playerid, StatsMotd[playerid][1], -1);
PlayerTextDrawSetShadow(playerid, StatsMotd[playerid][1], 0);
PlayerTextDrawSetOutline(playerid, StatsMotd[playerid][1], 0);
PlayerTextDrawBackgroundColor(playerid, StatsMotd[playerid][1], 255);
PlayerTextDrawFont(playerid, StatsMotd[playerid][1], 2);
PlayerTextDrawSetProportional(playerid, StatsMotd[playerid][1], 1);
PlayerTextDrawSetShadow(playerid, StatsMotd[playerid][1], 0);
PHP:
if(killerid != INVALID_PLAYER_ID && GetPVarInt(playerid,"InGame") && GetPVarInt(killerid,"InGame"))
{
SetPVarInt(playerid,"Death",GetPVarInt(playerid,"Death") + 1);
SetPVarInt(killerid,"Kills",GetPVarInt(killerid,"Kills") + 1);
new str[12];
format(str,12,"%d",GetPVarInt(playerid,"Death"));
PlayerTextDrawSetString(playerid,StatsMotd[playerid][1],str);
format(str,12,"%d",GetPVarInt(playerid,"Kills"));
PlayerTextDrawSetString(killerid,StatsMotd[playerid][0], str);
}
Последнее редактирование: