SA-MP Forums Archive
newkeys & timer - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: newkeys & timer (/showthread.php?tid=180380)

Pages: 1 2


newkeys & timer - [CripZ]SERCH - 01.10.2010

Добрый день или что у вас там за окном.
Прошу помочь мне со следующей проблемой...

------
Алгоритм:
Игрок нажимает NUM6 > выдает сообщение в чат > запускается таймер > игрок перекрашивается в другой цвет > килится таймер > игроку возвращается свой цвет ...
Игрок нажимает NUM4 > выдает сообщение в чат > запускается таймер > игрок перекрашивается в другой цвет > килится таймер > игроку возвращается свой цвет ...
------
Проблема:
Заключается в том, что когда человек нажал одну из этих кнопок и сразу же тыкает на вторую ... то действует алгоритм:
Игроку выдается цвет от первой нажатой кнопки > килится таймер > выдается цвет от второй нажатой кнопки > таймер потерялся и цвет остается от второй нажатой кнопки.

--------
Желаемое решение:
Сделать так:
(алгоритм)
Игрок нажимает NUM6 > клацает на NUM4 > в чат выводится Предупреждение о том что один из NUM'ов уже нажат, мол подождите несколько секунд > килится таймер "несколько секунд" > NUM4 становится доступным ...

======
Очень прошу помочь с этой проблемой!



Re: newkeys & timer - Johnny_Xayc - 01.10.2010

при нажатии на NUM4 делай SetPVarInt(playerid,"NUM",4);
и в кнопку NUM6 делай проверку if(GetPVarInt(playerid,"NUM")==4)return SendClientMessage(playerid,WHITE,"Вы уже нажали кнопку"),1;

аналогично с NUM6
ах да и ещё в KillTimer удаляй PVar (DeletePVar(playerid,"NUM")


Re: newkeys & timer - [CripZ]SERCH - 01.10.2010

сейчас юзану ... сек мэн


Re: newkeys & timer - dimonml - 01.10.2010

Удалил: тут был плохой совет


Re: newkeys & timer - Stepashka - 01.10.2010

Можно вообще таймеры не юзать.


Re: newkeys & timer - [CripZ]SERCH - 01.10.2010

ну а как ты предложишь степашк?


Re: newkeys & timer - Maccer - 01.10.2010

не вникал глубоко в суть проблемы, но напомню что таймер можно запускать так, чтоб сработал только один раз. тогда убивать его не придется. если я не правильно понял суть проблемы, извиняйте )


Re: newkeys & timer - [CripZ]SERCH - 02.10.2010

не работает по принципу Johnny_Xayc ...
жму на нум6 - все ок ....
жму на нум4 - пишет клавиша уже нажата (пишет бесконечно) ...
ставлю на обе клавиши такой алгоритм так они нажимаются как и раньше ....

вот код одной из клавиш:

Code:
   if(newkeys == 16384 && (GetTickCount() - Lag[playerid]) > 9900)
   {
	new string[STR], tmpcolour;
    switch(Player[playerid][pTeam])
    {
    case L_OL1: tmpcolour = ass;
    case L_OL2: tmpcolour = ass1;
    case L_OL3: tmpcolour = ass2;
    default:
    {
    SendClientMessage(playerid, 0x000000, "лол?");
    return 0;
    }
	}
(тут все что просиходит после нажатия нума)
	{
    if(IsPlayerConnected(i))
    {
    if(Player[playerid][pTeam] == Player[i][pTeam])
    {
   	SendClientMessage(i, tmpcolour, string);
    }
    }
    }
    Lag[playerid] = GetTickCount();
    }



Re: newkeys & timer - Johnny_Xayc - 02.10.2010

[CripZ]SERCH -_-,у меня работает!


Re: newkeys & timer - [CripZ]SERCH - 02.10.2010

блин ...
скинь тогда код я посмотрю что не так напортачил у себя )


Re: newkeys & timer - Johnny_Xayc - 02.10.2010

