[Tutorial] AddStaticVehicle / -Ex
#1

Reeks van tutorials: Functies
Moeilijkheidsgraad: (Absolute) Beginner
Benodigdheden: de a_samp include (komt standaard bij een SA:MP 0.3 server)
Opmerkingen: Het kan zijn dat ik in deze tutorial de woorden functie en methode door elkaar gebruik. Het betekent in deze context hetzelfde.

AddStaticVehicle en AddStaticVehicleEx

Inleiding
Waarschijnlijk is een van je eerste functies die je gebruikt in je script AddStaticVehicle. AddStaticVehicle is de functie die je gebruikt om een statisch voertuig te plaatsen in je server. Daar gaat deze tutorial over samen met AddStaticVehicleEx. Allereerst AddStaticVehicle, daarna gaan we ons verdiepen in AddStaticVehicleEx. Kan je niet wachten? Scroll dan gelijk naar beneden

Theorie
AddStaticVehicle is de functie om een statisch voertuig in de server te plaatsen. Deze functie kan alleen gebruikt worden on OnGameModeInit(). De reden hiervoor is omdat het een statisch voertuig is. Het voertuig wordt eenmalig aangemaakt en daarna voor altijd daar gespawnt.

De functie ziet er als volgt uit:
pawn Код:
AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2);
// Zie wiki.sa-mp.com/wiki/AddStaticVehicle
Allereerst zullen we de parameters ieder voor zich bij langs gaan:
modelidIeder voertuig heeft een modelid. Deze is niet door SA:MP maar door GTA zelf gedefinieerd. Alle modelids kan je vinden op de SA:MP wiki
Float: spawn_x | Float: spawn_y | Float: spawn_z | Ieder voertuig krijgt een X, Y en Z coordinaat mee zodat hij weet waar hij moet spawnen. Ieder van deze parameters moet van het type Float zijn (en een Float mag natuurlijk ook altijd een standaard integer zijn).
Float:angleHet voertuig krijgt een hoek (aantal graden) mee. Deze parameter zorgt ervoor dat het voertuig de goede kant op 'kijkt'. De waarde van deze float ligt tussen 0 en 360.
color1 | color2Ieder voertuig heeft twee basiskleuren. Deze kleuren hebben een kleurcode waarmee ze herkend worden door het spel. Deze waarde kan je bij allebei op -1 zetten en hij kiest een random (door GTA goedgekeurde kleurcombinatie) uit.
Praktijk
pawn Код:
OnGameModeInit() {
    AddStaticVehicle(597,-1604.3983,749.7172,-5.2727,177.9079,-1,-1); // politie sf
}
Met bovenstaande code zet je een politieauto van San Fierro (SFPD > ID 597) neer bij het politiebureau van San Fierro. De kleuren worden automatisch opgehaald uit je San Andreas installatie (en dit is waarschijnlijk gewoon zwart-wit omdat dat de kleuren zijn).

Tip: Om nu niet te hoeven prutsen met de coordinaten in een of ander programma kan je ook in een willekeurige server gaan (of in je eigen en fs_debug starten, daarna /v <autonaam> doen (waar <autonaam> de naam van het voertuig is: bijvoorbeeld: /v sfpd)) en in een voertuig stappen, naar de plaats rijden waar je hem wil hebben en daar /save typen. Daarna ga je naar de volgende locatie op je computer: Mijn Documenten/SAMP/savedpositions.txt en daar krijg je de volledige code al toegereikt!

AddStaticVehicleEx
AddStaticVehicleEx is de uitgebreide versie van AddStaticVehicle. Je krijgt dan de volgende opbouw van de functie:
pawn Код:
AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:angle, color1, color2, respawn_delay);
De enige parameter die erbij is gekomen is de respawn_delay parameter. Door deze parameter te gebruiken kun je zelf kiezen hoelang het voertuig onbemand blijft staan op de map zonder dat hij respawnd word. Wil je dat hij altijd blijft staan en niet uit zichzelf respawnt dan zet je hier -1 neer.

De waarde van deze parameter is een volledig getal in seconden. Wil je dat een voertuig na 1 minuut ongebruikt respawnt dan gebruik je als waarde 60, aangezien er 60 seconden in een minuut zitten.

Deze functie moet, net als AddStaticVehicle, in OnGameModeInit staan en nergens anders!

