Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2012-02-03, 00:21


kurczak1324







Wiek: 29
Na forum: 5819 dni
Posty: 202
Nick w MP: Izzy

Piwa: 671

Respekt: 45,3

Siema, potrzebuje kodu kt?ry b?dze obracal obiekt do pewnego stopnia, a p??niej wraca? do tego jak by?o i tak w k??ko. Je?li kto? nie zrozumia? to powiem, ?e tworze obracaj?cy sie d?wig.

Kod:

CreateDynamicObject(...);


Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 09:10


_Artek_

Zapalisz Jointa?






Wiek: 30
Na forum: 6173 dni
Posty: 57

Piwa: 84

Respekt: 40,5

kurczak1324, to zr?b to na zasadzie bramy open\close

Podpis
Telewizja wmawia wam, że mamy kryzys? Ja wam powiem, że kryzys jest wtedy, gdy Twoja laska mówi ci, że cię kocha, a Tobie nie staje.
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 09:21


mmarcinn21

Programista






Wiek: 32
Na forum: 6363 dni
Posty: 32

Piwa: 727

Respekt: 60

Zale?y jak np chcesz zmieni? pozycje d?wigu po wej?ciu do niego, dobrze by?o by u?y? :

Kod:


#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define HOLDING(%0) \
((newkeys & (%0)) == (%0))
#define RELEASED(%0) \
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))

public OnMoveKeyChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_UP))
SendClientMessage(playerid, -1, "Klikn??e? klawisz w prz?d");

if(HOLDING(KEY_LEFT))
SendClientMessage(playerid, -1, "Trzymasz klawisz skr?tu w lewo");
else if(RELEASED(KEY_LEFT))
SendClientMessage(playerid, -1, "Pu?ci?e? klawisz skr?tu w lewo");
return 1;
}


Podpis



Posiadam konto tylko na GtaOnline
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 09:41


Fargo007







Wiek: 37
Na forum: 6113 dni
Posty: 47

Piwa: 1227

Respekt: 50

Ostrzeżeń: 100%
Pawn
#include <a_samp>
#include <zcmd>

#define MAX_CRANES 20
#define DISTANCE(%1,%2,%3,%4,%5,%6) floatsqroot((%1-%4)*(%1-%4) + (%2-%5)*(%2-%5) + (%3-%6)*(%3-%6))

enum CRANE_ENUM
{
    EXIST,
    INUSE,
    Float:CRANE_POS_X,
    Float:CRANE_POS_Y,
    Float:CRANE_POS_Z,
    Float:PICKUP_POS_X,
    Float:PICKUP_POS_Y,
    Float:PICKUP_POS_Z,
    Float:CRANE_ANGLE,
    PICKUP,
    CRANE_TOP
}

new
    cranes[MAX_CRANES][CRANE_ENUM],
    usingCrane[MAX_PLAYERS][2];

stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:yFloat:distance)
{
    new Float:a;
    GetPlayerPos(playeridxya);
    GetPlayerFacingAngle(playerida);
    if (GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); }
    += (distance floatsin(-adegrees));
    += (distance floatcos(-adegrees));
}
    
stock CreateCrane(row)
{
    CreateObject1391cranes[row][CRANE_POS_X], cranes[row][CRANE_POS_Y], cranes[row][CRANE_POS_Z], 000);
    cranes[row][CRANE_TOP] = CreateObject1388cranes[row][CRANE_POS_X], cranes[row][CRANE_POS_Y], (cranes[row][CRANE_POS_Z]+12.539), 000);
    cranes[row][PICKUP] = CreatePickup131723 cranes[row][PICKUP_POS_X], cranes[row][PICKUP_POS_Y], cranes[row][PICKUP_POS_Z], 0);
    cranes[row][EXIST] = 1;
    return 1;
}

CMD:newdzwig(playerid)
{
    new row MAX_CRANES;
    for(new 0MAX_CRANESi++)
    {
        if(cranes[i][EXIST] == 0)
        {
            row i;
        }
    }
    if(row == MAX_CRANES) return SendClientMessage(playerid0xFF0000FF"Jest ju? du?o!");
    else
    {
        new Float:xFloat:yFloat:z;
        GetPlayerPos(playeridcranes[row][PICKUP_POS_X], cranes[row][PICKUP_POS_Y], z);
        GetXYInFrontOfPlayer(playeridxy6);
        cranes[row][CRANE_POS_Z] = (30);
        cranes[row][PICKUP_POS_Z] =  (1);
        cranes[row][CRANE_POS_Y] = y;
        cranes[row][CRANE_POS_X] = x;
        CreateCrane(row);
    }
    return 1;
}

