Tripmine

Тема в разделе "Программирование / Скриптинг", создана пользователем TheRunningMan, 16 июл 2012.

  1. TheRunningMan

    TheRunningMan

    Сообщения:
    163
    Симпатии:
    9
    У меня вопрос такой, вот в плагине Tripmine в качестве координат куда крепить как бы мину, использовался вгляд, т.е. куда смотришь там и поставится, если рядом поверхность, так вот я хочу вместо вычисления коодинат положению положения взгляда, сделать привязкой к грене, т.е. например куда грена упала там и мина, координаты детонации грены я выяснил, а как это прменить к модели мины и лазеру не пойму...

    Добавлено через 16 часов 39 минут
    так в общем че то получилось, но все равно есть баг с положением модели не как не могу понять что делает эта функция TR_GetEndPosition
    ее убераю ставит там куда кинул, но бывает что ставить не по плоскости, а если не убирать, то ставит чаще где то не там)) кидаешь грену в одном месте, а минка ставится где то рядом
    И еще что делает TR_TraceRayFilter, уберая его мина ставится, оставляю, вообще ничег оне просходит
     
    Последнее редактирование: 17 июл 2012
  2. TheRunningMan

    TheRunningMan

    Сообщения:
    163
    Симпатии:
    9
    Блин вроде нелохо получилось, но проблема с лазером, я хочу чтобы когда он включался, его конечная точка была по координатам куда смотрит игрок, если я один то все нормально, но когда 2 и больше он проводит луч от взгляда других игроков....
    вот когда активируется луч
    PHP:
    public Action:OnActivateLaser(Handle:timerany:hDataPack)
    {
        
    ResetPack(hDataPack);
        
    decl String:start[30], String:tmp[200], color[3];
        new 
    client ReadPackCell(hDataPack);
        new 
    beament ReadPackCell(hDataPack);
        new 
    ent ReadPackCell(hDataPack);
        
    color[0] = ReadPackCell(hDataPack);
        
    color[1] = ReadPackCell(hDataPack);
        
    color[2] = ReadPackCell(hDataPack);
        
    ReadPackString(hDataPackstartsizeof(start));
        
        if (!
    IsValidEdict(beament) || !IsValidEdict(ent))
        {
            return 
    Plugin_Stop;
        }
        
        new 
    Handle:trace TraceRay(client);
        
        
        
    decl Float:beamend[3];
        
    TR_GetEndPosition(beamendINVALID_HANDLE);
            
            
            
        
    TeleportEntity(beamentbeamendNULL_VECTORNULL_VECTOR); // Teleport the beam
            
        
    AcceptEntityInput(beament"TurnOn");
            
        
    SetEntityRenderColor(beamentcolor[0], color[1], color[2]);

        
    Format(tmpsizeof(tmp), "%s,TurnOff,,0.001,-1"start);
        
    DispatchKeyValue(beament"OnTouchedByEntity"tmp);
        
    Format(tmpsizeof(tmp), "%s,TurnOn,,0.002,-1"start);
        
    DispatchKeyValue(beament"OnTouchedByEntity"tmp);

        
    EmitSoundToAll(SND_MINEACTent);
        
        
    CloseHandle(hDataPack);
        
        return 
    Plugin_Stop;
    }
    Добавлено через 2 минуты
    создание луча было вместе с создание мины, и по истечению таймера луч включался, но его траектория уже была задана, и я создание луча сделал по истечению таймера, если убрать эту функция TR_GetEndPosition, то луч игнорирует напрвление моего взгляда, но с этой функцией, не работает при множестве клиентов...

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

    Добавлено через 11 часов 1 минуту
    ничего не надо уже сам разобрался спасибо за помощь....эпик
     
    Последнее редактирование: 19 июл 2012