Praktijk
pawn Код:
OnGameModeInit() {
    AddStaticVehicleEx(597,-1604.3983,749.7172,-5.2727,177.9079,-1,-1, 120); // politie sf respawnt na 2 min
}
In bovenstaande code wordt dezelfde SFPD als in het AddStaticVehicle voorbeeld hierboven gebruikt, maar hebben we de respawntijd aanzienlijk verkort (namelijk naar 2 minuten). Als je AddStaticVehicle zou hebben gebruikt dan had de auto veel langer onbemand blijven staan (volgens mij ongeveer een half uur).

Hoop dat je er wat aan hebt gehad. Vragen? Stel ze gerust!
Kortere versies nodig? Op de SA:MP wiki staan deze artikelen nu ook!
Reply
#2

Goede handleiding, mamo! Duidelijk uitgelegd wat het inhoud en hoe het werkt!
Reply
#3

Wat ik me nu altijd heb afgevraagd is waarom je AddStaticVehicle / - Ex zou gebruiken bij andere voertuigen dan treinen. CreateVehicle doet precies hetzelfde right?
Reply
#4

met AddStaticVehicle kan je het voertuig niet verwijderen. En kan volgens de wiki enkel gebruikt worden in OnGameModeInit. Hoewel ik een /tram command heb die werkt...fout van wiki?
Reply
#5

Quote:
Originally Posted by [MM]IKKE
Посмотреть сообщение
met AddStaticVehicle kan je het voertuig niet verwijderen. En kan volgens de wiki enkel gebruikt worden in OnGameModeInit. Hoewel ik een /tram command heb die werkt...fout van wiki?
Ja inderdaad, foutje van mij, CreateVehicle heeft dus zelfs een voordeel. Waarom dan AddStaticVehicle gebruiken?
Reply
#6

Quote:
Originally Posted by -Danny-
Посмотреть сообщение
Ja inderdaad, foutje van mij, CreateVehicle heeft dus zelfs een voordeel. Waarom dan AddStaticVehicle gebruiken?
Je moet dit voor trams/treinen omdat die anders werken (denk ik). Ze spawnen altijd op het dichtsbijzijnde spoor (dat bereikbaar is) van je spawn positie.
Reply
#7

Volgens mij kan je een tram wel gewoon via CreateVehicle spawnen omdat die, in tegenstelling tot treinen, alleen uit de tram bestaat en geen wagons heeft.
Reply
#8

Quote:
Originally Posted by [MM]IKKE
Посмотреть сообщение
met AddStaticVehicle kan je het voertuig niet verwijderen. En kan volgens de wiki enkel gebruikt worden in OnGameModeInit. Hoewel ik een /tram command heb die werkt...fout van wiki?
dat /tram command werkt met AddStaticVehicle? Dat is de raarste manier ooit dat ik heb gezien om een voertuig te spawnen
Reply
#9

Ik kan dan ook helemaal niet scripten, had dit gewoon ff gemaakt om een NPC te recorden.

pawn Код:
new tram;
new train;

public OnPlayerCommandText(playerid, cmdtext[])
{

  //gedoe hier

else if(strcmp(cmd, "/tram", true) == 0)
    {
        if (tram)
        {
            SendClientMessage(playerid,-1,"A tram already spawned!");
            return 1;
        }
        else
        {
            new Float:x, Float:y, Float:z;
            GetPlayerPos(playerid,x,y,z);
            tram = AddStaticVehicle(449, x, y, z, 0, 0, 0);

            return 1;
        }
    }
   
    else if(strcmp(cmd, "/train", true) == 0)
    {
        if (train)
        {
            SendClientMessage(playerid,-1,"A train already spawned!");
            return 1;
        }
        else
        {
            new Float:x, Float:y, Float:z;
            GetPlayerPos(playerid,x,y,z);
            tram = AddStaticVehicle(538, x, y, z, 0, 0, 0);

            return 1;
        }
    }
  //gedoe daar
}
Had slechts ййn tram nodig - en werd gebruikt om ook de tram te kunnen besturen in downtown SF. Je kan daar niet rijden met een tram als je geen "PutPlayerInVehicle(playerid,vehicleid,0);" gebruikt.

Ik ben een slecht voorbeeld van scripten. Maar het werkte.
Reply
#10

Als je hem op de gewone tramrails zet dan kan je gewoon er mee rijden
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)