CMD:dzwig(playerid)
{
    if(usingCrane[playerid][0] == 1)
    {
        SetPlayerPos(playeridcranes[usingCrane[playerid][1]][PICKUP_POS_X], cranes[usingCrane[playerid][1]][PICKUP_POS_Y], (cranes[usingCrane[playerid][1]][PICKUP_POS_Z]+2));
        cranes[usingCrane[playerid][1]][INUSE] = 0;
        TogglePlayerControllable(playerid1);
        usingCrane[playerid][0] = 0;
        SetCameraBehindPlayer(playerid);
        return 1;
    }
    new crane MAX_CRANES;
    for (new 0MAX_CRANESi++)
    {
        if (IsPlayerInRangeOfPoint(playerid3cranes[i][PICKUP_POS_X], cranes[i][PICKUP_POS_Y], cranes[i][PICKUP_POS_Z]))
        {
            crane i;
        }
    }
    if(crane == MAX_CRANES) return SendClientMessage(playerid0xFF0000FF"Nie jeste? w pickupie D?wigu!");
    if(cranes[crane][INUSE] == 1) return SendClientMessage(playerid0xFF0000FF"Jest ju? u?ywany!");
    else
    {
        SetPlayerPos(playeridcranes[crane][CRANE_POS_X], cranes[crane][CRANE_POS_Y], (cranes[crane][CRANE_POS_Z] - 30));
        SetPlayerCameraPos(playeridcranes[crane][CRANE_POS_X], cranes[crane][CRANE_POS_Y], (cranes[crane][CRANE_POS_Z] + 20));
        TogglePlayerControllable(playeridfalse);
        SetPlayerFacingAngle(playeridcranes[crane][CRANE_ANGLE]);
        new Float:xFloat:y;
        GetXYInFrontOfPlayer(playeridxy41);
        SetPlayerCameraLookAt(playeridxy, (cranes[usingCrane[playerid][1]][CRANE_POS_Z]+12.539));
        usingCrane[playerid][0] = 1;
        usingCrane[playerid][1] = crane;
        cranes[crane][INUSE] = 1;
    }
    return 1;
}
public OnPlayerUpdate(playerid)
{
    if(usingCrane[playerid][0] == 1)
    {
        new Keys,ud,lr;
        GetPlayerKeys(playerid,Keys,ud,lr);
        if(lr 0)
        {
            new Float:fa;
            GetPlayerFacingAngle(playeridfa);
            fa+=1.0;
            if(fa >= 360.0fa-=360.0;
            SetPlayerFacingAngle(playeridfa);
            cranes[usingCrane[playerid][1]][CRANE_ANGLE] = fa;
            SetObjectRot(cranes[usingCrane[playerid][1]][CRANE_TOP], 00cranes[usingCrane[playerid][1]][CRANE_ANGLE]);
            new Float:xFloat:y;
            GetXYInFrontOfPlayer(playeridxy41);
            SetPlayerCameraLookAt(playeridxy, (cranes[usingCrane[playerid][1]][CRANE_POS_Z]+12.539));
        }
        else if(lr 0)
        {
            new Float:fa;
            GetPlayerFacingAngle(playeridfa);
            fa-=1.0;
            if(fa <= 0.0fa+=360.0;
            SetPlayerFacingAngle(playeridfa);
            cranes[usingCrane[playerid][1]][CRANE_ANGLE] = fa;
            SetObjectRot(cranes[usingCrane[playerid][1]][CRANE_TOP], 00cranes[usingCrane[playerid][1]][CRANE_ANGLE]);
            new Float:xFloat:y;
            GetXYInFrontOfPlayer(playeridxy41);
            SetPlayerCameraLookAt(playeridxy, (cranes[usingCrane[playerid][1]][CRANE_POS_Z]+12.539));
        }
    }
    return 1;
}

public OnPlayerPickUpPickup(playeridpickupid)
{
    for(new 0MAX_CRANESi++)
    {
        if(pickupid == cranes[i][PICKUP])
        {
            GameTextForPlayerplayerid"/dzwig"20001);
        }
    }
    return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 11:22


kurczak1324







Wiek: 29
Na forum: 5819 dni
Posty: 202
Nick w MP: Izzy

Piwa: 671

Respekt: 45,3

Ehh nie dodalem wa?nej rzeczy... D?wig sie obraca sam, tak dla wygl?du, ale na podstawie d?wigu zrobie sobie inne obiekty.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 11:36


Brendon16







Wiek: 34
Na forum: 6657 dni
Posty: 38

Piwa: 72

Respekt: 50

mysle ze musisz dac timera dzialajacego co pare min (dla lepszej estetyki)
dasz zmienna
new dzwig =0; <-bedzie oznaczac pozycje dzwigu

pozniej timer w ktorym jesli
dzwig ==0 wtedy obracamy do pewnego kata, a jesli 1 to wracamy do poerwszego

Podpis
Programuję za jedzenie
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 11:38


kurczak1324







Wiek: 29
Na forum: 5819 dni
Posty: 202
Nick w MP: Izzy

Piwa: 671

Respekt: 45,3

Brendon16, Dobra... A funkcja obracaj?ca obiekt?

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 11:49


BraYaN_







Wiek: 34
Na forum: 6602 dni
Posty: 276
Nick w MP: BraYaN_

Piwa: 1614

Respekt: 63

kurczak1324, http://wiki.sa-mp.com/wiki/MoveObject ostatnie trzy parametry.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 11:56


kurczak1324







Wiek: 29
Na forum: 5819 dni
Posty: 202
Nick w MP: Izzy

Piwa: 671

Respekt: 45,3

BraYaN_, my?le ?e jednak lepiej b?dze u?y? http://wiki.sa-mp.com/wiki/SetObjectRot tylko kt?ry arg jest odpowiedzialny za obr?t w poziomie? Z ?

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 12:13


mmarcinn21

Programista






Wiek: 32
Na forum: 6363 dni
Posty: 32

Piwa: 727

Respekt: 60

Tak, za obr?t obiektu w poziomie odpowiada ostani argument, dodaj?c obiekt obkr?ca si? w lew? strone, a odejmuj?c w prawo.

Podpis



Posiadam konto tylko na GtaOnline
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 14:23


kurczak1324







Wiek: 29
Na forum: 5819 dni
Posty: 202
Nick w MP: Izzy

Piwa: 671

Respekt: 45,3

Zrobi?em sobie co? takiego http://pastebin.com/Xv4ZQYp2 ale sie kr?ci ca?y czas w jedn? strone :/

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 14:59


mmarcinn21

Programista






Wiek: 32
Na forum: 6363 dni
Posty: 32

Piwa: 727

Respekt: 60

Trzymaj :

Kod:



#include <a_samp>

new dzwig, zmienna, timer[2];
new Float:RotX,Float:RotY,Float:RotZ;//


public OnGameModeInit()
{
SetTimer("DzwigRot",4000, true);
dzwig = CreateObject(1384,1824.01867676,1429.07995605,70.27137756,0.00000000,0.00000000,130.00000000); //object(twrcrane_m_01) (1)
return 1;
}


forward DzwigRot();
public DzwigRot(){
GetObjectRot(dzwig, RotX, RotY, RotZ);
if(zmienna == 0){
timer[0] = SetTimer("DodawanieRot", 200, true);
}
if(zmienna == 1){
timer[1] = SetTimer("OdejmowenieRot", 200, true);
}
return 1;
}

forward DodawanieRot();
public DodawanieRot(){
GetObjectRot(dzwig, RotX, RotY, RotZ);
SetObjectRot(dzwig, RotX, RotY, RotZ+0.2);
zmienna = 1;
if(zmienna == 1)KillTimer(timer[0]);
}


forward OdejmowenieRot();
public OdejmowenieRot(){
GetObjectRot(dzwig, RotX, RotY, RotZ);
SetObjectRot(dzwig, RotX, RotY, RotZ-0.2);
zmienna = 0;
if(zmienna == 0)KillTimer(timer[1]);
}


Musisz da? wi?ksz? liczb? przy RotZ+- poniewa? obiekt ledwo co wida? ?e si? rusza.

Podpis



Posiadam konto tylko na GtaOnline
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 18:40


kurczak1324







Wiek: 29
Na forum: 5819 dni
Posty: 202
Nick w MP: Izzy

Piwa: 671

Respekt: 45,3

mmarcinn21, chdzi mi o to aby obiekt przesuwa? sie p?ynnie, pr?bowa?em z funkcj? kt?r? poda? BraYaN_(MoveObject), ale obiekt przeskakuje szybko, a nie przesuwa sie.

Podpis
Postaw piwo autorowi tego posta
 

 
Wysłany: 2012-02-03, 18:44


krzyzan







Wiek: 30
Na forum: 5669 dni
Posty: 387

Piwa: 2132

Respekt: 135
Respekt: 135

Zobacz sobie to:
http://gtao.pl.com/showthread.php?t=151452
Zale?y jak ustawisz ilo?? miejsc i pr?dko?? przeskoku od tego zale?y jak p?ynnie bedzie

Postaw piwo autorowi tego posta
 

 
Tagi: obracający :: się :: obiekt
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » [INNE] Obracający się obiekt Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku