Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Как сделать такое? - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Тема закрыта

Как сделать такое?

#1
Пользователь офлайн   NazarKuleba 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Как сделать мониторинг игроков такой?
Изображение
0

#2
Пользователь онлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Сделать к каждой банде переменную и после загрузки данных игрока, проверять банду. Если с Гроу, то к той переменной +1.
0

#3
Пользователь офлайн   yxen 

  • Новичок
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Функцией for перебор всех игроков по бандам. Потом вывод диалога
0

#4
Пользователь офлайн   #diviasys 

  • Новичок
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияm1n1vv (11 Январь 2017 - 17:34) писал:

Сделать к каждой банде переменную и после загрузки данных игрока, проверять банду. Если с Гроу, то к той переменной +1.


Когда игрока принимаешь/увольняешь - +1/-1 к переменной

Сообщение отредактировал #diviasys: 11 Январь 2017 - 18:14

0

#5
Пользователь офлайн   Manifest_Elgujak 

  • Знаток
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Это еще смотря какой мониторинг тебе нужен, подсчет онлайн игроков в бандах? или всех даже те что в offline... Если offline то уточни еще каким образом у тебя сохраняются данные чтобы мы могли тебе написать функцию(если она возможна) которая будет подсчитывать игроков..
0

#6
Пользователь офлайн   NazarKuleba 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Создам к примеру new dm[MAX_PLAYERS];
Как дальше
не понимаю
Скрытый текст [Показать]

0

