GTAForum.nl - Het Nederlandse Grand Theft Auto Forum!: Camera blijft hangen - GTAForum.nl - Het Nederlandse Grand Theft Auto Forum!

Ga naar de inhoud

GTAGames.nl advertentie
Pagina 1 van 1
  • Je kunt geen onderwerp beginnen
  • Je kunt niet reageren

Camera blijft hangen - Camerastand van spoorvoertuigen

Geplaatst op 8 februari 2010 - 22:36     #1 Dit lid is offline   Freaksken 

  • Warenhuis overvaller
  • PipPip
  • Groep: Leden
  • Berichten: 244
  • Registratie: 05-juli 08
Hallo, ik heb even een probleempje, nogal irritant eigenlijk:
[attachment=41710:Trains.wmv]

Uitleg:
-Dus ik spawn en Freight, Streak of Tram en ik spawn mezelf erin.
-Ik stap uit en de camera blijft op de trein hangen ipv dat hij terug achter mij komt te staan.
-Ik denk dat dit komt door PutPlayerInVehicle.

-Maar, als ik gewoon in de trein stap en er weer uitstap, heb ik dit niet voor.

Dit is mijn code, als voorbeeld heb ik de Freight genomen:
if(dialogid == 109 && response == 1)
{
    if(listitem == 0)
    {
        new Float:x, Float:y, Float:z,Float:a, world, interior;
        GetPlayerPos(playerid, x, y, z);
	GetXYInFrontOfPlayer(playerid, x, y, 5.0);
	GetPlayerFacingAngle(playerid, a);
	world = GetPlayerVirtualWorld(playerid);
	interior = GetPlayerInterior(playerid);
        Geefveh = AddStaticVehicleEx(537, x, y, z + 2.0, a + 90.0, -1, -1, 5000);
	SetVehicleVirtualWorld(Geefveh, world);
	LinkVehicleToInterior(Geefveh, interior);
	PutPlayerInVehicle(playerid, Geefveh, 0);
	SendClientMessage(playerid, COLOR_WHITE, "Vehicle spawned!");
    }
    return 1;
}


De camera blijft gewoon hangen na het uitstappen. Ik denk dat dit komt omdat de trein een speciale camerastand gebruikt.

Wat heb ik al geprobeerd om de camera achter de speler te krijgen? Alles eigenlijk:
1.
Ook verschillende versies van dit met GetVehicleVelocity <= 10

if(IsPlayerInAnyVehicle(playerid))
{
    if (newkeys & KEY_SECONDARY_ATTACK)
    {
        new vehicleid = GetPlayerVehicleID(playerid);
	if(vehicleid == 537 || vehicleid == 538 || vehicleid == 449)
	{
	    SetCameraBehindPlayer(playerid);
	}
    }
}

2.
public OnPlayerExitVehicle(playerid, vehicleid)
{
    if(vehicleid == 537 || vehicleid == 538 || vehicleid == 449)
    {
	SetCameraBehindPlayer(playerid);
    }
    return 1;
}



Dus als ik de trein spawn en mezelf in de trein zet (put) en daarna uitstap blijft de camera hangen op de trein. (probleem)
Als ik de trein spawn en ernaartoe loop en er dan inkruip en daarna uitstap blijft de camera niet hangen. (het normale in en uitstappen dus)

Conclusie: Samp-bug?

Dit bericht is aangepast door Freaksken: 8 februari 2010 - 22:47

FS Adminhelp: Klik:
======> V2 is uit, iedereen eens kijken!!!!!

Weinig actief door slecht rapport, ik mag niet veel op de PC.

Posted Image

GTAGames.nl advertentie

Geplaatst op 9 februari 2010 - 11:42     #2 Dit lid is offline   Big Boss 

  • a.k.a. Vince
  • PipPipPipPipPipPipPip
  • Groep: Superleden
  • Berichten: 3099
  • Registratie: 28-februari 05
