Welkom Gast! [Registreer] :: [Login]
Navigatie

Tutorials

Shoutbox
U dient in te loggen om een bericht te plaatsen.

22/05/2012 09:42
Hartelijk dank voor de gif btw! Smile Thumbs

22/05/2012 09:41
@Hurra: Tjah, ik ben nu eenmaal voor Android. Kheb geen zin in discussie Pfft elk heeft z'n eigen smaak en voorkeur

20/05/2012 21:33
Squire, dat is nutteloze software.

20/05/2012 20:51
@ ground zero.. download GIF Movie Gear. http://www.gamani.
com/gmgdown.htm

20/05/2012 20:45
Android is het meest gesloten open source project ter wereld. Alsook, GIF


Volg ons voor statusupdates en aankondigingen!
Registreer of log in
Om gebruik te maken van de volledige functionaliteit van Modbase moet je ingelogd zijn.
Na registratie kan je reageren, onderwerpen starten, projecten toevoegen en nog veel meer.

Dit is volkomen gratis en duurt hoogstens een minuut.

Registreer gratis

Op een rijdende tank zitten



In de map zelf gaan we eerst een tank moeten plaatsen en een path maken dat de tank dan kan volgen.

De tank is een script_vehicle. Rechterklik in je 2D grid en kies script> vehicle.
Open dan je entitykader (n) en geef bij key model in en bij value xmodel/vehicle_crusader2
Nu kan je je tank al zien en goed plaatsen in je map.
Geef dan in de entitykader bij key vehicletype in en bij value crusader.
Belangrijk is dan ook dat je een targetname ingeeft. Deze is tank.
Geef dan ook bij key script_vehiclestartmove in en bij value 1
In je entitykader staan nu volgende keys:

model xmodel/vehicle_crusader2
vehicletype crusader
targetname tank
script_vehiclestartmove 1

je kan dan nog 2 keys ingeven, maar deze zijn niet nodig:

script_turret 0 of 1
script_avoidvehicles 0 of 1

Nu kan je de tank deselecteren en beginnen met het path te maken. Dit is een curve die de tank zal volgen.
Hiervoor hebben we info_vehicle_node's en info_vehicle_node_rotate's nodig.
Voor de eerste node rechtsklik je in het 2D grid en kies je info> vehicle_node
Er zal nu een groen kubusje verschenen zijn. Open de entity kader en selecteer het keuzevakje START_NODE
Geef dan een speed in van bv 6 en lookahead 3. Dit zal zorgen voor de rode lijn met pijlen als je path af is.



Nu maak je een nieuwe info > vehicle_node aan waar je niets bij ingeeft. Kopieer deze zoveel je wilt, zodat je een path krijgt.
Als je een bocht wil maken moet je een info > vehicle_node_rotate gebruiken.
Verbind dan alle nodes met elkaar door 2 nodes te selecteren en op W te drukken.

Selecteer nu je tank en dan je eerste vehicle_node waarbij je START_NODE hebt aangevinkt. Duw dan op w. Je tank zal nu verbonden zijn met die node. De vehivle_node is nog wel geselecteerd en je tank niet meer, klik daarom nu op de volgende vehicle node en duw op w. Zo verbind je telkens de vorige node met de volgende tot je aan het einde zit.
Eventueel kan je bij bepaalde vehiclenodes nog een verschillende speed ingeven dan je start node.



Plaats nu nog een info > player_start tegen je tank en slaag je map op.

Nu is er nog een script nodig zodat de tank zou bewegen en je erop blijft zitten.

.gsc
#include maps\_utility;
#include maps\_anim;

main()
{

maps\_crusader::main("xmodel/vehicle_crusader2");
maps\_tankai::main();
maps\_tankai_crusader::main("xmodel/vehicle_crusader2");
maps\_load::main();

thread playertank();
}

