02:52
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
ГангZone
SpiderxxxДата: Среда, 09.12.2009, 12:28 | Сообщение # 1
Уверенный в себе
Группа: Продвинутые
Сообщений: 250
Награды: 6
Город: VL Sity
Репутация: 56
Замечания: 0%
Статус:
Вот столкнулся с такой проблемой:

[pwn]new seconds,tiktak;
new minx, maxx, miny, maxy;
forward Inarena(playerid);

.....

for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInArea(i, minx, maxx, miny, maxy))
{
KillTimer(tiktak);
}
else
{
KillTimer(tiktak);
seconds = 15;
tiktak = SetTimer("Inarena",1000,1);
}

}
....

public Inarena(playerid)
{
seconds--;
if(seconds == 0) return KillTimer(tiktak);
new string[256];
format(string,256, "~n~~n~~n~~n~~n~~y~Come back in: ~r~%02d",seconds);
GameTextForPlayer(playerid, string,1000,3);
return 1;
}

stock IsPlayerInArea(playerid, Float:minx1, Float:maxx1, Float:miny1, Float:maxy1)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx1 && x < maxx1 && y > miny1 && y < maxy1) return 1;
return 0;
}[/pwn]

Вот, по идее, тут я с переменных minx, maxx, miny, maxy считываю коорды, проверяю, находится ли игрок в данной зоне, если нет, выводим таймер с геймтекстом, типа вернись обратно и отсчет 15 сек......если игрок вернулся в зону то килим таймер, если нет, то надпись просто исчезает через 15 сек..............вроде все просто, но почему-то не работает, т.е выхожу за данные коорды, но ни чего не срабатывает, кто поможет или попытается помоч, плюс обеспечен))

P.s сделал команду:

[pwn]if(!strcmp(cmdtext,"/on",true,2))
{
KillTimer(tiktak);
seconds = 15;
tiktak = SetTimer("Inarena",1000,1);
return 1;
}
[/pwn]

На проверку самого таймера: Работет отлично.....


Жизнь - огромный скрипт, написанный Богом на не известном мне языке программирования!
EakwarpДата: Среда, 09.12.2009, 13:17 | Сообщение # 2
Мастер джэдай
Группа: Продвинутые
Сообщений: 4874
Награды: 179
Город: Москва
Репутация: 2543
Замечания: 60%
Статус:
[pwn]forward Inarena();
new inaerabit[MAX_PLAYERS];

for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInArea(i, minx, maxx, miny, maxy))
{
inaerabit[playerid]=0;
}
else
{
inaerabit[playerid]=15;
}
}

public Inarena()
{
new string[256];
for(new playerid = 0; playerid < MAX_PLAYERS; i++)
{
if(inaerabit[playerid]>0)
{
inaerabit[playerid]--;
if(inaerabit[playerid] == 0) inaerabit[playerid]=0;
format(string,256, "~n~~n~~n~~n~~n~~y~Come back in: ~r~%02d",inaerabit[playerid]);
GameTextForPlayer(playerid, string,1000,3);
}
}
return 1;
}

stock IsPlayerInArea(playerid, Float:minx1, Float:maxx1, Float:miny1, Float:maxy1)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx1 && x < maxx1 && y > miny1 && y < maxy1) return 1;
return 0;
}

//в он гейм мод инт - SetTimer("Inarena",1000,1);[/pwn]


More than 4 years of development, more than 250,000 lines of source code, more than a hundred units and more than 3400 revisions. Valakas Roleplay - choose your role.


Valakas Roleplay on Twitter

Платные консультации, разработка, в ICQ. Дорого.


Сообщение отредактировал Eakwarp - Среда, 09.12.2009, 13:18
SpiderxxxДата: Среда, 09.12.2009, 14:00 | Сообщение # 3
Уверенный в себе
Группа: Продвинутые
Сообщений: 250
Награды: 6
Город: VL Sity
Репутация: 56
Замечания: 0%
Статус:
Ок, сейчас попробую, если получится, с меня плюс)

------------------------------------------------------------------------

Неа, не работает.......т.е как бе появляется надпись Come back ... но отсчет виснет на 14 секундах wall


Жизнь - огромный скрипт, написанный Богом на не известном мне языке программирования!

Сообщение отредактировал Spiderxxx - Среда, 09.12.2009, 14:16
TooZДата: Пятница, 11.12.2009, 16:46 | Сообщение # 4
Освоившийся
Группа: Продвинутые
Сообщений: 113
Награды: 4
Город: Samara
Репутация: 12
Замечания: 40%
Статус:
ну нельзя же быть такой растяпой
[pwn]forward Inarena();
new inaerabit[MAX_PLAYERS];

for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInArea(i, minx, maxx, miny, maxy))
{
inaerabit[playerid]=0;
}
else
{
inaerabit[playerid]=15;
}
}