OnPlayerExitVehicle(playerid, vehicleid)
{
    SetCameraBehindPlayer(playerid);
    return 1;
}


Misschien eens gewoon zo proberen? :)

Geplaatste afbeelding
|| Windows 7 64 bit || Intel Core i7-860 || GTX260 1792MB || 8 GB RAM || 3 TB HDD ||

Geplaatst op 9 februari 2010 - 14:32     #3 Dit lid is offline   musii42 

  • People killer
  • PipPipPip
  • Groep: Leden
  • Berichten: 311
  • Registratie: 15-januari 09
trein is nooit goed om te spawne.

Posted Image

Geplaatst op 9 februari 2010 - 14:48     #4 Dit lid is offline   GTAguillaume 

  • Wapen dealer
  • PipPip
  • Groep: Leden
  • Berichten: 161
  • Registratie: 24-mei 09
Op het moment dat de speler wilt uitstappen zit hij nog (voor een aantal seconden) in de auto, je kunt het misschien eens proberen met OnPlayerStateChange.

Dit bericht is aangepast door GTAguillaume: 9 februari 2010 - 14:48

" Anything that can go wrong, will. " (Murphy)

Geplaatste afbeelding

Geplaatst op 9 februari 2010 - 16:57     #5 Dit lid is offline   Freaksken 

  • Warenhuis overvaller
  • PipPip
  • Groep: Leden
  • Berichten: 244
  • Registratie: 05-juli 08

Citaat

Misschien eens gewoon zo proberen? :)


Ja dat lukt, net zoals dit.

if(IsPlayerInAnyVehicle(playerid))
{    
    if (newkeys & KEY_SECONDARY_ATTACK)    
    {                 
        SetCameraBehindPlayer(playerid);           
    }
}



Dus het ligt aan het checken of de speler wel in de trein zit.
En ik had deze code eerst ook in gedachten, maar dat is dat op alle voertuigen en dat vind ik nogal irritant.

Citaat

Op het moment dat de speler wilt uitstappen zit hij nog (voor een aantal seconden) in de auto, je kunt het misschien eens proberen met OnPlayerStateChange.


Zal ik eens proberen.

EDIT:
Ik heb dit geprobeerd, zelfde effect.

public OnPlayerStateChange(playerid,newstate,oldstate)
{
    if(IsPlayerInAnyVehicle(playerid))
    {
        new vehicleid = GetPlayerVehicleID(playerid);
        if(vehicleid == 537 || vehicleid == 538 || vehicleid == 449)
        {
            if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
            {
                SetCameraBehindPlayer(playerid);
            }
        }
    }
    return 1;
}



Misschien met een timer werken?

Dit bericht is aangepast door Freaksken: 9 februari 2010 - 17:11

FS Adminhelp: Klik:
======> V2 is uit, iedereen eens kijken!!!!!

Weinig actief door slecht rapport, ik mag niet veel op de PC.

Posted Image

Geplaatst op 9 februari 2010 - 19:18     #6 Dit lid is offline   Big Boss 

  • a.k.a. Vince
  • PipPipPipPipPipPipPip
  • Groep: Superleden
  • Berichten: 3099
  • Registratie: 28-februari 05
Oh, ik weet al waar het probleem zit. :)
Je checkt het vehicle id, niet het model.

new m = GetVehicleModel(GetPlayerVehicleID(playerid));
if(m == 537 || m == 538 || m == 449)
{
    SetCameraBehindPlayer(playerid);
}


Geplaatste afbeelding
|| Windows 7 64 bit || Intel Core i7-860 || GTX260 1792MB || 8 GB RAM || 3 TB HDD ||

Geplaatst op 9 februari 2010 - 20:15     #7 Dit lid is offline   GTAguillaume 

  • Wapen dealer
  • PipPip
  • Groep: Leden
  • Berichten: 161
  • Registratie: 24-mei 09