playertank()
{
tank = getent("tank", "targetname");
tank thread maps\_tankgun::mgoff();
tank addvehicletocompass();

path = getVehicleNode (tank.target,"targetname");
tank attachpath(path);
tank startPath();

level.player.angles = (0,-45,0);
level.player playerLinkToDelta (tank, "tag_playerride", 0.85);

level.player enableHealthShield(true);
//level.player freezeControls(true);
level.player allowLeanLeft(false);
level.player allowLeanRight(false);
level.player allowProne(false);
level.player allowCrouch(false);
level.player setplayerangles ( tank gettagAngles ("tag_playerride") );

tank waittill ("reached_end_node");

thread tank_getoff();
}

tank_getoff()
{
tank = getent ("tank","targetname");
dummy = spawn("script_origin", tank getTagOrigin("tag_playerride") );
dummy.angles = tank getTagAngles("tag_playerride");

level.player unlink();
level.player linkto (dummy);

dummy moveTo(dummy.origin + (64,0,10), .6);
wait .6;

tank removevehiclefromcompass();
level.player unlink();

level.player allowLeanLeft(true);
level.player allowLeanRight(true);
level.player allowProne(true);
level.player allowCrouch(true);
//level.player freezeControls(false);
level.player enableHealthShield(false);
}


De 2 rode getallen zorgen ervoor dat de speler van de tank komt en opschuift naast de tank. het kan zijn dat je dat niet van de eerste keer juist hebt. het eerste getal is het aantal units dat je opschuift over de x-as en het 2de over de y-as.

Voor nu er nog geluid aan toe te voegen moet je de volgende csv opslaan als MapNaam.csv in de map soudaliases die in de map main zit. MapNaam moet je dus veranderen door de naam van je map.

.csv
name,sequence,file,vol_min,vol_max,vol_mod,pitch_min,pitch_max,dist_min,dist_max,channel,

type,probability,loop,masterslave,loadspec,subtitle,compression,secondaryaliasname,volume

falloffcurve,startdelay,speakermap,reverb,lfe percentage

null,,null.wav,,,,,,,,,,,,,,,,,,,


#Vehciles
crusader_idle_low,,vehicles/mrk_tank_03_idle.wav,0,,vehicle,0.75,,7,2500,auto,,,looping,,,,,,weapon2,,,,
crusader_idle_high,,vehicles/mrk_tank_03_idle.wav,0.3,,vehicle,1,,7,2500,auto,,,looping,,,,,,weapon2,,,,
crusader_engine_low,,vehicles/mrk_tank_03_move.wav,0,,vehicle,0.75,,7,4000,auto,,,looping,,,,,,weapon2,,,,
crusader_engine_high,,vehicles/mrk_tank_03_move.wav,0.68,,vehicle,1,,7,4000,auto,,,looping,,,,,,weapon2,,,,
crusader_fire,1,weapons/flak/flak88_fire02.wav,1,1,vehicle,1,1.2,1000,8500,auto,,,,0.85,,,,,weapon2,,,,0.3
crusader_fire,2,weapons/flak/flak88_fire03.wav,1,1,vehicle,1,1.2,1000,8500,auto,,,,0.85,,,,,weapon2,,,,0.3
crusader_turret_spin,,vehicles/mrk_turret_turn04_22k.wav,0.85,0.85,vehicle,1,,7,3500,auto,,,looping,,,,,,weapon2,,,,
crusader_turret_stop,,vehicles/mrk_turret_end01_22k.wav,0.1,0.1,vehicle,0.9,,7,3500,auto,,,,,,,,,weapon2,,,,


Wat we nu gedaan hebben is alleen de player(jijzelf dus) op de tank geplaats en er af laten komen. Nu zullen we uitleggen hoe je actors op de tank zet.

Voor het mapping gedeelte moet je zowel de tank als de actors die op die tank zullen plaatsnemen volgde eigenschappen geven:

Key:script_vehicleride
Value: 1

Heb je een tweede tank, doe hetzelfde, maar vu bv als value 2 in enz.

Aan je gcs moet je niet veel veranderen, er moet maar 1 regel bijkomen

tank notify ("unload");

Deze regel zorgt ervoor dat de actors van de tank zullen springen.
De volledige gsc zou er nu zo moeten uitzien:

.gsc
#include maps\_utility;
#include maps\_anim;

main()
{

maps\_crusader::main("xmodel/vehicle_crusader2");
maps\_tankai::main();
maps\_tankai_crusader::main("xmodel/vehicle_crusader2");
maps\_load::main();

thread playertank();
}

playertank()
{
tank = getent("tank", "targetname");
tank thread maps\_tankgun::mgoff();
tank addvehicletocompass();

path = getVehicleNode (tank.target,"targetname");
tank attachpath(path);
tank startPath();

level.player.angles = (0,-45,0);
level.player playerLinkToDelta (tank, "tag_playerride", 0.85);

level.player enableHealthShield(true);
//level.player freezeControls(true);
level.player allowLeanLeft(false);
level.player allowLeanRight(false);
level.player allowProne(false);
level.player allowCrouch(false);
level.player setplayerangles ( tank gettagAngles ("tag_playerride") );

tank waittill ("reached_end_node");
tank notify ("unload");

thread tank_getoff();
}

tank_getoff()
{
tank = getent ("tank","targetname");
dummy = spawn("script_origin", tank getTagOrigin("tag_playerride") );
dummy.angles = tank getTagAngles("tag_playerride");

level.player unlink();
level.player linkto (dummy);

dummy moveTo(dummy.origin + (64,0,10), .6);
wait .6;

tank removevehiclefromcompass();
level.player unlink();

level.player allowLeanLeft(true);
level.player allowLeanRight(true);
level.player allowProne(true);
level.player allowCrouch(true);
//level.player freezeControls(false);
level.player enableHealthShield(false);
}


Nu hebben we nog een laatste optie i.v.m. een tank in sp: de tank komt aangereden met de actors erop, zonder dat jij erop zit (denk maar aan de sp missie van D-Day op point du hoc waar op het einde tanks komen aangereden).
Om dit te maken doe je net hetzelfd als hierboven: je geeft zowel tank als bemanning als Key: script_vehicleride en een Value: 1

Dan rest ons alleen nog de gsc die uiteraard heel wat gewijzigd is tov hierboven:

.gsc
#include maps\_utility;
#include maps\_anim;

main()
{

maps\_crusader::main("xmodel/vehicle_crusader2");
maps\_tankai::main();
maps\_tankai_crusader::main("xmodel/vehicle_crusader2");
maps\_load::main();

thread playertank();
}

playertank()
{
tank = getent("tank", "targetname");
tank thread maps\_tankgun::mgoff();
tank addvehicletocompass();

path = getVehicleNode (tank.target,"targetname");
tank attachpath(path);
tank startPath();

tank waittill ("reached_end_node");
tank notify ("unload");

}


Je tank zal nu werken als je alles juist hebt gedaan.

Je zou deze tutorial ook kunnen toepassen op bv een sherman tank maar dan moet je overl waar crusader staat, het veranderen in sherman. Voor de juiste script namen kan je kijken in iw_07.iwd\maps

Als er vragen zijn over deze tutorial kan je die stellen op het forum.

Inloggen

Online users
Nieuwste lid:
mericin

· IzNoGoD00:08:05
· usselite00:18:53
· vinhui00:26:07
· Wolph00:39:34
· mericin00:46:48
· phinal00:53:39
· mitchhubers01:03:40
· HuRRaCaNe02:00:07
· Fristi02:02:25
· Niels02:08:17
· Google[bot]Online

Gasten online: 6


Link ons

Partners

Links


Naar Boven

© 2006-2012 Modbase. Alle rechten voorbehouden. Disclaimer | Gedragscode

Custom coding by Stijn, Image fixing by Derix