SA-MP Forums Archive
Некорректно работает, помогите.. - 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: Некорректно работает, помогите.. (/showthread.php?tid=572474)



Некорректно работает, помогите.. - SanDev - 28.04.2015

PHP код:
enum BARRIER
{
    
barrierID,
    
barrierObject,
    
barrierModel,
    
barrierStatus,
    
barrierFraction,
    
Float:barrierOpenedX,
    
Float:barrierOpenedY,
    
Float:barrierOpenedZ,
    
Float:barrierOpenedRotX,
    
Float:barrierOpenedRotY,
    
Float:barrierOpenedRotZ,
    
Float:barrierClosedX,
    
Float:barrierClosedY,
    
Float:barrierClosedZ,
    
Float:barrierClosedRotX,
    
Float:barrierClosedRotY,
    
Float:barrierClosedRotZ
}
new 
gInfo[MAX_GATES][BARRIER] = {
    {
1INVALID_OBJECT_ID968031544.69995117, -1630.8000488313.100000380.00000000270.00000000270.000000001544.69921875, -1630.7998046913.100000380.000000000.00000000270.00000000}, // LSPD
    
{2INVALID_OBJECT_ID96804, -1572.1890658.79036.83670.0000000090.0000000090.18000000, -1572.1890658.79036.83670.000000000.0000000090.18000000}, // SFPD
    
{3INVALID_OBJECT_ID968052238.18512450.358410.66000.0000000090.0000000089.760000002238.18512450.358410.66000.000000000.0000000089.76000000}, // LVPD
    
{4INVALID_OBJECT_ID96802, -2436.8767495.446429.72090.0000000090.0000000024.96000000, -2436.8767495.446429.72090.000000000.0000000024.96000000// FBI
}; 
PHP код:
CMD:openbarrier(playeridparams[])
{
    if(!
PI[playerid][Login]) return true;
    for(new 
0MAX_GATES; ++i)
    {
        if(
PI[playerid][Member] == gInfo[i][barrierFraction] && PlayerToPoint(7.0playeridgInfo[i][barrierClosedX], gInfo[i][barrierClosedY], gInfo[i][barrierClosedZ])) return true;
        if(
gInfo[i][barrierStatus] != 1) return SendClientMessage(playeridCOLOR_WHITE"Îøèáêà: Âîðîòà óæå îòêðûòû.");
        
MoveObject(gInfo[i][barrierID], gInfo[i][barrierClosedX], gInfo[i][barrierClosedY], gInfo[i][barrierClosedZ] + 0.0040.004gInfo[i][barrierClosedRotX], gInfo[i][barrierClosedRotY], gInfo[i][barrierClosedRotZ]);
        
SendClientMessage(playeridCOLOR_YELLOW"Âîðîòà îòêðûòû íà 10 ñåêóíä, ïðîåçæàéòå.");
        
SetTimerEx("CloseBarrier"10000false"i"i);
        
gInfo[i][barrierStatus] = 1;
    }
    return 
true;
}
forward CloseBarrier(id);
public 
CloseBarrier(id)
{
    
MoveObject(gInfo[id][barrierID], gInfo[id][barrierOpenedX], gInfo[id][barrierOpenedY], gInfo[id][barrierOpenedZ] - 0.0040.004gInfo[id][barrierOpenedRotX], gInfo[id][barrierOpenedRotY], gInfo[id][barrierOpenedRotZ]);
    
gInfo[id][barrierStatus] = 0;
    return 
true;

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


Re: Некорректно работает, помогите.. - eakwarp - 28.04.2015

PlayerToPoint - нет, подождите, вы серьезно?


Re: Некорректно работает, помогите.. - SanDev - 28.04.2015

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
PlayerToPoint - нет, подождите, вы серьезно?
Я не особо профессионал просвети.


Re: Некорректно работает, помогите.. - eakwarp - 28.04.2015

Quote:
Originally Posted by SanDev
Посмотреть сообщение
Я не особо профессионал просвети.
Здесь не нужно быть профессионалом.
PlayerToPoint - очень медленная скриптовая функция написанная в незапамятные времена для Pen/GF. Взамен давно появилась быстрая нативная - IsPlayerInRangeOfPoint.


Re: Некорректно работает, помогите.. - SanDev - 28.04.2015

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Здесь не нужно быть профессионалом.
PlayerToPoint - очень медленная скриптовая функция написанная в незапамятные времена для Pen/GF. Взамен давно появилась быстрая нативная - IsPlayerInRangeOfPoint.
Ладно я догадался об этом уже, но мне скорость не особо важна. Было бы лучше если бы ты указал на ошибки...


Re: Некорректно работает, помогите.. - ZiGGi - 28.04.2015

Ты устанавливаешь значение для gInfo[id][barrierID] прямо при создании массива, а нужно при создании объекта.


Re: Некорректно работает, помогите.. - SanDev - 29.04.2015

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
Ты устанавливаешь значение для gInfo[id][barrierID] прямо при создании массива, а нужно при создании объекта.
Примером можно?


Re: Некорректно работает, помогите.. - ZiGGi - 29.04.2015

Quote:
Originally Posted by SanDev
Посмотреть сообщение
Примером можно?
PHP код:
gInfo[i][barrierID] = CreateObject(...); 



Re: Некорректно работает, помогите.. - SanDev - 30.04.2015

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
PHP код:
gInfo[i][barrierID] = CreateObject(...); 
Он у меня стоит. Проблема не в создании, а в проверке..((


Re: Некорректно работает, помогите.. - ZiGGi - 30.04.2015

Quote:
Originally Posted by SanDev
Посмотреть сообщение
Он у меня стоит. Проблема не в создании, а в проверке..((
Ты сразу не мог показать весь код (включая то, как ты их создаёшь) и сказать, что именно не работает?