Dobře..mapa je připravena na scripting ( viz. Jak připravit mapu na scripty).
Vytvoříme si v adresáři /raw/maps/mp soubor se jménem mp_jménomapy.gsc (např. mp_dr_prison nebo mp_farm)
Já využívám psaní scriptů do hlavního scriptu.Možná méňě přehledné,ale rozhodně jednoduší a snadno přístupné.
Takže..Jak už jsme se dozvěděli (návod na jednoduchy skript pro pohyb) musíme vložit do .gsc (což je textový soubor) následující:
Citovat
main()
{
maps\mp\_load::main();
game["allies"] = "sas";
game["axis"] = "opfor";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "woodland";
game["axis_soldiertype"] = "woodland";
}
{
maps\mp\_load::main();
game["allies"] = "sas";
game["axis"] = "opfor";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "woodland";
game["axis_soldiertype"] = "woodland";
}
..tak a pod něj píšeme skripty:
např. tedy
Citovat
trap_4()
{
trig = getEnt( "trigger4", "targetname" );
brush = getEnt( "trap8", "targetname" );
trig waittill( "trigger", who );
trig delete();
brush moveZ( 250, 1 );
wait 5;
brush moveZ( -250, 1 );
}
{
trig = getEnt( "trigger4", "targetname" );
brush = getEnt( "trap8", "targetname" );
trig waittill( "trigger", who );
trig delete();
brush moveZ( 250, 1 );
wait 5;
brush moveZ( -250, 1 );
}
Ale každý jednotlivý script MUSí být nasměrovaný v hlavním úseku nahoře!
A to uděláme následujícně:
přídáme řádek do hlavičky : thread trap_4();
takže hlavička nyní vypadá takhle:
Citovat
main()
{
maps\mp\_load::main();
game["allies"] = "sas";
game["axis"] = "opfor";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "woodland";
game["axis_soldiertype"] = "woodland";
thread trap_4();
}
{
maps\mp\_load::main();
game["allies"] = "sas";
game["axis"] = "opfor";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "woodland";
game["axis_soldiertype"] = "woodland";
thread trap_4();
}
takhle můžete přidávat do main hlavičky kolik chcete skriptů..
Pokračujeme...
Předtím jsme měli move script..tedy pro pohyb předmětu po osách X,Y nebo Z.
Teď si přidáme rotate script..tedy script pro otáčení po těchto osách.
Citovat
trap_8()
{
trig = getEnt( "trigger8", "targetname" );
brush = getEnt( "trap12", "targetname" );
trig waittill( "trigger", who );
trig delete();
for( i = 0; i < 2; i++ )
{
brush rotateYaw( 512, 3 );
wait 3;
brush rotateYaw( -512, 3 );
wait 3;
}
}
{
trig = getEnt( "trigger8", "targetname" );
brush = getEnt( "trap12", "targetname" );
trig waittill( "trigger", who );
trig delete();
for( i = 0; i < 2; i++ )
{
brush rotateYaw( 512, 3 );
wait 3;
brush rotateYaw( -512, 3 );
wait 3;
}
}
// lze pouzit i : brush rotatePitch( 512, 3);
A zase...trigger8 je trigger(spouštěč) a trap12 je jméno brushe(objektu)
přidáme řádek do hlavičky ..
thread trap_8();
A teď...co když se rozhodnu ,že chci aby byl hráč freeznutý.Tedy bez hnutí.
Je to naprosto jednoduché.Může to vypadat třeba takto:
Citovat
freezing()
{
trig = getEnt("freeze", "targetname");
trig waittill("trigger", player);
trig delete();
player iprintlnbold("^5 You are freeze now!");
player freezeControls( true );
wait 8;
player freezeControls( false );
}
{
trig = getEnt("freeze", "targetname");
trig waittill("trigger", player);
trig delete();
player iprintlnbold("^5 You are freeze now!");
player freezeControls( true );
wait 8;
player freezeControls( false );
}
tenhle script nám říká že pokud hráč vstoupí do triggeru se jménem freeze tak se mu před obrazovkou napíše modrý nápis: You are freeze now! (tedy teď jsi znehybněný)
Citovat
player freezeControls( true );
Citovat
wait 8;
Citovat
player freezeControls( false );
NEZAPOMEŇTE POJMENOVAT V HLAVIČCE!
thread freezing();
Do tohoto tématu budu časem připisovat další scripty takže ho nezapomeňte sledovat a byl bych rád kdyby ho některý z našich milovaných adminů přišpendlil :-) Děkuji

Příspěvek upravil blabla: 4.04.2012 - 16:59