public Inarena()
{
new string[256];
for(new playerid = 0; playerid < MAX_PLAYERS;i++)
{
if(inaerabit[playerid]>0)
{
inaerabit[playerid]--;
if(inaerabit[playerid] == 0) inaerabit[playerid]=0;
format(string,256, "~n~~n~~n~~n~~n~~y~Come back in: ~r~%02d",inaerabit[playerid]);
GameTextForPlayer(playerid, string,1000,3);
}
}
return 1;
}

stock IsPlayerInArea(playerid, Float:minx1, Float:maxx1, Float:miny1, Float:maxy1)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx1 && x < maxx1 && y > miny1 && y < maxy1) return 1;
return 0;
} [/pwn]


Сообщение отредактировал TooZ - Пятница, 11.12.2009, 16:47
Dima-kunДата: Пятница, 11.12.2009, 17:18 | Сообщение # 5
Группа: Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус:
Quote (Eakwarp)
for(new playerid = 0; playerid < MAX_PLAYERS; i++)

знаток блин херов, на других говоришь... а за собой не замечаешь



Мои работы:
[INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники,
[FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos,
[GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
TooZДата: Пятница, 11.12.2009, 17:25 | Сообщение # 6
Освоившийся
Группа: Продвинутые
Сообщений: 113
Награды: 4
Город: Samara
Репутация: 12
Замечания: 40%
Статус:
Ты не груби а сначала посмотри что я выделил и сравни с предыдущим
Dima-kunДата: Пятница, 11.12.2009, 17:28 | Сообщение # 7
Группа: Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус:
new seconds[MAX_PLAYERS];
public Inarena(playerid)
{
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if(!IsPlayerInArea(playerid, minx, maxx, miny, maxy))
{
seconds[playerid]--;
if(seconds[playerid] == 0) return KillTimer(tiktak);
new string[256];

format(string,256, "~n~~n~~n~~n~~n~~y~Come back in: ~r~%02d",seconds);
GameTextForPlayer(playerid, string,1000,3);
}
}
return 1;
}

а еще лучше использовать массив для хранения секунд

TooZ, я ответил в его стиле


Мои работы:
[INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники,
[FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos,
[GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints


Сообщение отредактировал DizeL-ZR- - Пятница, 11.12.2009, 17:33
TooZДата: Пятница, 11.12.2009, 17:34 | Сообщение # 8
Освоившийся
Группа: Продвинутые
Сообщений: 113
Награды: 4
Город: Samara
Репутация: 12
Замечания: 40%
Статус:
ну я показал то что увидел :D
SpiderxxxДата: Суббота, 12.12.2009, 03:21 | Сообщение # 9
Уверенный в себе
Группа: Продвинутые
Сообщений: 250
Награды: 6
Город: VL Sity
Репутация: 56
Замечания: 0%
Статус:
хах, ну я тож не настолько глуп и for(new playerid = 0; playerid < MAX_PLAYERS;i++)
Исправил на for(new playerid = 0; playerid < MAX_PLAYERS; playerid++), прежде чем написать сюда)

А так вообще, как я говорил виснет на 14 сек, я подумал, что ето может быть связано с тем что

for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInArea(i, minx, maxx, miny, maxy))
{
inaerabit[playerid]=0;
}
else
{
inaerabit[playerid]=15;
}
}

Постоянно обновляется в игре, т.е получается, когда игрок выводит за предел гангзоны, много раз inaerabit[playerid] присвается значение 15 и поетому таймер просто не идет......


Жизнь - огромный скрипт, написанный Богом на не известном мне языке программирования!
TooZДата: Суббота, 12.12.2009, 09:58 | Сообщение # 10
Освоившийся
Группа: Продвинутые
Сообщений: 113
Награды: 4
Город: Samara
Репутация: 12
Замечания: 40%
Статус:
Quote
хах, ну я тож не настолько глуп

[pwn]for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInArea(i, minx, maxx, miny, maxy))
{
inaerabit[playerid]=0;
}
else
{
inaerabit[playerid]=15;
}
} [/pwn]

а это что :D


Сообщение отредактировал TooZ - Суббота, 12.12.2009, 09:58
s3apДата: Суббота, 12.12.2009, 12:19 | Сообщение # 11
Местный
Группа: Продвинутые
Сообщений: 570
Награды: 7
Город: Саратов
Репутация: 382
Замечания: 80%
Статус:
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerInArea(i, minx, maxx, miny, maxy)) {
inaerabit[playerid]=0;
new s=GetTickCount();
new d,g,z;
inaerbit[playerid]=16; g=s+inaerbit[playerid]*1000; d=0; z=1;
while(d!=g) {
if(s+z*1000==GetTickCount()) {
z++; inaerbit[playerid]--;
format(string,256, "~n~~n~~n~~n~~n~~y~Come back in: ~r~%02d",inaerabit[playerid]);
GameTextForPlayer(playerid, string,1000,3);
if(inaerbit[playerid]==0) break;
continue;}}}}