я же тебе уже дал пример
pawn Code:
if(newkeys == NUM4)THEN
      if(GetPVarInt(playerid,"NUM6"))return .i.;
      if(GetPVarInt(playerid,"NUM4"))return ты уже нажимал эту кнопку!;
      SetPVarInt(playerid,"NUM4",1);
      SetTimerEx(".i.",5000,0,"ii",playerid,4);
END
if(newkeys == NUM6)THEN
      if(GetPVarInt(playerid,"NUM4"))return .i.;
      if(GetPVarInt(playerid,"NUM6"))return ты уже нажимал эту кнопку!;
      SetPVarInt(playerid,"NUM6",1);
      SetTimerEx(".i.",5000,0,"ii",playerid,6);
END
function:.i.(playerid,num)THEN
switch(num)THEN
       case 4:DeletePVar(playerid,"NUM4");
       case 6:DeletePVar(playerid,"NUM6");
END
END

вот тебе пример


Re: newkeys & timer - [CripZ]SERCH - 03.10.2010

o_O
это ты на каком языке написал? D
===
ни чего не вышло D


Re: newkeys & timer - Johnny_Xayc - 03.10.2010

на pawn я написал,просто использую макросы=)


Re: newkeys & timer - [CripZ]SERCH - 03.10.2010

го без макросов плз
напиши по человечески


Re: newkeys & timer - ZiGGi - 03.10.2010

Quote:
Originally Posted by [CripZ]SERCH
View Post
го без макросов плз
напиши по человечески
http://pastebin.com/nEKq8Z8P


Re: newkeys & timer - [CripZ]SERCH - 03.10.2010

Code:
error 076: syntax error in the expression, or invalid function call
error 076: syntax error in the expression, or invalid function call
error 010: invalid function or declaration
warning 235: public function lacks forward declaration (symbol "pisya")
это и при том что я NUM4 & NUM6 заменил на настоящий код клавиш
===
что делать?


Re: newkeys & timer - ZiGGi - 03.10.2010

Quote:
Originally Posted by [CripZ]SERCH
View Post
Code:
error 076: syntax error in the expression, or invalid function call
error 076: syntax error in the expression, or invalid function call
error 010: invalid function or declaration
warning 235: public function lacks forward declaration (symbol "pisya")
это и при том что я NUM4 & NUM6 заменил на настоящий код клавиш
===
что делать?
покажи строчки error 076: и твой код


Re: newkeys & timer - [CripZ]SERCH - 03.10.2010

один из нумов:

Code:
   if(newkeys == 16384 && (GetTickCount() - lolkostyle[playerid]) > 9900)
   {
   new string[STR], tmpcolour;
   switch(Player[playerid][pTeam])
   {
   case T_LOL: tmpcolour = COLOR_TLOL;
   case T_LOL1: tmpcolour = COLOR_TLOL1;
   case T_LOL2: tmpcolour = COLOR_TLOL2;
   default:
   {
   SendClientMessage(playerid, 0xf0f0f0, "lol?");
   return 0;
   }
	}
   format(string,STR," %s aaaaaaa ya dypak ybeite menya", Playername(playerid));
   for(new i; i < MAX_PLAYERS; i++)
	{
   if(IsPlayerConnected(i))
   {
   if(Player[playerid][pTeam] == Player[i][pTeam])
   {
   	SendClientMessage(i, tmpcolour, string);
   }
   }
   }
   lolkostyle[playerid] = GetTickCount();
   }



Re: newkeys & timer - Stepashka - 03.10.2010

Quote:
Originally Posted by [CripZ]SERCH
View Post
это и при том что я NUM4 & NUM6 заменил на настоящий код клавиш
зря, а если код измениться, будешь очень долго потом искать где ошибка?!


Re: newkeys & timer - ZiGGi - 03.10.2010

Quote:
Originally Posted by [CripZ]SERCH
View Post
один из нумов:
и что это? Это даже на верхний код не похоже...