#7
Пользователь офлайн   _54REGION_ 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
new gapDM[22]; //кол зон 
в enum PlayerInfo
{
DM,//для проверки на кокой зоне игрок


в onplayerconect
pStats[playerid][DM] = 0;



при заходе на дм зону

на првую зону например
gapDM[0] ++;  // игрок зайдёт на первую зону +1в мониторинге 1 зоны
pStats[playerid][DM] = 1;// это для проверки на какой зоне и для спавна (при смерти возвращает обратно) индивидуальным таймером в онплаурспавн ниже всё будет
Dms(playerid); //(это для того что если игрок покидает дм зону ниже сток по нему думаю разберёшся)


при заходе на 2 зону

gapDM[1] ++;
Dms(playerid);  и так далее


в onplayerconnect

if(pStats[playerid][DM] > 0) SetTimerEx("Tpdm", 500, false, "i", playerid);//для вызова паблика с проверкой если игрок на зоне его телепортирует на неё как ты укажеш в паблике Tpdm



команда для выхода с дм зоны
if(strcmp(cmd, "/exitdm", true) == 0)
	{
    if(pStats[playerid][DM] == 0) return SendClientMessage(playerid,COLOR_RED,"Вы не на ДМ зоне");
    Dms(playerid);
	pStats[playerid][DM] = 0;
	SetPlayerRandomSpawn(playerid);
	SendClientMessage(playerid,COLOR_RED,"Вы вышли с ДМ зоны");
	return 1;
    }


в onplayerdisconnect
Dms(playerid);


это в меню телепортов дм зон (диалог с телепортами)

                        new qq[600];
			new ss[100];
			format(ss, sizeof(ss), "1. •Вулкан•\t\t\t%d человек\n", gapDM[0]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "2. •Руины•\t\t\t%d человек\n", gapDM[1]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "3. •Островок•\t\t\t%d человек\n", gapDM[2]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "4. •Выживание•\t\t%d человек\n", gapDM[3]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "5.•На высоте cмерти•\t\t%d человек\n", gapDM[4]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "6. •Бочка•\t\t\t%d человек\n", gapDM[5]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "7. •Shotgun•\t\t\t%d человек\n", gapDM[6]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "8. •Deagle+Shot•\t\t%d человек\n", gapDM[7]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "9. •Sawn•\t\t\t%d человек\n", gapDM[8]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "10. •M4•\t\t\t\t%d человек\n", gapDM[9]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "11. •MP5•\t\t\t%d человек\n", gapDM[10]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "12. •Sniper•\t\t\t%d человек\n", gapDM[11]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "13. •Tec 9•\t\t\t%d человек\n", gapDM[12]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "14. •Пляж•\t\t\t%d человек\n", gapDM[13]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "15. •Fire•\t\t\t%d человек\n", gapDM[14]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "16. •Captain•\t\t\t%d человек\n", gapDM[15]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "17. •Titanic•\t\t\t%d человек\n", gapDM[16]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "18. •Roof•\t\t\t%d человек\n", gapDM[17]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "19. •Chainsaw•\t\t\t%d человек\n", gapDM[18]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "20. •Town•\t\t\t%d человек\n", gapDM[19]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "21. •Deagle•\t\t\t%d человек\n", gapDM[20]);
			strcat(qq, ss);
			format(ss, sizeof(ss), "22. •Counter Strike•\t\t%d человек", gapDM[21]);
			strcat(qq, ss);
			ShowPlayerDialog(playerid, 889, DIALOG_STYLE_LIST, "1. Название                                     2. Мониторинг", qq, "Выбрать", "Закрыть");


это тоже в низ мода если игрок к примеру на 1 зоне
forward Tpdm(playerid);   //это проверка если игрок на какой либо из зон его туда телепортирует
public Tpdm(playerid)
{
	if(pStats[playerid][DM] == 1)
	{
        код зоны


код зоны должно быть идентично как и при заходе на зону но без gapDM[0] ++; Dms(playerid); тут этого не должно быть




в низ мода

stock Dms(playerid)
if(pStats[playerid][DM])
     {
         switch(pStats[playerid][DM])
         {
              case 1: pStats[playerid][DM]  = 1, gapDM[0] --;
              case 2: pStats[playerid][DM]  = 2, gapDM[1] --;
              case 3: pStats[playerid][DM]  = 3, gapDM[2] --;
              case 4: pStats[playerid][DM]  = 4, gapDM[3] --;
              case 5: pStats[playerid][DM]  = 5, gapDM[4] --;
              case 6: pStats[playerid][DM]  = 6, gapDM[5] --;
              case 7: pStats[playerid][DM]  = 7, gapDM[6] --;
              case 8: pStats[playerid][DM]  = 8, gapDM[7] --;
              case 9: pStats[playerid][DM]  = 9, gapDM[8] --;
              case 10: pStats[playerid][DM]  = 10, gapDM[9] --;
              case 11: pStats[playerid][DM]  = 11, gapDM[10] --;
              case 12: pStats[playerid][DM]  = 12, gapDM[11] --;
              case 13: pStats[playerid][DM]  = 13, gapDM[12] --;
              case 14: pStats[playerid][DM]  = 14, gapDM[13] --;
              case 15: pStats[playerid][DM]  = 15, gapDM[14] --;
              case 16: pStats[playerid][DM]  = 16, gapDM[15] --;
              case 17: pStats[playerid][DM]  = 17, gapDM[16] --;
              case 18: pStats[playerid][DM]  = 18, gapDM[17] --;
              case 19: pStats[playerid][DM]  = 19, gapDM[18] --;
              case 20: pStats[playerid][DM]  = 20, gapDM[19] --;
              case 21: pStats[playerid][DM]  = 21, gapDM[20] --;
              case 22: pStats[playerid][DM]  = 22, gapDM[21] --;
         }
    }

это пихай туда когда игрок уходит с любой зоны и после смерти не возвратится на неё
Dms(playerid);

Сообщение отредактировал _54REGION_: 13 Январь 2017 - 08:25

0

#8
Пользователь офлайн   NazarKuleba 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Спасибо)
Вопрос исле я на первою зону создам так?
на првую зону например 
gapDM[0] ++;  // игрок зайдёт на первую зону +1в мониторинге 1 зоны
pStats[playerid][DM] = 1;// это для проверки на какой зоне и для спавна (при смерти возвращает обратно) индивидуальным таймером в онплаурспавн ниже всё будет
Dms(playerid); //(это для того что если игрок покидает дм зону ниже сток по нему думаю разберёшся)


то при заходе на 2 зону
gapDM[1] ++;
Dms(playerid);  и так далее

Уже не использовать?*
pStats[playerid][DM] = 1;// это для проверки на какой зоне и для спавна (при смерти возвращает 

Непонимаю
это пихай туда когда игрок уходит с любой зоны и после смерти не возвратится на неё
Dms(playerid);

Сообщение отредактировал NazarKuleba: 13 Январь 2017 - 11:55

0

#9
Пользователь офлайн   _54REGION_ 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
gapDM[0] ++;ЭТО НА 1
gapDM[1] ++; ЭТО ПРИБАВЛЯЕТ ЧИСЛО ЗАШЕДШИХ ИГРОКОВ НА ВТОРУЮ ЗОНУ
gapDM[2] ++;ЭТО НА 3-ТЬЮ




Dms(playerid); А ЭТО ЕСЛИ ИГРОК БЫЛ НА КАКОЙ ЛИБО ЗОНЕ, И ВЫШЕЛ С НЕЁ. К ПРИМЕРУ ВЫШЕЛ С СЕРВЕРА ИЛИ УШЁЛ С ЗОНЫ, ТО ЧИСЛО ЗАШЕДШИХ ИГРОКОВ УМЕНЬШАЕТСЯ С ПОМОЩЬЮ ПРОВЕРКИ В СТОКЕ ОПРЕДЕЛИТ НА КАКОЙ ЗОНЕ БЫЛ ИГРОК


forward Tpdm(playerid); //это проверка если игрок на какой либо из зон его туда телепортирует
public Tpdm(playerid)
{
if(pStats[playerid][DM] == 1)
{
код зоны сюда не нужно впихивать gapDM[0] ++; Dms(playerid); так как переменая к примеру gapDM[2] ++; уже была использованна при заходе на зону тоесть если впихнёш то при смерти игрока будет его телепортировать на зону и кол-во участников на ней увеличиваться

Сообщение отредактировал _54REGION_: 13 Январь 2017 - 18:54

0

#10
Пользователь офлайн   NazarKuleba 

  • Эксперт
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщения_54REGION_ (13 Январь 2017 - 18:50) писал:

Скрытый текст [Показать]

forward Tpdm(playerid);   //это проверка если игрок на какой либо из зон его туда телепортирует
public Tpdm(playerid)
{
        if(pStats[playerid][DM] == 1)
        {
        И вот тут что нужно делать непонятно)))

использовать это?
    if(listitem == 0)
	{
	ResetPlayerWeapons(playerid);
    SetPlayerArmour(playerid,100);
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,25,999);
    GivePlayerWeapon(playerid,24,999);
    GivePlayerWeapon(playerid,33,999);
    GivePlayerWeapon(playerid,31,999);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPPos(playerid,-3270.3665,-3190.0110,4.4302);
    SetPlayerFacingAngle(playerid,239.0523);
    format(GlobalInfo, sizeof(GlobalInfo), "{FF8700}°• %s {FFA700}зашел на {FFDC00}Dead match {FFFB00}Вулкан •°", PlayerName(playerid));
    SendClientMessageToAll(0x0000F6AA, GlobalInfo);
    }
    if(listitem == 1)
	{
	ResetPlayerWeapons(playerid);
	SetPlayerArmour(playerid,100);
    SetPlayerHealth(playerid,100);
    GivePlayerWeapon(playerid,31,999);
    GivePlayerWeapon(playerid,32,999);
    GivePlayerWeapon(playerid,25,999);
    GivePlayerWeapon(playerid,24,999);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SetPPos(playerid,-1307.8199,2527.1794,87.5781);
    SetPlayerFacingAngle(playerid,343.1032);
    format(GlobalInfo, sizeof(GlobalInfo), "{FF8700}°• %s {FFA700}зашел на {FFDC00}Dead match {FFFB00} Руины •°", PlayerName(playerid));
    SendClientMessageToAll(0x0000F6AA, GlobalInfo);
    }
    if(listitem == 2)
	{
	ResetPlayerWeapons(playerid);
	SetPlayerArmour(playerid,100);
    SetPlayerHealth(playerid,100);
    SetPlayerInterior(playerid,0);
    GivePlayerWeapon(playerid,31,999);
    GivePlayerWeapon(playerid,25,999);
    GivePlayerWeapon(playerid,24,999);
    GivePlayerWeapon(playerid,33,999);
    GivePlayerWeapon(playerid,32,999);
    SetPlayerVirtualWorld(playerid,0);
    SetPPos(playerid,230.7318,249.9010,58.7200);
    SetPlayerFacingAngle(playerid,343.1032);
    format(GlobalInfo, sizeof(GlobalInfo), "{FF8700}°• %s {FFA700}зашел на {FFDC00}Dead match {FFFB00} Берлин 1945 •°", PlayerName(playerid));
    SendClientMessageToAll(0x0000F6AA, GlobalInfo);
    }


Сообщение отредактировал NazarKuleba: 13 Январь 2017 - 19:49

0

Поделиться темой:


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Тема закрыта

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей