Artiklar rangordning
Vi varierar variablerna
Inlägg skrivet av Granquist
den 2006-12-26 10:49
Vad är en variabel?
Om du aldrig sett ordet variabel innan och undrar så är titeln en liten ledtråd för få i rätt tankar.
Det handlar alltså om något som kan varierar och det är i princip vad en variabel är för något.
En variabel har ett namn och ett värde (ibland är värdet att den inget värde har men vi krånglar inte till det i onödan nu i början).
Ett enkelt sätt att beskriva hur kraftfullt det är att jobba med variabel är att göra ett praktiskt exempel.
Vi har ett mission där vi skall ha en teleporter som fungerar. Innan vi börjar skriva något börjar vi tänka lite logisk, hur mycke information behöver vi.
Fundera själv, hur många "fakta" krävs för göra ett teleport script.
Exempel, nuvarande postion, riktning, hälsa osv.
En del skulle säga komma fram till att vi behöver 3 fakta, Hans nuvarande postion, vart han vill komma och framförallt vem.
Svaret är att vi endast behöver 2 fakta. Vem det är och vart han vill komma till.
Vi skulle då kunna göra ett script som vi kallar "tillStaden.sqs"
Scriptet startas när man går in i en trigger och under activation skriver vi
[] exec "tillStaden.sqs"
Själva scriptet har bara en enda rad.
player setpos getpos staden
Vilket funkar alldels perfekt om vi namnger ett objekt i staden till just staden.
Vi kan sen modifera det scriptet för passa alla dom lösningar vi har, staden, fyren, hamnen osv.
I mission mappen har vi nu tillStaden.sqs, tillFyren.sqs, tillHamnen.sqs
Nu kom vi på att en vore snyggt om blev svart undertiden man teleporterar sig, vilket innebär vi måste ändra i 3 script.
Hade vi kunnat lösa detta på något annat sätt, ja med hjälp av variabler.
Nytt script som vi kallar tillVariabeln.sqs
Startas med följande rad
[player, hamnen] exec "tillVariabeln.sqs"
Som ni märker skiljer sig det som är innanför klaffarna, [], vi har nu skickat med 2 variabeler som ger oss dom 2 fakta vi behöver, vem som skall teleporteras och vart dom skall.
I tillVariabeln.sqs måste vi ta hand om variabelerna ochd et kan se ut såhär.
spelare = _this select 0
plats = _this select 1
spelare setpos getpos plats
_this select 0 tar den första variabeln.
Det är viktigt att komma ihåg att man börjar med 0 och inte med 1.
Ett sätt att felsöka med hjälp av det enkla sidechat och variabler kan fungera tex så här.
player sidechat "tillVariabeln.sqs har startats"
spelare = _this select 0
plats = _this select 1
spelare setpos getpos plats
player sidechat format ["Dom olika variablerna har följande värdern är %1 och %2", spelare, plats]
När vi bara använder text kan vi använda "hejsan" medans om vi vill använda variabler så måste vi använda "tillägget" format.
Några frågor? Tveka inte komma in i #anrop.net chatten på quaketnet eller skriv en kommentar så skall jag antingen svara direkt, uppdatera.
Om du aldrig sett ordet variabel innan och undrar så är titeln en liten ledtråd för få i rätt tankar.
Det handlar alltså om något som kan varierar och det är i princip vad en variabel är för något.
En variabel har ett namn och ett värde (ibland är värdet att den inget värde har men vi krånglar inte till det i onödan nu i början).
Ett enkelt sätt att beskriva hur kraftfullt det är att jobba med variabel är att göra ett praktiskt exempel.
Vi har ett mission där vi skall ha en teleporter som fungerar. Innan vi börjar skriva något börjar vi tänka lite logisk, hur mycke information behöver vi.
Fundera själv, hur många "fakta" krävs för göra ett teleport script.
Exempel, nuvarande postion, riktning, hälsa osv.
En del skulle säga komma fram till att vi behöver 3 fakta, Hans nuvarande postion, vart han vill komma och framförallt vem.
Svaret är att vi endast behöver 2 fakta. Vem det är och vart han vill komma till.
Vi skulle då kunna göra ett script som vi kallar "tillStaden.sqs"
Scriptet startas när man går in i en trigger och under activation skriver vi
[] exec "tillStaden.sqs"
Själva scriptet har bara en enda rad.
player setpos getpos staden
Vilket funkar alldels perfekt om vi namnger ett objekt i staden till just staden.
Vi kan sen modifera det scriptet för passa alla dom lösningar vi har, staden, fyren, hamnen osv.
I mission mappen har vi nu tillStaden.sqs, tillFyren.sqs, tillHamnen.sqs
Nu kom vi på att en vore snyggt om blev svart undertiden man teleporterar sig, vilket innebär vi måste ändra i 3 script.
Hade vi kunnat lösa detta på något annat sätt, ja med hjälp av variabler.
Nytt script som vi kallar tillVariabeln.sqs
Startas med följande rad
[player, hamnen] exec "tillVariabeln.sqs"
Som ni märker skiljer sig det som är innanför klaffarna, [], vi har nu skickat med 2 variabeler som ger oss dom 2 fakta vi behöver, vem som skall teleporteras och vart dom skall.
I tillVariabeln.sqs måste vi ta hand om variabelerna ochd et kan se ut såhär.
spelare = _this select 0
plats = _this select 1
spelare setpos getpos plats
_this select 0 tar den första variabeln.
Det är viktigt att komma ihåg att man börjar med 0 och inte med 1.
Ett sätt att felsöka med hjälp av det enkla sidechat och variabler kan fungera tex så här.
player sidechat "tillVariabeln.sqs har startats"
spelare = _this select 0
plats = _this select 1
spelare setpos getpos plats
player sidechat format ["Dom olika variablerna har följande värdern är %1 och %2", spelare, plats]
När vi bara använder text kan vi använda "hejsan" medans om vi vill använda variabler så måste vi använda "tillägget" format.
Några frågor? Tveka inte komma in i #anrop.net chatten på quaketnet eller skriv en kommentar så skall jag antingen svara direkt, uppdatera.
Kommentarer
Det finns inga kommentarer.
Skriv en kommentar
Du måste logga in för att skriva en kommentar.