Hallo.
In deze tutorial leg ik uit hoe je een lift kan maken.
1. Maak je lift uit brushes.
Tip: Maak de boven kant van je lift 128 hoger. reden hiervoor is als de lift beneden is dat je er niet op kan lopen.
2. Selecteer je lift rechtermuisknop>script>brushmodel.
3. Hou je lift geselecteerd. Open je entity scherm(N). voeg het volgende toe.
Key: targetname
value elevatormodel
4. Nu gaan we de elevator knop makken. Rechtermuisknop>misc>model>icbm_elevatorswitch.
5. Nu gaan we een trigger makken.Plaats de trigger over de elevator knop. rechtermuisknop>trigger>use
Slelecteer je trigger. Open je entity scherm(N). Voeg het volgende toe.
Key: targetname
Value elevatorswitch.
6. Geef je Lift een texture.
7. Doe er 3 sounds bij van een lift. Plaats de sounds in raw>sounds>misc
Sound 1. elevator_short.wav
Sound 2. elevator_med.wav
Sound 3. elevator_long.wav
Nu gaan we scripten.
8. Maak een .gsc file. mijnmap.gsc in de map raw>maps>mp
Voeg dit daar in.(Wel veranderen)
main()
{
maps\mp\_load::main();
level.elevatorDown = true; // elevator start op de bodem. true/false
level.elevatorMoving = false; // elevator beweegd constant. true/false
thread elevator_start();
}
elevator_start() {
elevator = getentarray ("elevatorswitch","targetname");
if ( isdefined(elevator) )
for (i = 0; i < elevator.size; i++)
elevator[i] thread elevator_think();
}
elevator_think() {
while (1) {
self waittill ("trigger");
if (!level.elevatorMoving)
thread elevator_move();
}
}
elevator_move() {
elevatormodel = getent ("elevatormodel", "targetname");
level.elevatorMoving = true;
speed = 3; //De snelheid waar mee de lift beweegd.
height = 136; //Hoeveel units de lift omhoog moet.
wait (0.5); //Hoelang de lift moet wachten.
if (level.elevatorDown) {
elevatormodel playsound ("elevator_med");//De naam van je soundaliases.csv
wait (0.5); //Hoe lang de lift moet wachten voor hij begint.
elevatormodel moveZ (height, speed);
elevatormodel waittill ("movedone");
level.elevatorDown = false;
}
else { // moves to bottom
elevatormodel playsound ("elevator_med"); //De naam van je soundaliases.csv
wait (0.5); //Hoe lang de lift moet wachten voor hij begint.
elevatormodel moveZ (height - (height * 2), speed);
elevatormodel waittill ("movedone");
level.elevatorDown = true;
}
level.elevatorMoving = false;
}
9. Maak een .csv file aan. Sla hem op als jouw map naam. In raw>soundaliases. Voeg dit daar in.(wel veranderen)
#"If the first column for a row is blank," then the row is ignored""",
# The first non-comment line of a sound alias file specifies the key name for all values appearing in this column.,,
# This means it is safe to swap entire columns around, though you should never swap partial columns.,,
# You can invent new keys, but the game will ignore them if it doesn't know about them.,,
# You can leave out keys, but the "name" and "file" keys must always be present.,,
,name,name of the alias that is used to play this sound (required)
,sequence,"used to uniquely identify alias entries when more than one sound goes to an alias, used only to catch unwanted duplicates (default = 0)"
,file,the name of the file that contains the sound data (required)
,vol_min,"0 is silent, 1 is full volume (default = 1)"
,vol_max,"0 is silent, 1 is full volume (default = same as vol_min)"
,vol_mod,"blank causes no effect on vol_min and vol_max, otherwise the string must match a string in the volumemodgroups.def file and the value in that file corresponding to that string will be used to adjust vol_min and vol_max, clamped to the valid range"
,pitch_min,"1 is normal playback, 2 is twice as fast, 0.5 is half as fast (default = 1)"
,pitch_max,"1 is normal playback, 2 is twice as fast, 0.5 is half as fast (default = same as pitch_min)"
,dist_min,"within this distance in inches, the sound is always full volume (default = 120)"
,dist_max,"outside this distance in inches, the sound is not started. If left blank or set to 0, the sound will play from any distance. This does not affect sound volume falloff."
,channel,"auto, menu, weapon, voice, item, body, local, music, announcer (default = auto)"
,type,primed (a streamed sound which gets primed on some platforms) / streamed / loaded (default = loaded)
,probability,weight to use for the weighted probability of playing this sound instead of another sound (default = 1)
,loop,"whether this sound is ""looping"" or ""nonlooping"" (default = ""nonlooping"""
,masterslave,"if ""master"", this is a master sound. If a number, then this sound's volume will be multiplied by that number (a percentage between 0 and 1) any master sound is playing. If blank, then neither master nor slave."
,loadspec,"space-separated list of which maps should use this alias
,compression,"a string corresponding to an entry in ""XMAUpdate.tbl"" which is used to determine compression by XMAUpdate.exe"
,secondaryaliasname,"defined the name of an additional sound alias to play in addition to the current alias being played. Note that it is an error for the secondaryalias to also define a secondaryaliasname (eg, if B is a secondaryalias of A, B is not allowed to have its own secondaryalias)."
,volumefalloffcurve,if blank uses the linear curve which can not be changed. A string 'XXXX' corresponds to the curve defined by the file 'soundaliases/XXXX.vfcurve'
,startdelay,defaults to no delay. The value is the number of milliseconds to delay starting the sound by
,speakermap,if blank uses the default speakermappings which cannot be changed. A string 'XXXX' corresponds to the speakermap defined by the file 'soundaliases/XXXX.spkrmap'.
,reverb,"blank means the alias is affected normally by wet and dry levels, ""fulldrylevel"" forces the alias to use a full drylevel (ignoring the global drylevel), ""nowetlevel"" forces the alias to use no wetlevel (ignoring the global wetlevel)"
,lfe percentage,this determines what percentage of the highest calculated spatialized speaker volume should be passed to the LFE. blank means no LFE for the sound
,center percentage,this determines what percentage of the volume should be redirected to the center channel (equal percentage taken from all speakers).
,platform,"used by XMAUpdate to determine whether the alias should be processed for a particular platform. If blank, process for all platforms. Platforms are PC, XB, PS, WI. Multiple values should be separated by spaces. !PC will exclude alias from PC but include in all other platforms. PC will only include alias for PC. !PC XB is invalid."
,envelop_min,any sounds within this distance of the listener will use the full envelop percentage
,envelop_max,sounds between enevlop_min and envelop_max use a fraction of the envelop percentage,,,,,,,,,,,,,,,,,,,,,,,,,,
,envelop percentage,amount of omnidirectionality to apply,,,,,,,,,,,,,,,,,,,,,,,,,,
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,volumefalloffcurve,startdelay,speakermap,reverb,lfe percentage,center percentage,platform,envelop_min,envelop_max,envelop percentage
elevator_med,,misc/elevator_med.wav,1,,,,,,,local,,,,,mp_jouwnaam
De naam van het geluidsbestand hoe je hem noemt in je gsc.
De Plaats/naam.wav geluidsbestand.
De naam van je map.
Nu gaan we 3 regels toevoegen in update fast file.
selecteer jouw map en voeg dan de volgende dingen toe.(wel veranderen mp_jouwnaam,!all_mp).
sound,elevator_short,mp_mijntest,!all_mp
sound,elevator_med,mp_mijntest,!all_mp
sound,elevator_long,mp_mijntest,!all_mp
10. Vergeet niet je map te compilen.
11. Shots ingame.

Deze is boven in me gebouw

Deze is onder in me gebouw
Deze tutorial is gemaakt door Sintclair voor modbase.be