SpiderxxxДата: Суббота, 12.12.2009, 13:45 | Сообщение # 12
Уверенный в себе
Группа: Продвинутые
Сообщений: 250
Награды: 6
Город: VL Sity
Репутация: 56
Замечания: 0%
Статус:
бррр, короче вот, вырезал из скрипта, компилит, но на 14 сек, таймер виснет:

[pwn]new inaerabit[MAX_PLAYERS];
forward Inarena();
......

В public OnGameModeInit()
SetTimer("Inarena",1000,1);
......

for(new i = 0; i < MAX_PLAYERS; i++)
{
if(gPlayerSpawned[i] == 1)
{
TextDrawShowForPlayer(i,roundt);
}
if(IsPlayerInArea(i, minx, maxx, miny, maxy))
{
inaerabit[i]=0;
}
else
{
inaerabit[i]=15;
}
}
.....
public Inarena()
{
new string[256];
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if(inaerabit[playerid]>0)
{
inaerabit[playerid]--;
if(inaerabit[playerid] == 0) inaerabit[playerid]=0;
format(string,256, "~n~~n~~n~~n~~n~~y~Come back in: ~r~%02d",inaerabit[playerid]);
GameTextForPlayer(playerid, string,1000,3);
}
}
return 1;
}

stock IsPlayerInArea(playerid, Float:minx1, Float:maxx1, Float:miny1, Float:maxy1)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if (x > minx1 && x < maxx1 && y > miny1 && y < maxy1) return 1;
return 0;
}
.....[/pwn]

Вот....

Quote
for(new i = 0; i < MAX_PLAYERS; i++) {
if(IsPlayerInArea(i, minx, maxx, miny, maxy)) {
inaerabit[playerid]=0;
new s=GetTickCount();
new d,g,z;
inaerbit[playerid]=16; g=s+inaerbit[playerid]*1000; d=0; z=1;
while(d!=g) {
if(s+z*1000==GetTickCount()) {
z++; inaerbit[playerid]--;
format(string,256, "~n~~n~~n~~n~~n~~y~Come back in: ~r~%02d",inaerabit[playerid]);
GameTextForPlayer(playerid, string,1000,3);
if(inaerbit[playerid]==0) break;
continue;}}}}

С етим я вообще не понял что делать :D wall


Жизнь - огромный скрипт, написанный Богом на не известном мне языке программирования!
s3apДата: Суббота, 12.12.2009, 14:44 | Сообщение # 13
Местный
Группа: Продвинутые
Сообщений: 570
Награды: 7
Город: Саратов
Репутация: 382
Замечания: 80%
Статус:
Вставь это в OnPlayerUpdate и не мучайся.

Code
if(IsPlayerInArea(playerid, minx, maxx, miny, maxy)&&inaerabit[playerid]!=0) {
inaerabit[playerid]=0;
}else if(!IsPlayerInArea(playerid, minx, maxx, miny, maxy)&&inaerabit[playerid]==0) {
new s=GetTickCount();
new d,g,z;
inaerbit[playerid]=16; g=s+inaerbit[playerid]*1000; d=0; z=1;
while(d!=g) {
if(s+z*1000==GetTickCount()) {
z++; inaerbit[playerid]--;
format(string,256, "~n~~n~~n~~n~~n~~y~Come back in: ~r~%02d",inaerabit[playerid]);
GameTextForPlayer(playerid, string,1000,3);
if(inaerbit[playerid]==0) break;
continue;}}}}

//Мог ошибиться в "{" или в "}", смотри сам


Сообщение отредактировал VCOScript - Суббота, 12.12.2009, 14:44
SpiderxxxДата: Суббота, 12.12.2009, 14:55 | Сообщение # 14
Уверенный в себе
Группа: Продвинутые
Сообщений: 250
Награды: 6
Город: VL Sity
Репутация: 56
Замечания: 0%
Статус:
окок, спасибо всем за помощь) Плюсы поставлю, хоть я и сделал все абсолютно по другому)) new_russian


Жизнь - огромный скрипт, написанный Богом на не известном мне языке программирования!
_Kp[e]o3oTДата: Четверг, 17.12.2009, 14:20 | Сообщение # 15
Освоившийся
Группа: Продвинутые
Сообщений: 149
Награды: 4
Город: Пенза
Репутация: 8
Замечания: 20%
Статус:
Quote (Spiderxxx)
окок, спасибо всем за помощь) Плюсы поставлю, хоть я и сделал все абсолютно по другому))

мб поделишься?)



  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua