Некорректно работает, помогите..
#1

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] = {
    {
1, INVALID_OBJECT_ID, 968, 0, 3, 1544.69995117, -1630.80004883, 13.10000038, 0.00000000, 270.00000000, 270.00000000, 1544.69921875, -1630.79980469, 13.10000038, 0.00000000, 0.00000000, 270.00000000}, // LSPD
    
{2, INVALID_OBJECT_ID, 968, 0, 4, -1572.1890, 658.7903, 6.8367, 0.00000000, 90.00000000, 90.18000000, -1572.1890, 658.7903, 6.8367, 0.00000000, 0.00000000, 90.18000000}, // SFPD
    
{3, INVALID_OBJECT_ID, 968, 0, 5, 2238.1851, 2450.3584, 10.6600, 0.00000000, 90.00000000, 89.76000000, 2238.1851, 2450.3584, 10.6600, 0.00000000, 0.00000000, 89.76000000}, // LVPD
    
{4, INVALID_OBJECT_ID, 968, 0, 2, -2436.8767, 495.4464, 29.7209, 0.00000000, 90.00000000, 24.96000000, -2436.8767, 495.4464, 29.7209, 0.00000000, 0.00000000, 24.96000000} // FBI
}; 
PHP код:
CMD:openbarrier(playerid, params[])
{
    if(!
PI[playerid][Login]) return true;
    for(new 
i = 0; i < MAX_GATES; ++i)
    {
        if(
PI[playerid][Member] == gInfo[i][barrierFraction] && PlayerToPoint(7.0, playerid, gInfo[i][barrierClosedX], gInfo[i][barrierClosedY], gInfo[i][barrierClosedZ])) return true;
        if(
gInfo[i][barrierStatus] != 1) return SendClientMessage(playerid, COLOR_WHITE, "Îøèáêà: Âîðîòà óæå îòêðûòû.");
        
MoveObject(gInfo[i][barrierID], gInfo[i][barrierClosedX], gInfo[i][barrierClosedY], gInfo[i][barrierClosedZ] + 0.004, 0.004, gInfo[i][barrierClosedRotX], gInfo[i][barrierClosedRotY], gInfo[i][barrierClosedRotZ]);
        
SendClientMessage(playerid, COLOR_YELLOW, "Âîðîòà îòêðûòû íà 10 ñåêóíä, ïðîåçæàéòå.");
        
SetTimerEx("CloseBarrier", 10000, false, "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.004, 0.004, gInfo[id][barrierOpenedRotX], gInfo[id][barrierOpenedRotY], gInfo[id][barrierOpenedRotZ]);
    
gInfo[id][barrierStatus] = 0;
    return 
true;
} 
Вообщем я решил сделать глобальные шлагбаумы и накосячил, не знаю как исправить .
Reply
#2

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

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

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

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

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

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

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

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

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


Forum Jump:


Users browsing this thread: 1 Guest(s)