new m = GetVehicleModel(GetPlayerVehicleID(playerid));
Als een speler is uitgestap is zit de speler niet meer in een voertuig.

" Anything that can go wrong, will. " (Murphy)

Geplaatste afbeelding

Geplaatst op 9 februari 2010 - 20:31     #8 Dit lid is online   megadreams 

  • Maffia lid
  • PipPipPip
  • Groep: Leden
  • Berichten: 439
  • Registratie: 26-juni 08
Dat had ik al eerder gedaan Big Boss zelfs de VehicleModel en de VehicleModelForPlayer functie die ik eens gemaakt had had ik erin gezet, als je een eerste keer uitstapt blijft de camera hangen, stap je weer in en uit word hij goed gezet dus enkel als je zelf instapt en niet erin word gezet, daar zit dus het probleem in het script van je filterscript die ik even heb ;)



Geplaatste afbeelding
De terugkeer van Covesight. | Recruitment: Hier | Gang Talk: Hier
POSTS: 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, ...

Geplaatst op 9 februari 2010 - 21:36     #9 Dit lid is offline   Freaksken 

  • Warenhuis overvaller
  • PipPip
  • Groep: Leden
  • Berichten: 244
  • Registratie: 05-juli 08
We hebben zowat alles al geprobeerd.
Conclusie: Dit is een samp-bug, die ga ik dan ook reporten op het forum.

FS Adminhelp: Klik:
======> V2 is uit, iedereen eens kijken!!!!!

Weinig actief door slecht rapport, ik mag niet veel op de PC.

Posted Image

Geplaatst op 9 februari 2010 - 22:14     #10 Dit lid is offline   Freaksken 

  • Warenhuis overvaller
  • PipPip
  • Groep: Leden
  • Berichten: 244
  • Registratie: 05-juli 08
Als iemand het wil lezen. http://forum.sa-mp.c...06360#msg906360

Zeg het als ik nog iets belangrijks vergeten ben.

EDIT: godver, nu heb ik op de verkeerde knop geduwt, srry voor de bump

EDIT2: Yes, het is gelukt!
De vraag was namelijk al eens gesteld en er stond dit in:
new bool:traincamera[MAX_PLAYERS] = false;

public OnPlayerExitVehicle(playerid, vehicleid)
{
	if(GetVehicleModel(vehicleid) == 537 || GetVehicleModel(vehicleid) == 538 || GetVehicleModel(vehicleid) == 449)
	{
		traincamera[playerid] = true;
	}
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	if(oldstate == PLAYER_STATE_ONFOOT && GetVehicleModel(GetPlayerVehicleID(playerid)) == 449)
	{
		traincamera[playerid] = true;
	}
	if(oldstate == PLAYER_STATE_ONFOOT && GetVehicleModel(GetPlayerVehicleID(playerid)) == 537)
	{
		traincamera[playerid] = true;
	}
	if(oldstate == PLAYER_STATE_ONFOOT && GetVehicleModel(GetPlayerVehicleID(playerid)) == 538)
	{
		traincamera[playerid] = true;
	}
	if(traincamera[playerid] == true && newstate == PLAYER_STATE_ONFOOT)
	{
		SetCameraBehindPlayer(playerid);
		traincamera[playerid] = false;
	}
	return 1;
}



Ik zou niet weten waarom dit nu wel werkt en de dingen die wij probeerden niet, maar ja kom, het is gelukt hé. :puh:

Dit bericht is aangepast door Freaksken: 9 februari 2010 - 22:56

FS Adminhelp: Klik:
======> V2 is uit, iedereen eens kijken!!!!!

Weinig actief door slecht rapport, ik mag niet veel op de PC.

Posted Image

GTAGames.nl advertentie
Pagina 1 van 1
  • Je kunt geen onderwerp beginnen
  • Je kunt niet reageren

1 gebruikers lezen dit onderwerp
0 leden, 1 gasten en 0 anonieme leden