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
это ты на каком языке написал?
![Cheesy](images/smilies/biggrin.png)
D
===
ни чего не вышло
![Cheesy](images/smilies/biggrin.png)
D
Re: newkeys & timer -
Johnny_Xayc - 03.10.2010
на pawn я написал,просто использую макросы=)
Re: newkeys & timer -
[CripZ]SERCH - 03.10.2010
го без макросов плз
![Cheesy](images/smilies/biggrin.png)
напиши по человечески
Re: newkeys & timer -
ZiGGi - 03.10.2010
Quote:
Originally Posted by [CripZ]SERCH
го без макросов плз ![Cheesy](images/smilies/biggrin.png)
напиши по человечески
|
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
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
это и при том что я NUM4 & NUM6 заменил на настоящий код клавиш
|
зря, а если код измениться, будешь очень долго потом искать где ошибка?!
Re: newkeys & timer -
ZiGGi - 03.10.2010
Quote:
Originally Posted by [CripZ]SERCH
один из нумов:
|
и что это? Это даже на верхний код не похоже...