http://wiki.xmoto.tuxfamily.org/api.php?action=feedcontributions&user=Opofefemucu&feedformat=atomX-Moto - User contributions [en]2024-03-28T14:17:15ZUser contributionsMediaWiki 1.28.2http://wiki.xmoto.tuxfamily.org/index.php?title=Svg_Block_Pool&diff=5657Svg Block Pool2010-11-24T11:37:59Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ehyloxame.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://ehyloxame.co.cc CLICK HERE]=<br />
----<br />
</div><br />
=SVG objects=<br />
Here we collect nice svgs.<br />
==Aircondition box==<br />
[[Media:aircondition_box.svg]]</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Jointed_Line&diff=5656Jointed Line2010-11-24T11:27:26Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://exowufo.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://exowufo.co.cc CLICK HERE]=<br />
----<br />
</div><br />
=About=<br />
The inksmoto (0.6.0) will allow you to easily create jointed bridges etc. easily. (Thanks to tuhoojabotti and the rewrite/integration with Inksmoto by the only dude)<br />
<br />
=How-to=<br />
It is very easy to use. Create a block what you want to use in the line (must have xmoto properties).<br />
[[Image:jointedline1.png]]<br />
use the Jointed Line effect.<br />
[[Image:jointedline2.png]]<br />
[[Image:jointedlineprops.png]]<br />
*Spacing = Space between blocks.<br />
*Blocks = Amount of blocks repeated.<br />
*Joint = Joint type.<br />
[[Image:jointedlineresults.png]]<br />
Here's the svg to explore.<br />
[[Media:jointedlinesvg.svg]]</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=How_to_validate_a_highscore&diff=5655How to validate a highscore2010-11-24T11:14:04Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://otyxemydu.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://otyxemydu.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Ca:Valida un record|Català]] - [[Es:Validar un record|Español]] - [[No:Hvordan_validere_en_ny_verdensrekord|Norsk]]<br />
<br />
=== Validation rules ===<br />
* A highscore must be viewed by an administrator.<br />
* If a cheat is detected (for example by code modification), the highscore will be removed.<br />
* Going through a wrecker is forbidden. (it was possible in some old versions)<br />
* Wait 12 hours if the level is new. (except if there are a lot of highscores for this level)<br />
* Validate the levels best record first to prevent Conqueror Cup scores increasing fast at the beginning.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:Make_a_theme&diff=5654Ca:Make a theme2010-11-24T11:05:20Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://esinyqynyso.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://esinyqynyso.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Make a theme|English]] - [[Es:Make a theme|Español]] - [[Fr:Cr%C3%A9er_un_th%C3%A8me|Français]] - [[no:Lage et tema|Norsk]]<br />
<br />
= Introducció =<br />
Des de X-Moto 0.2.0, es possible fer nous temes i agregar nous objectes/textures fàcilment. Pots tornar a fer tots els gràfics del joc.<br />
<br />
Un tema es composa de un arxiu XML i arxius d'imatges. L'arxiu XML proporciona la informació sobre el tema i dona el nom de cada arxiu d'imatge per a utilitzar-los per a cada component descrit dins.<br />
<br />
Les imatges han de ser quadrades i les seves mides potencia de 2 (64x64, 128x128, 256x256)<br />
Les imatges superiors a 50Ko no s'accepten<br />
Les imatges han de ser png o jpg<br />
Les imatges han de tenir llicencia GPL<br />
<br />
= Fes un nou tema =<br />
Per crear un tema, hauràs de començar copiant un dels ja fets. Si actualitzes els temes en el joc, trobaràs els arxius dels temes descarregats en el directori Themes dins ~/.xmoto (UNIX) o en el directori d'instal·lació en (Windows).<br />
L'arxiu del tema es veu mes o menys així :<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf8&quot; ?&gt;<br />
&lt;xmoto_theme name=&quot;Classic&quot;&gt;<br />
&lt;sprite type=&quot;BikerPart&quot; name=&quot;PlayerBikerBody&quot; file=&quot;Body1.png&quot; /&gt;<br />
&lt;sprite type=&quot;BikerPart&quot; name=&quot;PlayerBikerFront&quot; file=&quot;Front1.png&quot; /&gt;<br />
...<br />
&lt;/xmoto_theme&gt;<br />
<br />
* Primer, copia un tema ja fet com a un nou arxiu<br />
* Obre el tema i canvia el nom per un de nou (reemplaça &quot;Classic&quot; per &quot;My Theme&quot;)<br />
<br />
Felicitats ! Has creat el teu primer tema i nomes fent una copia d'un de fet.<br />
Ara, prova a modificar-lo o agregar noves entrades.<br />
<br />
Actualment, es impossible enviar els teus temes a traves de la pagina web ; utilitza la pestanya del sistema de missatges i dona el teu email per contactar-nos si vols que el teu tema pugui ser descarregat per altres jugadors.<br />
<br />
= Les entrades dels temes =<br />
Una entrada de un tema es una linneà que explica al joc on pot trobar l'imatge per a un objecte donat. Un objecte te un tipus (BikerPart, Texture, Entity, Effect, Font, Misc, UI) ; per a cada tipus, hi poden haver diversos paràmetres. A mes, un objecte te un nom i alguns valors per definir la ruta a l'imatge.<br />
<br />
Alguns noms d'objectes estan definits en el joc, per exemple, &quot;PlayerBikerBody&quot; es el nom de l'objecte referent al cos del pilot. Peró alguns objectes nous poden ser definits com a textures o entrades.<br />
<br />
Els objectes es troben al directori Textures en un sub-directori que depèn del tipus d'objecte :<br />
{| border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;5&quot; align=&quot;center&quot;<br />
!Tipus d'Sprite<br />
!Directori<br />
|-<br />
|BikerPart<br />
|Textures/Riders<br />
|-<br />
|Texture<br />
|Textures/Textures<br />
|-<br />
|Entity<br />
|Textures/Sprites (o Textures/Sprites/Anims si es una animació)<br />
|-<br />
|Effect<br />
|Textures/Effects<br />
|-<br />
|Font<br />
|Textures/Fonts<br />
|-<br />
|Misc<br />
|Textures/Misc<br />
|-<br />
|UI<br />
|Textures/UI<br />
|}<br />
<br />
Els arxius d'objectes estan disponibles en http://xmoto.free.fr/sprites/Textures<br />
<br />
= Modificar l'entrada d'un tema =<br />
Simplement modifica els paràmetres (si vols) i el paràmetre del arxiu : dona el nom del teu nou arxiu.<br />
<br />
= Agrega una entrada d'un tema =<br />
Copia i enganxa una entrada ja feta del mateix tipus objecte. Canvia els paràmetres, i dona el paràmetre de l'arxiu.<br />
<br />
= Posa a prova el teu tema =<br />
Des de xmoto 0.2.1, tu pots comprovar el teu tema arrencant xmoto amb la opció -testTheme. T'ajudara a veure si el teu tema respecta les zones de col·lisió. Des de X-Moto 0.2.1, simplement prem F2 per canviar a aquest mode.<br />
<br />
[[Image:TestTheme.jpg]]</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:Skate_Park_Mod&diff=5652Ca:Skate Park Mod2010-11-24T11:05:05Z<p>Opofefemucu: </p>
<hr />
<div>=[http://ogetehuvo.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
[[Skate Park Mod|English]] - [[Es:Skate Park Mod|Español]]<br />
<br />
Aquest script et permet convertir el teu nivell en un skate park. Per completar el nivell, s'han de recollir punts fent trucs.<br />
<br />
&quot;Nota d'un desenvolupador de l'X-Moto: aquest script es bonic. De totes maneres, te un problema per una limitació de l'X-Moto. Produeix unes repeticions molt pesades (uns quants centenars de K) per l'anomenament constant de la funció Ticks.&quot; -Nicolas<br />
<br />
Quants mes punts facis seguits, mes rebràs. Intenta mantenir-te en una nora tot el temps que et sigui possible mentre fas algunes tombarelles. Els icones sobre el teu cap representen la teva puntuació.<br />
<br />
Si vols canviar les quantitats, utilitza la definició de constants a la part de dalt de l'script.<br />
<br />
Copia el codi directament al teu nivell per afegir aquesta funcionalitat. Fixa't que si edites el nivell desprès amb l'xmoto-edit, hauràs de tornar a copiar les entitats per que el editor no les interpreta be.<br />
<br />
&lt;script&gt;<br />
<br />
-- Level Parameters<br />
SCORE_WIN = 5000<br />
MANUAL_MINTIME = 1.0<br />
MANUAL_MAXTIME = 180.0<br />
MANUAL_UPDATEINTERVAL = 3.0<br />
MANUAL_BASESCORE = 15<br />
MANUAL_FLIPDIVISOR = 4<br />
AIR_MINDURATION = 2.0<br />
AIR_MULTIPLIER = 4<br />
AIR_MAXBONUSFLIPCOUNT = 5 <br />
FLIP_BASESCORE = 80<br />
ICON_SCORE = 10<br />
ICON_OFFSETX = -1.25<br />
ICON_OFFSETY = 3.0<br />
<br />
-- States<br />
ManualAirTime = 0.0<br />
InAir = false<br />
AirStart = 0.0<br />
AirFlips = 0<br />
WheelTouching = {0, 0}<br />
Manualing = 0<br />
ManualingStart = 0.0<br />
<br />
-- Scores<br />
FlipCount = 0<br />
FlipScore = 0<br />
ManualScore = 0<br />
BonusScore = 0<br />
TotalScore = 0<br />
HighTrickScore = 0<br />
IconCount = { 0, 0, 0 }<br />
CurrentScore = 0<br />
LastScore = 0<br />
<br />
function OnLoad()<br />
Game.SetKeyHook(&quot;H&quot;, &quot;ShowHelp&quot;)<br />
Game.Message(&quot;Press H for help&quot;)<br />
return true<br />
end<br />
<br />
function Tick()<br />
PlayerX, PlayerY, PlayerDirection = Game.GetPlayerPosition()<br />
<br />
-- Display icons<br />
ManualScore = GetManualScore()<br />
CurrentScore = math.floor((FlipScore + ManualScore + BonusScore) / ICON_SCORE)<br />
<br />
-- Calculate score icons<br />
if CurrentScore ~= LastScore then<br />
IconCount[1] = math.floor(CurrentScore / 100)<br />
CurrentScore = CurrentScore - IconCount[1] * 100<br />
IconCount[2] = math.floor(CurrentScore / 10)<br />
CurrentScore = CurrentScore - IconCount[2] * 10<br />
IconCount[3] = math.floor(CurrentScore)<br />
EraseIcons()<br />
end<br />
<br />
for i = 1, IconCount[1] do<br />
Game.SetEntityPos(&quot;High&quot; .. (i-1), PlayerX + i / 5 + ICON_OFFSETX, PlayerY + ICON_OFFSETY)<br />
end<br />
for i = 1, IconCount[2] do<br />
Game.SetEntityPos(&quot;Mid&quot; .. (i-1), PlayerX + i / 5 + ICON_OFFSETX, PlayerY + ICON_OFFSETY - 0.3)<br />
end<br />
for i = 1, IconCount[3] do<br />
Game.SetEntityPos(&quot;Low&quot; .. (i-1), PlayerX + i / 5 + ICON_OFFSETX, PlayerY + ICON_OFFSETY - 0.6)<br />
end<br />
<br />
LastScore = CurrentScore<br />
if TotalScore &amp;gt;= SCORE_WIN then<br />
Game.WinPlayer()<br />
end<br />
<br />
return true<br />
end<br />
<br />
function ShowHelp()<br />
Game.Message(&quot;Welcome to the Skate Park mod. Gets points by performing huge tricks.&quot;)<br />
Game.Message(&quot;Get &quot; .. SCORE_WIN .. &quot; points to win.&quot;)<br />
Game.Message(&quot;Scripting by Jacky J&quot;)<br />
end<br />
<br />
function OnSomersault(TDirection)<br />
local AirTime = 0<br />
local FlipMultiplier = 0<br />
local FlipDecayCount = 0<br />
<br />
-- Get air time<br />
if InAir == true then<br />
AirTime = Game.GetTime() - AirStart<br />
end<br />
<br />
-- Get manual time<br />
local ManualTime = GetManualTime()<br />
<br />
-- Increment flip counter<br />
FlipCount = FlipCount + 1<br />
AirFlips = AirFlips + 1<br />
FlipDecayCount = AirFlips<br />
if FlipDecayCount &gt; AIR_MAXBONUSFLIPCOUNT then<br />
FlipDecayCount = AIR_MAXBONUSFLIPCOUNT<br />
end <br />
FlipValue = (FLIP_BASESCORE - 5 * FlipDecayCount) * AirFlips<br />
<br />
-- Calculate flip score<br />
FlipScore = FlipScore + math.floor(FlipValue + AIR_MULTIPLIER * AirTime + math.floor(ManualTime / MANUAL_FLIPDIVISOR))<br />
end<br />
<br />
function OnWheel1Touchs(TStatus)<br />
<br />
WheelTouching[1] = TStatus<br />
if TStatus == 1 then<br />
CancelInAir()<br />
StartLandManual(1)<br />
else<br />
StartLiftManual(1)<br />
StartInAir(2)<br />
end<br />
<br />
end<br />
<br />
function OnWheel2Touchs(TStatus)<br />
<br />
WheelTouching[2] = TStatus<br />
if TStatus == 1 then<br />
<br />
CancelInAir()<br />
StartLandManual(2)<br />
else<br />
StartLiftManual(2)<br />
StartInAir(1)<br />
end<br />
<br />
end<br />
<br />
function StartInAir(TWheel)<br />
<br />
if WheelTouching[TWheel] == 0 then<br />
InAir = true<br />
AirStart = Game.GetTime()<br />
end<br />
end<br />
<br />
function CancelInAir()<br />
<br />
if InAir == true then<br />
AirTime = Game.GetTime() - AirStart<br />
if AirTime &amp;gt; AIR_MINDURATION then<br />
--Game.Message(&quot;Air Time: &quot; .. AirTime)<br />
end<br />
<br />
-- Subtract air time from manualing time<br />
if Manualing ~= 0 and AirTime &amp;gt; 0.5 then<br />
ManualAirTime = ManualAirTime + AirTime<br />
end<br />
end<br />
<br />
AirFlips = 0<br />
InAir = false<br />
end<br />
<br />
-- Called when a wheel touches<br />
function StartLandManual(TWheel)<br />
<br />
local OtherWheel = 3 - TWheel<br />
<br />
-- Check for both wheels touching<br />
if WheelTouching[OtherWheel] == 1 and Manualing ~= 0 then<br />
UpdateScore()<br />
Manualing = 0<br />
ManualAirTime = 0<br />
return true<br />
end<br />
<br />
-- Swapping manual wheels without both wheels touching<br />
if Manualing == OtherWheel then<br />
Manualing = TWheel<br />
--DisplayManualTime()<br />
return true<br />
end<br />
<br />
-- Check for an existing manual<br />
if Manualing == 0 then<br />
-- Start the manual<br />
Manualing = TWheel<br />
ManualingStart = Game.GetTime() + MANUAL_MINTIME<br />
end<br />
end<br />
<br />
-- Called when a wheel lifts off the ground<br />
function StartLiftManual(TWheel)<br />
local OtherWheel = 3 - TWheel<br />
StartLandManual(OtherWheel)<br />
end<br />
<br />
-- Returns the current manualing time<br />
function GetManualTime()<br />
<br />
-- Check for a manual<br />
if Manualing == 0 then<br />
return 0.0<br />
end<br />
<br />
-- Discount current air time<br />
if InAir == true then<br />
CurrentAirTime = Game.GetTime() - AirStart<br />
else<br />
CurrentAirTime = 0<br />
end<br />
<br />
-- Calculate the time<br />
ManualTime = Game.GetTime() - ManualingStart - ManualAirTime - CurrentAirTime <br />
<br />
-- Cap time<br />
if ManualTime &amp;lt; 0 then<br />
ManualTime = 0<br />
elseif ManualTime &amp;gt; MANUAL_MAXTIME then<br />
ManualTime = MANUAL_MAXTIME<br />
end<br />
<br />
return ManualTime<br />
end<br />
<br />
-- Calculates the manual score<br />
function GetManualScore()<br />
local ManualTime = GetManualTime()<br />
local Score = math.floor(ManualTime / MANUAL_UPDATEINTERVAL) * MANUAL_BASESCORE;<br />
return Score<br />
end<br />
<br />
-- Awards the player points<br />
function UpdateScore()<br />
<br />
ManualScore = GetManualScore()<br />
<br />
-- Score formulas<br />
TrickScore = FlipScore + ManualScore + BonusScore<br />
TotalScore = TotalScore + TrickScore<br />
<br />
-- Display score<br />
if TrickScore &amp;gt; 0 then<br />
Game.Message(&quot;Trick Score: &quot; .. TrickScore)<br />
Game.Message(&quot;Total Score: &quot; .. TotalScore)<br />
end<br />
<br />
-- Reset stats<br />
FlipCount = 0<br />
FlipScore = 0<br />
ManualScore = 0<br />
BonusScore = 0<br />
TrickScore = 0<br />
IconCount = { 0, 0, 0 }<br />
EraseIcons()<br />
end<br />
<br />
-- Move icons offscreen<br />
function EraseIcons()<br />
for i = 1, 9 do<br />
Game.SetEntityPos(&quot;High&quot; .. (i-1), 0, 10000)<br />
end<br />
for i = 1, 9 do<br />
Game.SetEntityPos(&quot;Mid&quot; .. (i-1), 0, 10000)<br />
end<br />
for i = 1, 9 do<br />
Game.SetEntityPos(&quot;Low&quot; .. (i-1), 0, 10000)<br />
end<br />
end<br />
<br />
&lt;/script&gt;<br />
&lt;entity id=&quot;Low0&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low1&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low2&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low3&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low4&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low5&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low6&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low7&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low8&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low9&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid0&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid1&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid2&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid3&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid4&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid5&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid6&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid7&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid8&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid9&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High0&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High1&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High2&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High3&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High4&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High5&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High6&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High7&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High8&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High9&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:Compilacio_Unix&diff=5653Ca:Compilacio Unix2010-11-24T11:05:05Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://obibohococ.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://obibohococ.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Build_for_Unix_%28like_GNU/Linux%29|English]] - [[de:Erstellen für Unix (wie GNU/Linux)|Deutsch]] - [[Es:Compilacion Unix|Español]] - [[No:Kompilere_i_Unix_%28som_GNU/Linux%29|Norsk]]<br />
<br />
= Metodologia =<br />
== Descarregar el Codi Font ==<br />
El tarball es accessible des de [http://xmoto.free.fr/index.php?page=news http://xmoto.free.fr/index.php?page=news].<br />
<br />
== Descomprimeix el tarball ==<br />
tar zxf xmoto-x.y.z-src.tar.gz<br />
cd xmoto-x.y.z<br />
<br />
== Compila'l==<br />
./configure [--prefix=/ruta_d'instal·lació]<br />
make<br />
<br />
== Instal·lació ==<br />
make install<br />
<br />
= Errades Comunes =<br />
== Tens instal·lat un compilador? ==<br />
== Algunes llibreries no es troben? ==<br />
<br />
'''SDL_mixer'''<br />
<br />
si apareix aquest missatge d'error:<br />
configure: error: SDL_mixer required<br />
<br />
En Ubuntu escriu: <br />
sudo apt-get install libsdl-mixer1.2-dev<br />
<br />
'''liblua'''<br />
<br />
si apareix aquest missatge d'error: <br />
configure: error: liblua5.1<br />
<br />
En Ubuntu escriu:<br />
sudo apt-get install liblua5.1-0-dev<br />
<br />
'''libode0'''<br />
<br />
si apareix aquest missatge d'error:<br />
configure: error: libode or libode0 required<br />
<br />
En Ubuntu escriu (hauria de funcionar?):<br />
sudo apt-get install libode0-dev</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:Compilacion_SVN&diff=5651Es:Compilacion SVN2010-11-24T11:04:59Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ycybesav.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=<br />
----<br />
=[http://ycybesav.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Build_from_SVN|English]] - [[Ca:Compilacio SVN|Català]] - [[No:Kompilere_fra_SVN|Norsk]]<br />
<br />
== SVN ? ==<br />
<br />
X-Moto utiliza SVN para desarrollar el juego. Con los archivos SVN, tienes acceso a las nuevas características yy.. a los nuevos errores.<br />
Utiliza lo solo en caso de saber lo que haces. Si no, simplemente descargate la versión estable de la pagina principal http://xmoto.sf.net<br />
<br />
Has de saber que el código fuentes descargado del SVN en ocasiones puede no estar compilado !<br />
<br />
[http://en.wikipedia.org/wiki/Subversion_%28software%29]<br />
<br />
=== Descarga los últimos archivos con SVN ===<br />
<br />
La primera vez, descarga todos los archivos en &quot;xmoto/&quot; :<br />
<br />
svn co svn://svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk xmoto<br />
<br />
o si eres un programador<br />
<br />
svn co svn+ssh://$USER@svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk xmoto<br />
<br />
(puedes enviar tus claves ssh publicaes para el root de tu cuenta ftp a ftp://$USER@ftp.tuxfamily.org/ en un archivo llamado ssh_keys )<br />
<br />
Fijate que hay un montón de clientes graficos para utilizar el svn en caso de que tengas miedo a la consola<br />
<br />
=== Actualizar los archivos ===<br />
<br />
Si ya has descargado los archivos necesarios anteriormente, puedes actualizarlos con esta orden :<br />
<br />
# svn update<br />
<br />
=== Accés Web ===<br />
http://viewvc.tuxfamily.org/svn_xmoto_xmoto<br />
<br />
=== Notificación vía RSS ===<br />
http://svnweb.tuxfamily.org/rss.php?repname=xmoto+%28xmoto%29&amp;path=%2F&amp;rev=0&amp;sc=0&amp;isdir=1<br />
<br />
== Compilar ==<br />
<br />
=== Dependencias ===<br />
<br />
Para compilar l'X-Moto has de tener :<br />
<br />
* El ultimo gcc y g++<br />
* SDL librerías y encabezados de desarrollo<br />
* OpenGL librerías y encabezados de desarrollo<br />
* SDL_mixer con encabezados <br />
* libjpeg con encabezados <br />
* libpng con encabezados <br />
* zlib con encabezados <br />
* libbzip2 con encabezados <br />
* liblua50 con encabezados <br />
* liblualib50 con encabezados <br />
* libode0 con encabezados <br />
* libcurl3 con encabezados <br />
* automake &gt;= 1.9<br />
<br />
Pero con las nuevas características, se pueden requerir nuevas dependencias.<br />
<br />
=== Listo! Puedo compilarlo ! ===<br />
<br />
$ cd xmoto<br />
$ sh ./bootstrap<br />
$ ./configure<br />
$ make<br />
# make install<br />
<br />
Ahora, puedes arrancar X-Moto con &quot;&lt;code&gt;./xmoto&lt;/code&gt;&quot;.<br />
Si no haces el paso de &lt;code&gt;# make install&lt;/code&gt;, puedes arrancar el juego con &lt;code&gt;$ (cd bin; ../xmoto)&lt;/code&gt;<br />
<br />
Si sh ./bootstrap falla, has de editar el archivo ./bootstrap manualmente:<br />
aclocal -I config $ACLOCAL_FLAGS\<br />
&amp;&amp; automake --gnu --add-missing --copy \<br />
<br />
Para que se parezca a:<br />
aclocal-1.9 -I config $ACLOCAL_FLAGS\<br />
&amp;&amp; automake-1.9 --gnu --add-missing --copy \<br />
<br />
=== No funciona ? ===<br />
<br />
Háblanos en el IRC.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:Compilacion_Unix&diff=5650Es:Compilacion Unix2010-11-24T11:04:50Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://umuziny.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=<br />
----<br />
=[http://umuziny.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Build_for_Unix_%28like_GNU/Linux%29|English]] - [[de:Erstellen für Unix (wie GNU/Linux)|Deutsch]] - [[Ca:Compilacio Unix|Català]] - [[No:Kompilere_i_Unix_%28som_GNU/Linux%29|Norsk]]<br />
<br />
= Metodología =<br />
== Descargar el Código Fuente ==<br />
El tarball es accesible desde [http://xmoto.free.fr/index.php?page=news http://xmoto.free.fr/index.php?page=news].<br />
<br />
== Descomprime el tarball ==<br />
tar zxf xmoto-x.y.z-src.tar.gz<br />
cd xmoto-x.y.z<br />
<br />
== Compilación==<br />
./configure [--prefix=/ruta_de instalación]<br />
make<br />
<br />
== Instalación ==<br />
make install<br />
<br />
= Errores Comunes =<br />
== Tienes instalado un compilador? ==<br />
== Algunas librerías no se encuentran? ==<br />
<br />
'''SDL_mixer'''<br />
<br />
si aparece este mensaje de error:<br />
configure: error: SDL_mixer required<br />
<br />
En Ubuntu escribe: <br />
sudo apt-get install libsdl-mixer1.2-dev<br />
<br />
'''liblua'''<br />
<br />
si aparece este mensaje de error:<br />
configure: error: liblua5.1<br />
<br />
En Ubuntu escribe:<br />
sudo apt-get install liblua5.1-0-dev<br />
<br />
'''libode0'''<br />
<br />
si aparece este mensaje de error:<br />
configure: error: libode or libode0 required<br />
<br />
En Ubuntu escribe (debería funcionar?):<br />
sudo apt-get install libode0-dev</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:Compilacio_SVN&diff=5649Ca:Compilacio SVN2010-11-24T11:04:44Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://axuzexy.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://axuzexy.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Build_from_SVN|English]] - [[Es:Compilacion SVN|Español]] - [[No:Kompilere_fra_SVN|Norsk]]<br />
<br />
== SVN ? ==<br />
<br />
X-Moto utilitza SVN per desenvolupar el joc. Amb els arxius SVN, tens accés a les noves característiques ii.. als nous errors.<br />
Utilitza'ls nomes en el cas de que sàpigues el que estàs fent. Si no, simplement descarrega't la versió estable des de la página principal http://xmoto.sf.net<br />
<br />
Has de saber que el codi font descarregat des de SVN a vegades pot no ésser compilat !<br />
<br />
[http://en.wikipedia.org/wiki/Subversion_%28software%29]<br />
<br />
=== Descarrega els darrers arxius amb SVN ===<br />
<br />
El primer cop, descarrega tots els arxius en &quot;xmoto/&quot; :<br />
<br />
svn co svn://svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk xmoto<br />
<br />
o si ets un programador<br />
<br />
svn co svn+ssh://$USER@svn.tuxfamily.org/svnroot/xmoto/xmoto/trunk xmoto<br />
<br />
(pots enviar la teves claus ssh publiques per al root del teu compte ftp a ftp://$USER@ftp.tuxfamily.org/ en un arxiu anomenat ssh_keys )<br />
<br />
Fixa't que n'hi han un munt de clients grafics per utilitzar l'svn en cas de que tinguis por a la consola<br />
<br />
=== Actualitzar els arxius ===<br />
Si ja has descarregat tots els arxius necessaris anteriorment, pots actualitzar-lo amb aquesta ordre :<br />
<br />
# svn update<br />
<br />
=== Accés Web ===<br />
http://viewvc.tuxfamily.org/svn_xmoto_xmoto<br />
<br />
=== Notificació via RSS ===<br />
http://svnweb.tuxfamily.org/rss.php?repname=xmoto+%28xmoto%29&amp;path=%2F&amp;rev=0&amp;sc=0&amp;isdir=1<br />
<br />
== Compilar ==<br />
<br />
=== Dependències ===<br />
<br />
Per compilar l'X-Moto has de tenir :<br />
<br />
* Darrer gcc i g++<br />
* SDL llibreries i capçaleres de desenvolupament<br />
* OpenGL llibreries i capçaleres de desenvolupament<br />
* SDL_mixer amb capçaleres<br />
* libjpeg amb capçaleres<br />
* libpng amb capçaleres<br />
* zlib amb capçaleres<br />
* libbzip2 amb capçaleres<br />
* liblua50 amb capçaleres<br />
* liblualib50 amb capçaleres<br />
* libode0 amb capçaleres<br />
* libcurl3 amb capçaleres<br />
* automake &gt;= 1.9<br />
<br />
Peró amb les noves característiques, es poden requerir noves dependències.<br />
<br />
=== Fet! Puc compilar-lo ! ===<br />
<br />
$ cd xmoto<br />
$ sh ./bootstrap<br />
$ ./configure<br />
$ make<br />
# make install<br />
<br />
Ara, pots arrencar l'X-Moto amb &quot;&lt;code&gt;./xmoto&lt;/code&gt;&quot;.<br />
Si no fas el pas de &lt;code&gt;# make install&lt;/code&gt;, pots arrencar el joc amb &lt;code&gt;$ (cd bin; ../xmoto)&lt;/code&gt;<br />
<br />
Si sh ./bootstrap falla, has de editar l'arxiu ./bootstrap manualment:<br />
aclocal -I config $ACLOCAL_FLAGS\<br />
&amp;&amp; automake --gnu --add-missing --copy \<br />
<br />
per a que s'assembli a:<br />
aclocal-1.9 -I config $ACLOCAL_FLAGS\<br />
&amp;&amp; automake-1.9 --gnu --add-missing --copy \<br />
<br />
=== No funciona ? ===<br />
<br />
Troba'ns al IRC.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:Skate_Park_Mod&diff=5648Es:Skate Park Mod2010-11-24T11:04:39Z<p>Opofefemucu: </p>
<hr />
<div>=[http://oleqatyqi.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=<br />
[[Skate Park Mod|English]] - [[Ca:Skate Park Mod|Català]]<br />
<br />
Este script te permite convertir tu nivel en un skate park. Para completar el nivel, se han de recoger puntos haciendo trucos.<br />
<br />
&quot;Nota de un desarrollador del X-Moto: este script es bonito. De todas maneras, tiene un problema por una limitacion del X-Moto. Produce unas repeticiones muy pesadas (unos cuantos centenares de K) por la llamada constante de la funcion Ticks.&quot; -Nicolas<br />
<br />
Cuantos mas puntos hagas seguidos, mas recibiras. Intenta mantenerte en una rueda todo el tiempo que te sea posible mientras haces algunas volteras. Los iconos sobre tu cabeza representan tu puntuacion.<br />
<br />
Si quieres cambiar las cuantidades, utiliza la definicion de constantes de la parte superior del script.<br />
<br />
Copia el codigo directamente a tu nivel para agregar esta funcionalidad. Fijate que si editas el nivel despues con el xmoto-edit, tendras que volver a copiar las entidades porque el editor no las interpretara bien.<br />
<br />
&lt;script&gt;<br />
<br />
-- Level Parameters<br />
SCORE_WIN = 5000<br />
MANUAL_MINTIME = 1.0<br />
MANUAL_MAXTIME = 180.0<br />
MANUAL_UPDATEINTERVAL = 3.0<br />
MANUAL_BASESCORE = 15<br />
MANUAL_FLIPDIVISOR = 4<br />
AIR_MINDURATION = 2.0<br />
AIR_MULTIPLIER = 4<br />
AIR_MAXBONUSFLIPCOUNT = 5 <br />
FLIP_BASESCORE = 80<br />
ICON_SCORE = 10<br />
ICON_OFFSETX = -1.25<br />
ICON_OFFSETY = 3.0<br />
<br />
-- States<br />
ManualAirTime = 0.0<br />
InAir = false<br />
AirStart = 0.0<br />
AirFlips = 0<br />
WheelTouching = {0, 0}<br />
Manualing = 0<br />
ManualingStart = 0.0<br />
<br />
-- Scores<br />
FlipCount = 0<br />
FlipScore = 0<br />
ManualScore = 0<br />
BonusScore = 0<br />
TotalScore = 0<br />
HighTrickScore = 0<br />
IconCount = { 0, 0, 0 }<br />
CurrentScore = 0<br />
LastScore = 0<br />
<br />
function OnLoad()<br />
Game.SetKeyHook(&quot;H&quot;, &quot;ShowHelp&quot;)<br />
Game.Message(&quot;Press H for help&quot;)<br />
return true<br />
end<br />
<br />
function Tick()<br />
PlayerX, PlayerY, PlayerDirection = Game.GetPlayerPosition()<br />
<br />
-- Display icons<br />
ManualScore = GetManualScore()<br />
CurrentScore = math.floor((FlipScore + ManualScore + BonusScore) / ICON_SCORE)<br />
<br />
-- Calculate score icons<br />
if CurrentScore ~= LastScore then<br />
IconCount[1] = math.floor(CurrentScore / 100)<br />
CurrentScore = CurrentScore - IconCount[1] * 100<br />
IconCount[2] = math.floor(CurrentScore / 10)<br />
CurrentScore = CurrentScore - IconCount[2] * 10<br />
IconCount[3] = math.floor(CurrentScore)<br />
EraseIcons()<br />
end<br />
<br />
for i = 1, IconCount[1] do<br />
Game.SetEntityPos(&quot;High&quot; .. (i-1), PlayerX + i / 5 + ICON_OFFSETX, PlayerY + ICON_OFFSETY)<br />
end<br />
for i = 1, IconCount[2] do<br />
Game.SetEntityPos(&quot;Mid&quot; .. (i-1), PlayerX + i / 5 + ICON_OFFSETX, PlayerY + ICON_OFFSETY - 0.3)<br />
end<br />
for i = 1, IconCount[3] do<br />
Game.SetEntityPos(&quot;Low&quot; .. (i-1), PlayerX + i / 5 + ICON_OFFSETX, PlayerY + ICON_OFFSETY - 0.6)<br />
end<br />
<br />
LastScore = CurrentScore<br />
if TotalScore &amp;gt;= SCORE_WIN then<br />
Game.WinPlayer()<br />
end<br />
<br />
return true<br />
end<br />
<br />
function ShowHelp()<br />
Game.Message(&quot;Welcome to the Skate Park mod. Gets points by performing huge tricks.&quot;)<br />
Game.Message(&quot;Get &quot; .. SCORE_WIN .. &quot; points to win.&quot;)<br />
Game.Message(&quot;Scripting by Jacky J&quot;)<br />
end<br />
<br />
function OnSomersault(TDirection)<br />
local AirTime = 0<br />
local FlipMultiplier = 0<br />
local FlipDecayCount = 0<br />
<br />
-- Get air time<br />
if InAir == true then<br />
AirTime = Game.GetTime() - AirStart<br />
end<br />
<br />
-- Get manual time<br />
local ManualTime = GetManualTime()<br />
<br />
-- Increment flip counter<br />
FlipCount = FlipCount + 1<br />
AirFlips = AirFlips + 1<br />
FlipDecayCount = AirFlips<br />
if FlipDecayCount &gt; AIR_MAXBONUSFLIPCOUNT then<br />
FlipDecayCount = AIR_MAXBONUSFLIPCOUNT<br />
end <br />
FlipValue = (FLIP_BASESCORE - 5 * FlipDecayCount) * AirFlips<br />
<br />
-- Calculate flip score<br />
FlipScore = FlipScore + math.floor(FlipValue + AIR_MULTIPLIER * AirTime + math.floor(ManualTime / MANUAL_FLIPDIVISOR))<br />
end<br />
<br />
function OnWheel1Touchs(TStatus)<br />
<br />
WheelTouching[1] = TStatus<br />
if TStatus == 1 then<br />
CancelInAir()<br />
StartLandManual(1)<br />
else<br />
StartLiftManual(1)<br />
StartInAir(2)<br />
end<br />
<br />
end<br />
<br />
function OnWheel2Touchs(TStatus)<br />
<br />
WheelTouching[2] = TStatus<br />
if TStatus == 1 then<br />
<br />
CancelInAir()<br />
StartLandManual(2)<br />
else<br />
StartLiftManual(2)<br />
StartInAir(1)<br />
end<br />
<br />
end<br />
<br />
function StartInAir(TWheel)<br />
<br />
if WheelTouching[TWheel] == 0 then<br />
InAir = true<br />
AirStart = Game.GetTime()<br />
end<br />
end<br />
<br />
function CancelInAir()<br />
<br />
if InAir == true then<br />
AirTime = Game.GetTime() - AirStart<br />
if AirTime &amp;gt; AIR_MINDURATION then<br />
--Game.Message(&quot;Air Time: &quot; .. AirTime)<br />
end<br />
<br />
-- Subtract air time from manualing time<br />
if Manualing ~= 0 and AirTime &amp;gt; 0.5 then<br />
ManualAirTime = ManualAirTime + AirTime<br />
end<br />
end<br />
<br />
AirFlips = 0<br />
InAir = false<br />
end<br />
<br />
-- Called when a wheel touches<br />
function StartLandManual(TWheel)<br />
<br />
local OtherWheel = 3 - TWheel<br />
<br />
-- Check for both wheels touching<br />
if WheelTouching[OtherWheel] == 1 and Manualing ~= 0 then<br />
UpdateScore()<br />
Manualing = 0<br />
ManualAirTime = 0<br />
return true<br />
end<br />
<br />
-- Swapping manual wheels without both wheels touching<br />
if Manualing == OtherWheel then<br />
Manualing = TWheel<br />
--DisplayManualTime()<br />
return true<br />
end<br />
<br />
-- Check for an existing manual<br />
if Manualing == 0 then<br />
-- Start the manual<br />
Manualing = TWheel<br />
ManualingStart = Game.GetTime() + MANUAL_MINTIME<br />
end<br />
end<br />
<br />
-- Called when a wheel lifts off the ground<br />
function StartLiftManual(TWheel)<br />
local OtherWheel = 3 - TWheel<br />
StartLandManual(OtherWheel)<br />
end<br />
<br />
-- Returns the current manualing time<br />
function GetManualTime()<br />
<br />
-- Check for a manual<br />
if Manualing == 0 then<br />
return 0.0<br />
end<br />
<br />
-- Discount current air time<br />
if InAir == true then<br />
CurrentAirTime = Game.GetTime() - AirStart<br />
else<br />
CurrentAirTime = 0<br />
end<br />
<br />
-- Calculate the time<br />
ManualTime = Game.GetTime() - ManualingStart - ManualAirTime - CurrentAirTime <br />
<br />
-- Cap time<br />
if ManualTime &amp;lt; 0 then<br />
ManualTime = 0<br />
elseif ManualTime &amp;gt; MANUAL_MAXTIME then<br />
ManualTime = MANUAL_MAXTIME<br />
end<br />
<br />
return ManualTime<br />
end<br />
<br />
-- Calculates the manual score<br />
function GetManualScore()<br />
local ManualTime = GetManualTime()<br />
local Score = math.floor(ManualTime / MANUAL_UPDATEINTERVAL) * MANUAL_BASESCORE;<br />
return Score<br />
end<br />
<br />
-- Awards the player points<br />
function UpdateScore()<br />
<br />
ManualScore = GetManualScore()<br />
<br />
-- Score formulas<br />
TrickScore = FlipScore + ManualScore + BonusScore<br />
TotalScore = TotalScore + TrickScore<br />
<br />
-- Display score<br />
if TrickScore &amp;gt; 0 then<br />
Game.Message(&quot;Trick Score: &quot; .. TrickScore)<br />
Game.Message(&quot;Total Score: &quot; .. TotalScore)<br />
end<br />
<br />
-- Reset stats<br />
FlipCount = 0<br />
FlipScore = 0<br />
ManualScore = 0<br />
BonusScore = 0<br />
TrickScore = 0<br />
IconCount = { 0, 0, 0 }<br />
EraseIcons()<br />
end<br />
<br />
-- Move icons offscreen<br />
function EraseIcons()<br />
for i = 1, 9 do<br />
Game.SetEntityPos(&quot;High&quot; .. (i-1), 0, 10000)<br />
end<br />
for i = 1, 9 do<br />
Game.SetEntityPos(&quot;Mid&quot; .. (i-1), 0, 10000)<br />
end<br />
for i = 1, 9 do<br />
Game.SetEntityPos(&quot;Low&quot; .. (i-1), 0, 10000)<br />
end<br />
end<br />
<br />
&lt;/script&gt;<br />
&lt;entity id=&quot;Low0&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low1&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low2&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low3&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low4&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low5&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low6&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low7&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low8&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Low9&quot; typeid=&quot;Wrecker&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid0&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid1&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid2&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid3&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid4&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid5&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid6&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid7&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid8&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;Mid9&quot; typeid=&quot;Strawberry&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High0&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High1&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High2&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High3&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High4&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High5&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High6&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High7&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High8&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;<br />
&lt;entity id=&quot;High9&quot; typeid=&quot;EndOfLevel&quot;&gt;&lt;size r=&quot;0.5&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;&lt;position x=&quot;0.0&quot; y=&quot;10000.0&quot;/&gt;&lt;/entity&gt;</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:Otros_Metodos&diff=5647Es:Otros Metodos2010-11-24T11:04:34Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://uxegyjyga.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://uxegyjyga.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Others astuces to make levels|English]] - [[Ca:Altres Metodes|Català]] - [[de:Andere Methoden|Deutsch]]<br />
<br />
Si por ejemplo, utilizas una propiedad que requiere el xmoto &gt;= 0.2.1, has de modificar la etiqueta del nivel para que quede así :<br />
&lt;level id=&quot;myid&quot; rversion=&quot;0.2.1&quot;&gt;<br />
<br />
== Propiedades de un Bloque ==<br />
<br />
&lt;block id=&quot;Block1&quot;&gt;<br />
&lt;physics grip=&quot;1.0&quot;/&gt;<br />
&lt;position x=&quot;-0.333333&quot; y=&quot;-5.666667&quot; dynamic=&quot;true&quot;/&gt;<br />
&lt;usetexture id=&quot;default&quot;/&gt;<br />
&lt;vertex x=&quot;-7.666667&quot; y=&quot;0.666667&quot;/&gt;<br />
&lt;vertex x=&quot;7.333333&quot; y=&quot;2.666667&quot;/&gt;<br />
&lt;vertex x=&quot;0.333333&quot; y=&quot;-3.333333&quot;/&gt;<br />
&lt;/block&gt;<br />
<br />
todas las propiedades no son obligatorias. Se darán los valores por defecto si no se especifica ninguno.<br />
<br />
* id : identificador del bloque ; permite cambiar el bloque vía el script<br />
* position : posición inicial del bloque<br />
* dynamic : permite que el bloque se mueva por medio de un script, si su valor es true<br />
* grip : fricción del block ; permite simular hielo [necesita xmoto &gt;= 0.2.1]<br />
* usetexture : textura aplicada al bloque<br />
<br />
== Propiedades de una Figura ==<br />
<br />
&lt;entity id=&quot;Strawberry2&quot; typeid=&quot;Strawberry&quot;&gt;<br />
&lt;size r=&quot;0.2&quot; width=&quot;0.5&quot; height=&quot;0.5&quot;/&gt;<br />
&lt;position x=&quot;42&quot; y=&quot;0.5&quot;/&gt;<br />
&lt;/entity&gt;<br />
<br />
todas las propiedades no son obligatorias. Se darán los valores por defecto si no se especifica ninguno.<br />
<br />
* id : identificador de la figura ; permite cambiar el bloque vía el script<br />
* typeid : tipo de figura<br />
* r : radio del circulo de colisión<br />
* width : anchura de la imagen [requiere xmoto &gt;= 0.2.1]<br />
* height : altura de la imagen [requiere xmoto &gt;= 0.2.1]<br />
* x : posición x del centro<br />
* y : posición y del centro</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=De:Beitragen&diff=5646De:Beitragen2010-11-24T11:04:31Z<p>Opofefemucu: </p>
<hr />
<div>=[http://ujybyqum.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
[[Contributions|English]] - [[Ca:Contribucions|Català]] - [[Es:Contribucions|Español]] - [[No:Bidrag|Norsk]]<br />
<br />
<br />
* Sie können Einträge zum Wiki hinzufügen.<br />
* Sie können die Webseite oder Wiki-Einträge übersetzen.<br />
* Sie können einen neuen Level für Xmoto erstellen.<br />
* Sie können ein neues Theme für Xmoto erstellen.<br />
* Wenn Sie C++ beherrschen, können Sie einen Patch für ein neues Feature schreiben.<br />
<br />
Für mehr Informationen kontaktieren Sie uns im IRC.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:Ca:Skate_Park_Mod&diff=5645Talk:Ca:Skate Park Mod2010-11-24T11:04:21Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ogetehuvo.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://ogetehuvo.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:Es:Skate_Park_Mod&diff=5644Talk:Es:Skate Park Mod2010-11-24T11:04:19Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://oleqatyqi.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://oleqatyqi.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:Valida_un_record&diff=5643Ca:Valida un record2010-11-24T11:04:08Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://utugijynure.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://utugijynure.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[How_to_validate_a_highscore|English]] - [[Es:Validar un record|Español]] - [[No:Hvordan_validere_en_ny_verdensrekord|Norsk]]<br />
<br />
=== Regles de Validació ===<br />
* El Record ha de ser visualitzat per un administrador<br />
* Si es detecta algun tipus de trampa (per exemple en la modificació del codi), el record serà eliminat<br />
* Travessar una mina esta prohibit (perquè en el futur no serà possible fer-ho)<br />
* Espera 12 hores si el nivell es nou (excepte si hi han molts records per aquest nivell<br />
* Es valida directament el millor de tots (per no fer que s'incrementi ràpidament el n (Copes de Conquista) al principi)</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:De:Beitragen&diff=5642Talk:De:Beitragen2010-11-24T11:03:51Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ujybyqum.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=<br />
----<br />
=[http://ujybyqum.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=User_talk:Mig&diff=5641User talk:Mig2010-11-24T11:03:43Z<p>Opofefemucu: Created page with '=[http://ajycyvitik.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]='</p>
<hr />
<div>=[http://ajycyvitik.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=De:Dateiformate&diff=5640De:Dateiformate2010-11-24T11:03:28Z<p>Opofefemucu: </p>
<hr />
<div>=[http://uwujojedeh.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
[[File_formats|English]] - [[Ca:Extensions|Català]] - [[Es:Extensions|Español]] - [[No:Filformater|Norsk]]<br />
<br />
Die meisten Dateiformate von Xmoto basieren auf XML, also sollte es ziemlich einfach sein, einfach durch anschauen herauszufinden, wie sie funktionieren. Auf jeden Fall finden Sie hier Informationen über sie. Nachstehend finden Sie eine (zumindest irgendwann) vollständige Liste aller benutzerdefinierten Dateiformate:<br />
<br />
*Leveldateien [[.lvl]]<br />
*Lokale Rekorde und Benutzerprofile [[players.bin]] (en)<br />
*Binäre Datenpakete [[xmoto.bin]] (en)<br />
*Replay-Dateien [[.rpl]] (en)<br />
*Konfiguration [[config.dat]] (en)</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=User:Mig&diff=5639User:Mig2010-11-24T11:03:22Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ajycyvitik.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://ajycyvitik.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:No:Hvordan_bruke_joystick&diff=5638Talk:No:Hvordan bruke joystick2010-11-24T11:03:18Z<p>Opofefemucu: Created page with '=[http://exowufo.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]='</p>
<hr />
<div>=[http://exowufo.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Bidrag&diff=5637No:Bidrag2010-11-24T11:03:12Z<p>Opofefemucu: </p>
<hr />
<div>=[http://awuhodynaro.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
[[Contributions|English]] - [[de:Beitragen|Deutsch]] - [[Ca:Contribucions|Català]] - [[Es:Contribucions|Español]]<br />
<br />
* Du kan legge til informasjon om X-Moto i denne wiki-en.<br />
* Du kan oversette spillets nettsted eller deler av wiki-en til ditt språk.<br />
* Du kan lage en ny bane til X-Moto.<br />
* Du kan lage ett nytt tema til X-Moto.<br />
* Hvis du har kunnskaper om C++, kan du lage en patch for en ny funksjon du ønsker.<br />
<br />
For mer informasjon, kontakt oss på irc.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Use_private_rooms_in_game_(instead_of_World_Highscores)&diff=5636Use private rooms in game (instead of World Highscores)2010-11-24T11:03:10Z<p>Opofefemucu: </p>
<hr />
<div>=[http://uwujojedeh.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
[[de:Benutzen von privaten Räumen im Spiel|Deutsch]] - [[No:Private_rom|Norsk]] - [[Ca:Private Rooms|Català]] - [[Es:Private Rooms|Español]]<br />
<br />
The current version of Xmoto doesn't allow private [[room]] configuration in a straight forward way; however, it is possible.<br />
Once set up, the highscores of your room will be displayed instead of the world records and the ghost will be the one of the room (i.e. if strategy &quot;ghost is the highscore of the room&quot; is selected in the options).<br />
<br />
Follow these steps to set up Xmoto to use your private room:<br />
<br />
* Edit config.dat (in ~/.xmoto on Unix systems, or in the game installation directory on Windows)<br />
* Do the following modifications:<br />
<br />
Replace<br />
&lt;var name=&quot;WebHighscoresURL&quot; value=&quot;http://xmoto.free.fr/highscores.xml&quot;/&gt;<br />
by<br />
&lt;var name=&quot;WebHighscoresURL&quot; value=&quot;http://xmoto.free.fr/rooms/highscores_X.xml&quot;/&gt;<br />
where X is the number of your room.<br />
<br />
Your room number is displayed next to the room name in the connection tab on the Xmoto website.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Rom&diff=5635No:Rom2010-11-24T11:03:03Z<p>Opofefemucu: </p>
<hr />
<div>=[http://yxylepo.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=<br />
[[Room|English]] - [[de:Raum|Deutsch]] - [[Ca:Sala|Català]] - [[Es:Sala|Español]]<br />
<br />
Et '''rom''' i forbindelse med X-Moto er en privat liste over verdensrekorder, som fungerer akkurat som de offisielle rekordene som ligger på hjemmesidene til X-Moto [http://xmoto.free.fr/index.php?page=all_highscores].</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:De:Dateiformate&diff=5634Talk:De:Dateiformate2010-11-24T11:03:00Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://uwujojedeh.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=<br />
----<br />
=[http://uwujojedeh.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:No:Bidrag&diff=5633Talk:No:Bidrag2010-11-24T11:02:53Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://awuhodynaro.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://awuhodynaro.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:Use_private_rooms_in_game_(instead_of_World_Highscores)&diff=5632Talk:Use private rooms in game (instead of World Highscores)2010-11-24T11:02:51Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://uwujojedeh.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://uwujojedeh.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:No:Rom&diff=5631Talk:No:Rom2010-11-24T11:02:43Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://yxylepo.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://yxylepo.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Kompilere_fra_CVS&diff=5630No:Kompilere fra CVS2010-11-24T11:02:41Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://evicijum.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://evicijum.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Build_from_CVS|English]] - [[Ca:Compilacio CVS|Català]] - [[Es:Compilacion CVS|Español]]<br />
<br />
== CVS ? ==<br />
<br />
X-Moto bruker CVS for utvikling av spillet. Med CVS-filer har du tilgang til helt nye funksjoner og... helt nye bugs.<br />
Bruk dem kun om du vet hva du gjør.<br />
<br />
Du bør vite at filer fra CVS ikke alltid skal kompileres!<br />
<br />
[http://en.wikipedia.org/wiki/Concurrent_Versions_System Wikipedia - CVS]<br />
[http://sourceforge.net/cvs/?group_id=139914 Sourceforge - X-Moto - CVS]<br />
<br />
=== Last ned de nyeste filene med CVS ===<br />
<br />
For første gang, last ned alle filene under &quot;xmoto/&quot;:<br />
<br />
# cvs -z3 -d:pserver:anonymous@xmoto.cvs.sourceforge.net:/cvsroot/xmoto co -P xmoto<br />
<br />
=== Hvordan oppdatere filene ===<br />
<br />
Hvis du allerede har lastet ned CVS-filene, kan du oppdatere dem med denne kommandoen:<br />
<br />
# cvs -z3 -d:pserver:anonymous@xmoto.cvs.sourceforge.net:/cvsroot/xmoto -q update -d<br />
<br />
== Kompileringen ==<br />
<br />
=== Du trenger: ===<br />
<br />
* Nyeste versjon av gcc og g++<br />
* SDL development bibliotek og headere<br />
* OpenGL development bibliotek og headere<br />
* SDL_mixer med headere<br />
* libjpeg med headere<br />
* libpng med headere<br />
* zlib med headere<br />
* libbzip2 med headere<br />
* liblua50 med headere<br />
* liblualib50 med headere<br />
* libode0 med headere<br />
* libcurl3 med headere<br />
* automake &gt;= 1.9<br />
<br />
Dette er de nåværende nødvendighetene. Senere vil du muligens trenge flere ting, ettersom flere funksjoner blir lagt til i spillet.<br />
<br />
=== Ok, jeg er klar! ===<br />
<br />
$ cd xmoto<br />
$ sh ./bootstrap<br />
$ ./configure<br />
$ make<br />
# make install<br />
<br />
Nå kan du starte X-Moto med &quot;&lt;code&gt;./xmoto&lt;/code&gt;&quot;.<br />
Hvis hu hoppet over steget &lt;code&gt;# make install&lt;/code&gt;, vil du kunne kjøre spillet med &lt;code&gt;$ (cd bin; ../xmoto)&lt;/code&gt;.<br />
<br />
Hvis sh ./bootstrap feilet må du endre ./bootstrap-filen manuelt:<br />
aclocal -I config $ACLOCAL_FLAGS\<br />
&amp;&amp; automake --gnu --add-missing --copy \<br />
<br />
så den ser slik ut:<br />
aclocal-1.9 -I config $ACLOCAL_FLAGS\<br />
&amp;&amp; automake-1.9 --gnu --add-missing --copy \<br />
<br />
=== Funker det ikke? ===<br />
<br />
Prøv å finn ut hvor feilen ligger, og se om du finner løsningen selv; filene på CVS er ikke støttet av utviklingsteamet.<br />
<br />
== TODO ==<br />
<br />
Denne siden er for Linux, skriv den for andre OS også.<br />
Kanskje bedre forklaringer?</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:About_good_level_design&diff=5629Ca:About good level design2010-11-24T11:02:29Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ojaperiwiva.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=<br />
----<br />
=[http://ojaperiwiva.co.cc CLICK HERE]=<br />
----<br />
</div><br />
__NOTOC__<br />
[[About good level design|English]] - [[Es:About good level design|Español]] - [[Über gutes Level Design|Deutsch]] - [[Fr:Comment être sûr que mon niveau va être validé ?|Français]]<br />
== Sobre el Disseny dels Nivells ==<br />
Aquest document explica per que certs nivells no son acceptats per a ser afegits al joc.&lt;br /&gt;<br />
Com la quantitat de nivells augmenta ràpidament, mentre que la qualitat dels nivells rebuts normalment no es gaire bona, hem trobat necessari explicar alguns conceptes bàsics sobre el disseny de nivells de qualitat.&lt;br /&gt;<br />
Aquí pots llegir, que es important a l'hora de crear un nivell i per que no tots els nivells son acceptats.<br />
<br />
==Estàndards de Qualitat ==<br />
Això conte aspectes sobre qüestions de disseny gràfic, jugavilitat del nivell i demés - atmosfera.&lt;br /&gt;<br />
Coses que un nivell realment necessita tenir:<br />
<br />
*'''Dissenyar correctament les Superfícies'''. Per exemple: si has d'utilitzar la textura ''dirty'', intenta afegir-hi herba. Si s'ha de semblar mes a una pedra sense herba, deixa la part baixa semblant a la forma de una pedra, no tot quadrat com unes escales.<br />
*Crea una '''bonica atmosfera''' utilitzant no nomes una capa, intenta utilitzar els útils de l'editor per a treballar amb ells; pinta, no els col·loquis nomes. Per exemple: l'estructura d'una cova es veurà millor amb alguna textura de fons, els arbres també poden ser arbustos, els penya-segats poden tenir esquerdes etc.<br />
*Error en la Geometria significa que les cantonades no estan exactament col·locades al seu lloc.<br />
*'''Disseny de nivells versàtil'''. Intenta donar al nivell algun tipus d'argument o intriga. Potser no serà favorable per a la jugavilitat si el nivell comença a tenir dificultats per a tot arreu, tots els jugadors hauran de jugar almenys 1000 cops per poder inclòs sobreviure en la posició d'inici. Intenta crear un argument, que consisteixi en uns passatges suaus i algunes parts de trucs mes difícils, raonablement distribuïdes.<br />
*'''Els Objectes''' han de estar enquadrats en la escena, però no de manera confusa.<br />
*Fent '''Scripting''' pots proveir de idees versàtils al disseny. Descobreix-les!<br />
*Per suposat el nivell a de ser jugable sense contenir errors.<br />
*Limita el '''numero de vèrtex'''! Especialment per crear nivells suaus no utilitzis mes vèrtex dels necessaris per mantenir el nivell jugable. Utilitza el comptador de fotogrames per validar-ho!<br />
*Utilitza '''les maduixes''' i '''les mines''' amb cura! Les maduixes son essencialment per marcar la ruta a seguir pel jugador. El funcionament del nivell es veurà afectat si les mines o les maduixes estan agrupades o col·locades molt aprop.<br />
<br />
== Idees sobre la jugavilitat ==<br />
En el X-Moto hi ha uns quants estils de joc cristal·litzats quan els diferents nivells han anar arribant amb el temps.<br />
<br />
Aquestes categories, donen una idea sobre el disseny del nivell, poden ajudar-te a trobar la manera en la que es jugara en el teu nivell. Aquestes no son categories importants de moment. Intenta no resumir totes les idees en un mateix nivell , el disseny del nivell ha de ser raonable. Per a comprendre que s'entén per categoria, mira't la [[Level collection list|Col·lecció de Nivells]], on els nivells mes votats son assignats a les seves respectives categories.<br />
*'''Traditional:''' Creat amb l'estil de les versions de l'X-Moto anteriors. No es ultra difícil ni esta ple d'Scripting, però si te unes quantes dificultats.<br />
*'''Fun:''' Disseny versàtil, inclòs idees esbojarrades ('bike pipes', passatges des de dalt a abaix, scripting de gravetat etc.)<br />
*'''Tricky:''' Categoria per a jugadors realment avançats, requereix de molt control de la moto, sensacions de acrobàcies, salts i control exacte. Mira't per exemple: Kalas4 - Bottomless.<br />
*'''Arcade:''' Nivells amb dissenys molt suaus que no requereixen de tenir el nas davant de cada rugositat del terreny. L'equilibri de la moto no hauria de tocar-se per a res durant tot el temps. Mira't per exemple: the only smooth, looOooops.<br />
*'''Skate Park:''' Aquests nivells estan exclusivament dissenyats per a fer trucs i tombarelles. Una certa quantitat de punts s'han de aconseguir per a passar el nivell. L'[[Ca:Skate Park Mod|Skate Park Mod]] t'ajuda a crear aquest estil.<br />
<br />
== Preguntat-ho! ==<br />
Abans de començar el nivell, hauries de preguntar-te algunes qüestions importants:<br />
*Que **** es tant interessant del meu nivell que el fa especial envers els 3000 que ja te el joc?<br />
*Es el meu nivell realment interessant?<br />
*M'agrada el meu propi nivell? Vull dir, m'agrada molt, molt?<br />
*Inclòs demà encara m'agradara?<br />
*S'ajusta als estàndards de qualitat que s'especifique amunt?<br />
*L'he creat simplement per fer el meu propi nivell o per ajudar a perfeccionar la jugavilitat del joc? Realment vull que els altres juguin i votin el meu nivell?<br />
<br />
== Paperera ==<br />
Si un nivell es descartat per l'equip de validació, aquí esta el motiu.<br />
Probablement la majoria dels problemes es poden resumir amb poques paraules amb:<br />
*'''R1:''' Superfícies sense textura, nivell baix de disseny, jugavilitat dolenta.<br />
*'''R2:''' La geometria falla.<br />
*'''R3:''' La jugavilitat del joc depèn mes de l'atzar que del control, lo que provoca una emoció frustrant.<br />
<br />
Si un nivell es descartat per alguna raó, nosaltres t'ho farem saber per un correu electrònic amb una notificació de l'errada i esperem amb ganes la correcció.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Kompilere_i_Unix_(som_GNU/Linux)&diff=5627No:Kompilere i Unix (som GNU/Linux)2010-11-24T11:02:27Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://yxylepo.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=<br />
----<br />
=[http://yxylepo.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Build_for_Unix_%28like_GNU/Linux%29|English]] - [[de:Erstellen für Unix (wie GNU/Linux)|Deutsch]] - [[Ca:Compilacio Unix|Català]] - [[Es:Compilacion Unix|Español]]<br />
<br />
= Vanlig fremgangsmåte =<br />
== Få tak i kildekodene ==<br />
Du finner kildekodene på [http://xmoto.free.fr/index.php?page=news http://xmoto.free.fr/index.php?page=news].<br />
<br />
== Ekstrakter filene ==<br />
tar zxf xmoto-x.y.z-src.tar.gz<br />
cd xmoto-x.y.z<br />
<br />
== Kompiler ==<br />
./configure [--prefix=/path_to_install]<br />
make<br />
<br />
== Installer ==<br />
make install<br />
<br />
= Vanlige feil =<br />
== Har du installert en kompilerer? ==<br />
== Er du sikker på at du har alle de nødvendige bibliotekene? ==</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Private_rom&diff=5626No:Private rom2010-11-24T11:02:26Z<p>Opofefemucu: </p>
<hr />
<div>=[http://egebyromedu.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=<br />
[[Use_private_rooms_in_game_%28instead_of_World_Highscores%29|English]] - [[Ca:Private Rooms|Català]] - [[de:Benutzen von privaten Räumen im Spiel|Deutsch]] - [[Es:Private Rooms|Español]]<br />
<br />
Den nåværende versjonen av Xmoto har ingen enkel konfigurasjon av private [[no:Rom|rom]], men det er likevel mulig å få det til.<br />
Etter at dette er satt opp, vil rekordene i ditt rom vises istedenfor de offisielle verdensrekordene, og skyggen (som viser hvordan innehaveren av rekorden kjørte) vil være fra ditt private rom (dette gjelder kun hvis &quot;ghost is the highscore of the room&quot; er valgt i innstillingene).<br />
<br />
Først må du lage ditt eget rom. For å gjøre det, gå inn på denne siden [http://xmoto.free.fr/index.php?page=rooms] og trykk på &quot;Create a new private room&quot;. For å finne ut hvilket nummer rommet ditt har, trykk på &quot;Choose a room&quot; på siden. Du vil se nummeret ved siden av navnet på rommet.<br />
<br />
Følg disse stegene for å få X-Moto til å hente rekordene fra ditt private rom:<br />
<br />
* Åpne config.dat, som ligger i ~/.xmoto på Unix-systemer, eller i installasjonsmappen til X-Moto i Windows.<br />
* Gjør disse endringene:<br />
<br />
Erstatt<br />
&lt;var name=&quot;WebHighscoresURL&quot; value=&quot;http://xmoto.free.fr/highscores.xml&quot;/&gt;<br />
med<br />
&lt;var name=&quot;WebHighscoresURL&quot; value=&quot;http://xmoto.free.fr/rooms/highscores_X.xml&quot;/&gt;<br />
hvor X er nummeret på ditt rom.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Es:About_good_level_design&diff=5625Es:About good level design2010-11-24T11:02:24Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://evicijum.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=<br />
----<br />
=[http://evicijum.co.cc CLICK HERE]=<br />
----<br />
</div><br />
__NOTOC__<br />
[[About good level design|English]] - [[Ca:About good level design|Català]] - [[Über gutes Level Design|Deutsch]] - [[Fr:Comment être sûr que mon niveau va être validé ?|Français]]<br />
== Sobre el Diseño de los Niveles ==<br />
Este documento explica porque ciertos niveles no son aceptados para ser añadidos al juego.&lt;br /&gt;<br />
Como la cantidad de niveles aumenta rápidamente, mientras que la cualidad de los niveles recibidos normalmente no es muy buena, hemos encontrado necesario explicar algunos conceptos básicos sobre el diseño de niveles de calidad.&lt;br /&gt;<br />
Aquí puedes leer, que es importante a la hora de crear un nivel y porque no todo los niveles son aceptados.<br />
<br />
==Estándares de Calidad ==<br />
Esto contiene aspectos sobre cuestiones de diseño gráfico, jugavilidad del nivel y demás -atmósfera.&lt;br /&gt;<br />
Cosas que un nivel realmente necesita tener:<br />
<br />
*'''Diseñar correctamente las Superficies'''. Por ejemplo: si has de utilizar la textura ''dirty'', intenta añadir yerba. Si se ha de parecer mas a una piedra sin yerba, deja la parte baja parecida a la forma de una piedra, no todo cuadrado como unas escaleras.<br />
*Crea una '''bonita atmósfera''' utilizando no solo una capa, intenta utilizar los útiles del editor para trabajar con ellos; pinta, no los coloques solamente. Por ejemplo: la estructura de una cueva se verá mejor con alguna textura de fondo, los arboles también pueden ser arbustos, los acantilados pueden tener grietas etc.<br />
*Error en la Geometría significa que las esquinas no están exactamente colocadas en su sitio.<br />
*'''Diseño de niveles versátil'''. Intenta dar al nivel algún tipo de argumento o intriga. Puede no será favorable para la jugavilidad si el nivel empieza a tener dificultades por todos lados, todos los jugadores deberán jugar al menos 1000 veces para poder incluso sobrevivir en la posición de inicio. Intenta crear un argumento, que consista en unos pasajes suaves y algunas partes de trucos mes difíciles, razonablemente distribuidas.<br />
*'''Los Objetos''' han de estar encuadrados en la escena, pero no de manera confusa.<br />
*Haciendo '''Scripting''' puedes proveer de ideas versátiles al diseño. Descubrelas!<br />
*Por supuesto el nivel a de ser jugable sin contener errores.<br />
*Limita el '''numero de vértices'''! Especialmente para crear niveles suaves no utilices mas vértices de los necesarios para mantener el nivel jugable. Utiliza el contador de fotogramas para validarlo!<br />
*Utiliza '''las fresas''' y '''las minas''' con cuidado! Las fresas son esencialmente para marcar la ruta a seguir por el jugador. El funcionamiento del nivel se verá afectado si las mines o las fresas están agrupadas o colocadas demasiado cercanas.<br />
<br />
== Ideas sobre la jugabilidad ==<br />
En el X-Moto hay unos cuantos estilos de juego cristalizados cuando los diferentes niveles han ido llegando con el tiempo.<br />
<br />
Estas categorías, dan una idea sobre el diseño del nivel, pueden ayudarte a encontrar la manera en la que se jugará en tu nivel. Estas no son categorías importantes de momento. Intenta no resumir todas las ideas en un mismo nivel , el diseño del nivel ha de ser razonable. Para comprender que se entiende por categoría, mira te la [[Level collection list|Col·lección de Niveles]], donde los niveles mas votados son asignados en sus respectivas categorías.<br />
*'''Traditional:''' Creado con el estilo de las versiones del X-Moto anteriores. No es ultra difícil o a rebosar de Scripting, pero si unas cuantas dificultades.<br />
*'''Fun:''' Diseño versátil, incluso ideas locas ('bike pipes', pasajes desde arriba hacia abajo, scripting de gravedad etc.)<br />
*'''Tricky:''' Categoría para jugadores realmente avanzados, requiere de mucho control de la moto, sensaciones de acrobacias, saltos y control exacto. Mira te por ejemplo: Kalas4 - Bottomless.<br />
*'''Arcade:''' Niveles con diseños muy suaves que no requieren tener la nariz pegada encima de cada rugosidad del terreno. El equilibrio de la moto no se tendría que tocar para nada durante todo el tiempo. Mírate por ejemplo: the only smooth, looOooops.<br />
*'''Skate Park:''' Estos niveles están exclusivamente diseñados para hacer trucos y volteretas. Una cierta cantidad de puntos se ha de conseguir para pasar el nivel. El [[Es:Skate Park Mod|Skate Park Mod]] te ayudara a crear este estilo.<br />
<br />
== Pregúntatelo! ==<br />
Antes de empezar el nivel, tendrías que preguntarte algunas cuestiones importantes:<br />
*Que **** es tan interesante de mi nivel que lo hace especial de los 3000 que ya tiene el juego?<br />
*Es mi nivel realmente interesante?<br />
*Me gusta mi propio nivel? Quiero decir, me gusta mucho, mucho?<br />
*Incluso mañana aun me seguirá gustando?<br />
*Se ajusta a los estándares de calidad que se especifican arriba?<br />
*Lo he creado simplemente para hacer mi propio nivel o para ayudar a perfeccionar la jugabilidad del juego? Realmente quiero que otros jueguen y voten mi nivel?<br />
<br />
== Papelera ==<br />
Si un nivel es descartado por el equipo de validación, aquí esta el motivo.<br />
Probablemente la mayoría de los problemas se pueden resumir en pocas palabras con:<br />
*'''R1:''' Superficies sin textura, nivel bajo de diseño, jugabilidad mala.<br />
*'''R2:''' La geometría falla.<br />
*'''R3:''' La jugabilidad del juego depende mas del azar que del control, lo que provoca una emoción frustrante.<br />
<br />
Si un nivel es descartado por alguna razón, nosotros te lo haremos saber por un correo electrónico con una notificación del error y esperamos con ganas la corrección.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Hvordan_validere_en_ny_verdensrekord&diff=5624No:Hvordan validere en ny verdensrekord2010-11-24T11:02:20Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://axufizyfe.co.cc This Page Is Currently Under Construction And Will Be Available Shortly, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://axufizyfe.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[How_to_validate_a_highscore|English]] - [[Ca:Valida un record|Català]] - [[Es:Validar un record|Español]]<br />
<br />
=== Regler for hvordan validere en ny verdensrekord ===<br />
* En verdensrekord må være skjekket av en administrator.<br />
* Hvis det blir oppdaget juks (f.eks. ved modifikasjon av koden til spillet), vil verdensrekorden bli fjernet.<br />
* Det er forbudt å kjøre gjennom en &quot;wrecker&quot; (siden det ikke vil være mulig i fremtiden).<br />
* Vent i 12 timer hvis banen er ny (bortsett fra hvis det er mange verdensrekorder for denne banen).<br />
* Start med å validere den beste rekorden på banen (for å unngå at n (Conqueror cup) øker for fort i starten).</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Kodedokumentasjon&diff=5623No:Kodedokumentasjon2010-11-24T11:02:07Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ezapazuhem.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://ezapazuhem.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Code documentation|English]] - [[De:Dokumentation des Quelltextes|Deutsch]] - [[Ca:Code documentation|Català]] - [[Es:Code documentation|Español]]<br />
<br />
== Fysikken i spillet ==<br />
<br />
[[Image:Rider.png]]<br />
<br />
Kjøreren består av 6 punkter, 5 linjer og 1 sirkel.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:No:Private_rom&diff=5622Talk:No:Private rom2010-11-24T11:02:05Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://egebyromedu.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://egebyromedu.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Main_Page&diff=5621No:Main Page2010-11-24T11:02:04Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://atosaca.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://atosaca.co.cc CLICK HERE]=<br />
----<br />
</div><br />
__NOTOC__<br />
<br />
[[Main_Page|English]] - [[de:Main_Page|Deutsch]] - [[ca:Main_Page|Català]] - [[es:Main_Page|Español]] - [[fr:Main_Page|Français]] - [[pt:Main_Page|Portuguese]]<br />
<br />
= Important =<br />
This page is translating to Norwegian. It is not finished yet. If you want to go to a finished version of the wiki, go to the [[Main_Page|English site]].<br />
<br />
Hvis du ønsker å hjelpe til med å oversette siden er det bare å sette i gang. Alle bidrag mottas med takk, enten det er små ting som retting på skrivefeil eller større ting som oversetting av hele kapitler.<br />
<br />
== Informasjon ==<br />
* [[no:Ofte Stilte Spørsmål|Ofte Stilte Spørsmål]]<br />
<br />
== Tips == <br />
* [[no:Private_rom|Hvordan bruke private rom i spillet (istedet for verdensrekordene)]]<br />
* [[no:Hvordan_bruke_joystick|Hvordan bruke joystick til å styre spillet]]<br />
<br />
== Level editor ==<br />
* [[no:Hvordan lage baner ved hjelp av Inkscape|Hvordan lage baner ved hjelp av Inkscape]]<br />
* [[no:Hvordan lage en bane i spillets Level editor|Hvordan lage en bane i xmoto-edit]]<br />
* [[no:Hvordan lage kodede baner|Hvordan lage kodede baner]]<br />
* [[no:Lage et tema|Lage et tema/legge til nye teksturer]]<br />
<br />
== Kompilere XMoto ==<br />
* [[no:Kompilere i Unix (som GNU/Linux)|Kompilere i Unix (som GNU/Linux)]]<br />
* [[no:Kompilere i Windows|Kompilere i Windows]]<br />
* [[no:Kompilere fra CVS|Kompilere fra CVS]]<br />
<br />
== Administrasjon ==<br />
* [[no:Hvordan validere en ny verdensrekord|Hvordan validere en ny verdensrekord]]<br />
* [[no:Hvordan validere en ny bane|Hvordan validere en ny bane]]<br />
<br />
== Utvikling ==<br />
* [[Wishlist|Ønskelisten (engelsk)]]<br />
* [[no:Kodedokumentasjon|Kodedokumentasjon]]<br />
* [[no:Bidrag|Hvordan komme med bidrag til X-Moto]]<br />
* [[no:Filformater|Filformater]]<br />
* [[no:Tilgang til nettstedets kildekoder|Tilgang til nettstedets kildekoder]]</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:Inkscape-0.2.0&diff=5620Ca:Inkscape-0.2.02010-11-24T11:02:00Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://asuxoqonyb.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://asuxoqonyb.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Inkscape-0.2.0|English]] - [[Es:Inkscape-0.2.0|Español]]<br />
<br />
----<br />
= Documentació per la versió 0.2.0 de svg2lvl=<br />
----<br />
<br />
= Programari Requerit =<br />
<br />
* [http://www.inkscape.org/ Inkscape] (&gt;= 0.44)<br />
* [http://www.python.org/ Python] (&gt;= 2.4) (en Windows no es necessari, perquè l'Inkscape ja l'inclou)<br />
* Svg2lvl converter i l'extensió de l'Inkscape versió 0.2.0<br />
**versió actual disponible des de [http://xmoto.free.fr/ http://xmoto.tuxfamily.fr/] o directament des de [http://prdownloads.sourceforge.net/xmoto/svg2lvl-0.2.0.tar.gz?download http://prdownloads.sourceforge.net/xmoto/svg2lvl-0.2.0.tar.gz?download]<br />
<br />
<br />
= Primer de tot =<br />
<br />
Has de instal·lar l'extensió svg2lvl del inkscape.<br />
<br />
== GNU/Linux ==<br />
<br />
Suposarem que has descarregat l'arxiu svg2lvl-0.2.0.tar.gz en ~/download/<br />
<br />
$ cd ~/download/<br />
$ tar zxvf svg2lvl-*.tar.gz<br />
$ cd svg2lvl-*<br />
$ mkdir -p ~/.inkscape/extensions/<br />
$ cp *.inx *.py ~/.inkscape/extensions/<br />
$ ln -s /usr/share/inkscape/extensions/bezmisc.py ~/.inkscape/extensions/bezmisc.py<br />
$ ln -s /usr/share/inkscape/extensions/inkex.py ~/.inkscape/extensions/inkex.py<br />
<br />
Aleshores, ja pots arrencar Inkscape.<br />
<br />
== Windows ==<br />
<br />
Descomprimeix l'arxiu svg2lvl-0.2.0.tar.gz que has descarregat amb el teu programa de compressió preferit (unrar, 7-zip, ...).<br />
Ves a share/extensions/ dins del directori d'instal·lació de l'Inkscape. Copia dins d'aquest directori els arxius .py i .inx del paquet.<br />
<br />
Ara, arrenca inkscape.<br />
<br />
== Comprova si l'instal·lació funciona correctament==<br />
<br />
*Comprova que en el menú 'Effects' hi ha l'entrada 'X-moto'<br />
*Fes 'Save as...' (Shift-Ctrl-S), i comprova que pots seleccionar el format 'X-Moto Level (*.lvl)'.<br />
<br />
Si la instal·lació no ha sigut satisfactòria, si us plau ves al IRC per a que puguem ajudar-te a veure perquè ha fallat.<br />
<br />
= Dibuixa un nivell =<br />
<br />
Fixa't que des de X-Moto 0.2.4, has de donar-li a F5 en el menu principal<br />
quan hagis modificat el directori de nivells (per exemple, si estàs creant nivells nous)<br />
<br />
Obre Inkscape.<br />
<br />
[[Image:inkscape-empty.png]]<br />
<br />
----<br />
<br />
Ja estàs preparat per a dibuixar un nivell utilitzant Inskcape. Mira't els howto's del Inskcape del menú Ajuda.<br />
<br />
[[Image:inskcape-drawn.png]]<br />
<br />
= Posa propietats als Objectes =<br />
<br />
Un cop tinguis el nivell dibuixat, has de posar-hi les propietats de les entitats, blocs i figures.<br />
<br />
Hi ha dues maneres de fer-ho. Manualment o utilitzant inkscape ''effects''.<br />
<br />
==Utilitzant els efectes de l'Inkscape==<br />
La manera més fàcil de canviar propietats d'objectes.<br />
<br />
Selecciona els objectes en els quals vols canviar les propietats. Ves al menú ''Effect'' i escull el submenu ''X-moto''. I tindràs mes submenus per transformar els teus objectes en els tipus desitjats (Zones, Blocs, Entitats).<br />
<br />
Depenen del tipus d'objecte, el color canvia. Els colors son molt lleixos.. però si tens alguna idea sobre algun color que pugui quedar millor, fes-ho saber. Afegint una textura de vorera a un bloc, afegeix un horrible color verd a la vora del bloc en l'Inkscape.<br />
<br />
(Informació: Nomes s'actualitza l'etiqueta de l'objecte (Mira't la següent secció per a més detalls).)<br />
<br />
----<br />
<br />
Per exemple, si volem canviar el cercle en un bloc dinàmic utilitzant la textura '''Texture1''' (es un exemple, realment no existeix). (Fixa't que pots seleccionar mes d'un objecte a l'hora). Primer, seleccionem l'entrada de la dreta del submenu ''X-moto''.<br />
<br />
[[Image:Effect-inkscape.png]]<br />
<br />
Aleshores posarem el nom del textura<br />
<br />
[[Image:Effect-param.png]]<br />
<br />
I aquí esta el resultat. Per veure'l, fes click dret en un objecte i selecciona ''object properties''.<br />
<br />
[[Image:Effect-result.png]]<br />
<br />
==Edita'l Manualment==<br />
Un altre manera de canviar les propietats.<br />
<br />
Selecciona un objecte, clic dret i selecciona 'object properties'.<br />
<br />
[[Image:inskcape-properties.png]]<br />
<br />
----<br />
<br />
Les propietats es poden dins la caixa 'label'. Es separen amb un '|'. Si no hi han propietats especificades, l'objecte es col·loca com un bloc amb la textura per defecte.<br />
També pots emplenar la caixa 'id', es útil si escrius un script amb codi lua per al nivell, perquè així tens els noms dels blocs, les zones, etc.. per fer-los servir en el teu script.<br />
<br />
Atenció :les propietats son sensibles a les majúscules ! Escriu-les exactament com us mostrem:<br />
<br />
===Propietats de Blocs===<br />
* background<br />
* dynamic<br />
* usetexture=texture_name<br />
* edgeTexture=edge_texture_name<br />
* physics:grip=grip_value<br />
<br />
====Exemples====<br />
Un Bloc de fons (es un bloc en el fons amb el qual el jugador no pot interactuar) utilitzant la textura Dark Dirt:<br />
<br />
background|usetexture=DarkDirt<br />
<br />
Un Bloc dinàmic utilitzant la textura per defecte:<br />
<br />
dynamic<br />
<br />
Un Bloc utilitzant la textura per defecte:<br />
<br />
(no tens res per posar-hi, deixa'l buit (o deixa lo que inkscape posi))<br />
<br />
Un Bloc utilitzant la textura Dark Dirt:<br />
<br />
usetexture=DarkDirt<br />
<br />
Un Bloc dinàmic amb herba utilitzant la textura Bricks<br />
<br />
usetexture=Bricks|dynamic|edgeTexture=Grass<br />
<br />
Un bloc que utilitza la textura Dark Dirt i que canvia la fricció per simular gel (el valor de grip pot estar entre [1.0 - 50.0], per defecte es 20.0. Si es mes petit, el bloc tindrà menys fricció.<br />
<br />
usetexture=DarkDirt|physics:grip=1.0<br />
<br />
===Propietats de les Entitats===<br />
* typeid=[PlayerStart|EndOfLevel|Strawberry|Wrecker|ParticleSource|Sprite]<br />
* size=float_number (the entity colision radius)<br />
* param_name=param_value available params name are (there's more of them):<br />
**z (for Sprite)<br />
**name (for Sprite)<br />
**style (for every entity)<br />
**type (for ParticleSource)<br />
<br />
====Exemples====<br />
<br />
El codi d'una partícula fumejant:<br />
<br />
typeid=ParticleSource|type=Smoke<br />
<br />
Una maduixa:<br />
<br />
typeid=Strawberry<br />
<br />
Una figura d'un arbre posat darrera dels blocs davanters:<br />
<br />
typeid=Sprite|name=Tree1|z=-1<br />
<br />
L'inici del jugador:<br />
<br />
typeid=PlayerStart<br />
<br />
El final del nivell:<br />
<br />
typeid=EndOfLevel<br />
<br />
===Propietats de Zones===<br />
*typeid=Zone<br />
<br />
;l'únic possible valor per a una zona: typeid=Zone<br />
<br />
= Genera l'arxiu del Nivell =<br />
<br />
Atenció: Guarda també el teu nivell en format .svg<br />
.lvl es un format amb pèrdua, elimina informació relacionada amb les corbes bezier,<br />
perquè son reemplaçades per molts vèrtex.<br />
A més Inkscape no pot tornar a obrir el arxius .lvl (si vols, pots escriure i enviar-nos un patch per corregir això).<br />
<br />
==Arrencar el Convertidor==<br />
Per guardar el teu nivell dins d'un arxiu amb format .lvl, utilitza el menú ''File -&gt; Save as...'' (o fes Shift-Ctrl-S) i escull l'extensió ''X-Moto Level'', posa nom al arxiu del nivell i prem ''Save''.<br />
<br />
[[Image:Save-as.png]]<br />
<br />
Una nova finestra emergirà, has de posar-hi:<br />
<br />
* level width : l'amplada del nivell en xmoto unit. Prova diferents fins que trobis la correcta<br />
* smoothitude : quant mes alt es el valor, mes suau serà el nivell. Però no afegeixis molts vèrtex, perquè l'xmoto no fa l'escala molt be si el nivell es molt gran amb milers de vèrtex... i anirà una mica mes lent...<br />
* lua script : la ruta absoluta pel teu script lua (deixa'l buit si no tens cap)<br />
* level id : l'identificador del nivell (cada nivell ha de tenir un diferent)<br />
* level name : el nom del nivell en la llista de nivells<br />
* author : el teu nom o sobrenom<br />
* description : petita descripció del nivell<br />
* sky : el cel que vols utilitzar en el nivell<br />
* rversion: la versió mínima necessitada per a jugar aquest nivell (per defecte 0.2.0).<br />
<br />
L'rversion depèn de les funcions de l'script lua utilitza. (mira't [[Ca:Scripted levels|Com crear un nivell dinàmic fent servir el codi Lua ]] per a una llista de les funcions lua i la versió de l'X-Moto on estan disponibles)<br />
<br />
Aleshores l'arxiu del nivell es guarda en el directori escollit en la finestra de ''Save as...''.<br />
<br />
Important: Hi ha un bug en l'Inkscape. El primer cop que guardes un nivell amb format .lvl, has de posar alguna cosa en la caixa de ''lua script'' (per defecte: None). Si no ho fas, l'Inkscape es tancarà...<br />
[[Image:Script-params.png]]<br />
<br />
Posa l'arxiu lvl que has generat en el directori Levels del xmoto, i ja hi pots jugar (fixa't que l'herba esta nomes en la part alta del bloc):<br />
<br />
[[Image:Sample-level-editor.png|El nivell en l'editor]]<br />
<br />
[[Image:sample-level.jpg|thumb|El nivell en l'X-Moto]]<br />
<br />
L'script afegira l'arxiu historial svg2lvl.log en el teu directori home.<br />
<br />
== Arxius utilitzats en aquesta guia ==<br />
*svg: [[Media:sample.svg]]<br />
*lvl: [[Media:sample.lvl]]</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=No:Kompilere_i_Windows&diff=5619No:Kompilere i Windows2010-11-24T11:01:43Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ynodyky.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://ynodyky.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Build_for_Windows|English]] - [[de:Erstellen für Windows|Deutsch]] - [[Ca:Compilacio Windows|Català]] - [[Es:Compilacion Windows|Español]]<br />
<br />
For øyeblikket er en versjon av Visual Studio .NET 2003 (eller nyere) nødvendig for å kompilere X-Moto i Windows, selv om det også skal være mulig å få det til med andre verktøy som Dev-C++ også, hvis du virkelig vet hva du gjør.<br />
<br />
Hvis du har Visual Studio .NET 2003, last ned den nyeste xmoto-VERSION-win32-src.zip fra SourceForge.net-siden [http://sourceforge.net/project/showfiles.php?group_id=139914], og pakk ut zip-filen et sted. I mappen vcnet/ vil du finne filen xmoto.sln sammen med de nødvendige bibliotekene; åpne filen i Visual Studio .NET og trykk ''Build'' for å kompilere alt. Når det er gjort, vil alle programfilene være lagret i mappen bin/, hvor du også vil finne alle datafilene.<br />
<br />
==Debug Builds==<br />
En av de to tilgjengelige build-typene er debug build. Denne vil produsere programfiler med navn som ender på ''d''; bin/xmotod.exe og bin/xmoto-editd.exe. Disse vil vanligvis kjøre gangke sakte, men de inkluderer debug-informasjon og andre kjekke ting. Du vil også merke at de skjekker hvor mye minne spillet bruker. Når spillet eller editoren avsluttes, vil du finne en fil kalt memleaks.log, som forteller om programmet har lekket minne eller ikke.<br />
<br />
==Release Builds==<br />
Denne genererer da altså ''ikke'' programfiler som slutter på ''d''. Disse filene er de samme som de som blir offisielt lansert.<br />
<br />
Hvis du ønsker å lage en installasjonsfil for spillet, er det en fil kalt xmoto.nsi i mappen bin/ som er et script for NSIS [http://nsis.sourceforge.net/Main_Page]. Husk at du er nødt til å lage DOS-kopier (\r\n linje endelser) av noen av tekstfilene i roten først. Les error-meldingene for detaljer :).</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:Scripted_levels&diff=5618Ca:Scripted levels2010-11-24T10:59:44Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ihyveqo.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://ihyveqo.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[Scripted levels|English]] - [[Es:Scripted levels|Español]]<br />
<br />
= Introducció =<br />
Els Scripts fan que un nivell esdevingui dinàmic. Pots canviar algunes propietats físiques, moure objectes, modificar la logica del joc, etc. Un script esta fet amb el llenguatge Lua i es pot afegir al arxiu del nivell.<br />
<br />
La documentació sobre el llenguatge Lua la pots trobar aquí:<br />
http://www.lua.org/manual/5.1/<br />
<br />
Per fer un script, has de saber almenys una mica sobre l'arxiu de nivell. Es un arxiu XML. Inclou propietats com el nom del nivell, la seva descripció ... A mès, inclou les definicions dels blocs i les figures. Un bloc es composa per vèrtex que son punts units per formar un polígon.<br />
<br />
Per presentar la forma d'escriure un script, lo següent es un nivell basic que utilitzarem d'exemple:<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />
&lt;level id=&quot;tutscript&quot;&gt;<br />
&lt;info&gt;<br />
&lt;name&gt;tutscript&lt;/name&gt;<br />
&lt;description&gt;&lt;/description&gt;<br />
&lt;author&gt;&lt;/author&gt;<br />
&lt;date&gt;&lt;/date&gt;<br />
&lt;sky&gt;sky1&lt;/sky&gt;<br />
&lt;/info&gt;<br />
&lt;script&gt;<br />
&lt;/script&gt;<br />
&lt;limits left=&quot;0&quot; right=&quot;50&quot; top=&quot;30&quot; bottom=&quot;0&quot;/&gt;<br />
&lt;block id=&quot;Block0&quot;&gt;<br />
&lt;position x=&quot;0&quot; y=&quot;0&quot;/&gt;<br />
&lt;usetexture id=&quot;default&quot;/&gt;<br />
&lt;vertex x=&quot;5&quot; y=&quot;5&quot;/&gt;<br />
&lt;vertex x=&quot;5&quot; y=&quot;10&quot;/&gt;<br />
&lt;vertex x=&quot;10&quot; y=&quot;10&quot;/&gt;<br />
&lt;vertex x=&quot;10&quot; y=&quot;5&quot;/&gt;<br />
&lt;/block&gt;<br />
&lt;entity id=&quot;MyPlayerStart0&quot; typeid=&quot;PlayerStart&quot;&gt;<br />
&lt;size r=&quot;0.4&quot;/&gt;<br />
&lt;position x=&quot;7.5&quot; y=&quot;10&quot;/&gt;<br />
&lt;/entity&gt;<br />
&lt;entity id=&quot;Strawberry0&quot; typeid=&quot;Strawberry&quot;&gt;<br />
&lt;size r=&quot;0.4&quot;/&gt;<br />
&lt;position x=&quot;20&quot; y=&quot;0.5&quot;/&gt;<br />
&lt;/entity&gt;<br />
&lt;entity id=&quot;SnowMan0&quot; typeid=&quot;Sprite&quot;&gt;<br />
&lt;param name=&quot;name&quot; value=&quot;SnowMan&quot;/&gt;<br />
&lt;position x=&quot;19&quot; y=&quot;0.2&quot;/&gt;<br />
&lt;param name=&quot;z&quot; value=&quot;-1&quot;/&gt;<br />
&lt;/entity&gt;<br />
&lt;zone id=&quot;Zone0&quot;&gt;<br />
&lt;box left=&quot;40&quot; right=&quot;50&quot; top=&quot;5&quot; bottom=&quot;0&quot;/&gt;<br />
&lt;/zone&gt;<br />
&lt;/level&gt;<br />
<br />
Aquest nivell es pot fer fàcilment amb l'xmoto-edit. Inclou un bloc anomenat Block0 que es un quadrat, una maduixa anomenada Strawberry0 i una zona anomenada Zone0. Una zona es una part invisible del nivell que farà que s'executin accions quan el jugador estigui a dins.<br />
<br />
Algunes funcions requereixen una mínima versió de l'xmoto per a funcionar. Si fas servir alguna d'aquestes funcions, si us plau, posa aquesta informació en l'arxiu del nivell. Per exemple, per fer que el teu nivell requereixi l'X-Moto 0.2.0, afegeix aquesta linea al codi del teu nivell:<br />
&lt;level id=&quot;tutscript&quot; rversion=&quot;0.2.0&quot;&gt;<br />
<br />
[[Image:Scripted_level.jpg]]<br />
<br />
Tot el codi de l'script es llenguatge Lua. Pots trobar la sintaxis aquí. De totes maneres, si esculls incloure l'script dins d'un arxiu XML, els símbols &lt; i &gt; s'han de reemplaçar amb &amp;amp;lt; i &amp;amp;gt;. El codi de l'script es pot afegir entre &lt;script&gt; i &lt;/script&gt; dins de l'arxiu del nivell.<br />
<br />
= Funcions anomenades per l'X-Moto =<br />
<br />
== OnLoad() ==<br />
=== Explicació ===<br />
Aquest funció es anomenada un cop a l'inici del nivell. Has de retornar true si res dolent succeeix.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra un missatge a l'inici del nivell.<br />
<br />
function OnLoad()<br />
Game.Message(&quot;This level is scripted&quot;)<br />
return true<br />
end<br />
<br />
== Tick() ==<br />
=== Explicació ===<br />
Funció nomenada un cop en cada centèsima de segon.<br />
Has de retornar true si res dolen succeeix<br />
<br />
=== Exemple d'Script ===<br />
Aquest exemple s'iniciara amb gravetat 0 ; desprès, anirà incrementant-se amb el temps. Com que la gravetat de la terra es 9.81, no hi haurà gravetat terrestre fins assolir els 9.81 segons. Fixa't que en l'xmoto la gravetat vertical s'ha de multiplicar per -1 perquè les coordenades de la pantalla estan invertides.<br />
<br />
function Tick()<br />
if Game.GetTime() &lt; 9.81<br />
then<br />
Game.SetGravity(0, Game.GetTime() * -1)<br />
end<br />
return true<br />
end<br />
<br />
function Load()<br />
Game.SetGravity(0, 0)<br />
return true<br />
end<br />
<br />
== Entity.Touch() ==<br />
=== Explicació ===<br />
Aquesta funció es anomenada quan una figura (una maduixa per exemple) es tocada. La figura s'ha de declarar en l'script. Fixa't que el paràmetre &lt;size r&gt; permet escollir el marge de la distancia que es considera per que una figura sigui tocada.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra un missatge quan es toca una maduixa.<br />
<br />
Strawberry0 = {}<br />
<br />
function Strawberry0.Touch()<br />
Game.Message(&quot;Nice strawberry !&quot;)<br />
end<br />
<br />
== Zone.OnEnter() ==<br />
=== Explicació ===<br />
Aquesta funció es anomenada quan el jugador entra en una zona.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra un missatge quan el jugador entra en la zona anomenada Zone0.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.Message(&quot;Entering in the zone&quot;)<br />
end<br />
<br />
== Zone.OnLeave() ==<br />
=== Explicació ===<br />
Aquesta funció es anomenada quan el jugador surt d'una zona.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra un missatge quan el jugador surt de la zona anomenada Zone0.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnLeave()<br />
Game.Message(&quot;Leaving the zone&quot;)<br />
end<br />
<br />
== OnSomersault(bClockWise) ==<br />
[require Xmoto &gt;= 0.2.1]<br />
<br />
=== Explicació ===<br />
Aquesta funció es anomenada cada cop que el jugador fa una tombarella. Si bClockWise es 1 la tombarella segueix les agulles del rellotge, si es 0 es al reves.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra un missatge quan el jugador fa una tombarella.<br />
<br />
function OnSomersault(bClockWise)<br />
if(bClockWise == 1)<br />
then<br />
Game.Message(&quot;ClockWise Somersault&quot;)<br />
else<br />
Game.Message(&quot;CounterClockWise Somersault&quot;)<br />
end<br />
end<br />
<br />
== OnWheel1Touchs(status), OnWheel2Touchs(status) ==<br />
[require Xmoto &gt;= 0.2.1]<br />
<br />
=== Explicació ===<br />
Aquesta funció es anomenada cada cop que la roda 1 toca el terra o s'atura per tocar-lo. (l'estatus es 1 si la roda no estava tocant el terra i ara si el toca, i 0 per les demès situacions)<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra la nova màxima durada d'un salt cada cop que es fa un de nou.<br />
<br />
max_jump_time = 1.0 -- start at 1 to not count smaller jumps<br />
jump_begin = 0.0<br />
touch_1 = false<br />
touch_2 = false<br />
<br />
function OnWheel1Touchs(bStatus)<br />
if(bStatus == 1)<br />
then<br />
updateMax()<br />
touch_1 = true<br />
else<br />
touch_1 = false<br />
jump_begin = Game.GetTime()<br />
end<br />
end<br />
<br />
function OnWheel2Touchs(bStatus)<br />
if(bStatus == 1)<br />
then<br />
updateMax()<br />
touch_2 = true<br />
else<br />
touch_2 = false<br />
jump_begin = Game.GetTime()<br />
end<br />
end<br />
<br />
function updateMax()<br />
if(touch_1 == false and touch_2 == false)<br />
then<br />
if(Game.GetTime() - jump_begin &gt; max_jump_time)<br />
then<br />
max_jump_time = Game.GetTime() - jump_begin<br />
Game.Message(&quot;New high jump: &quot;..max_jump_time)<br />
end<br />
end<br />
end<br />
<br />
= Funcions de l'X-Moto =<br />
<br />
== GetTime() ==<br />
=== Explicació ===<br />
Retorna el temps transcorregut des de l'inici del nivell.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra un missatge si el jugador triga mes de 10 segons en entrar en una zona.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
if Game.GetTime() &gt; 10.0<br />
then<br />
Game.Message(&quot;10 seconds to come there, that's a lot !&quot;)<br />
end<br />
end<br />
<br />
== Message(msgs) ==<br />
=== Explicació ===<br />
Mostra un missatge en la pantalla. El missatge s'eliminara automàticament desprès de 5 segons. Pots anomenar aquesta funció uns quants cops : els missatges es mostraran tots.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra alguns missatges al inici de nivell.<br />
<br />
function OnLoad()<br />
Game.Message(&quot;This level is scripted&quot;)<br />
Game.Message(&quot;GO GO GO !!!&quot;)<br />
return true<br />
end<br />
<br />
== ClearMessages() ==<br />
=== Explicació ===<br />
Elimina els missatges de la pantalla.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra com eliminar els missatges de la pantalla i mostrar un de nou en algunes circumstancies.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.ClearMessages()<br />
Game.Message(&quot;OnEnter&quot;)<br />
end<br />
<br />
function Zone0.OnLeave()<br />
Game.ClearMessages()<br />
Game.Message(&quot;OnLeave&quot;)<br />
end<br />
<br />
== SetGravity(x, y) ==<br />
=== Explicació ===<br />
Canvia la gravetat en el joc (horitzontal i vertical).<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra com invertir la gravetat. Fixa't que en l'X-Moto, la gravetat s'ha de multiplicar per -1, perquè les coordinades de la pantalla esta invertides en la direcció y.<br />
<br />
function OnLoad()<br />
Game.SetGravity(0, 9.81)<br />
return true<br />
end<br />
<br />
== GetGravity() ==<br />
=== Explicació ===<br />
Retorna el parell (gravetat horitzontal, i gravetat vertical).<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra el vent i la gravetat al inici del nivell.<br />
<br />
function OnLoad()<br />
x, y = Game.GetGravity()<br />
Game.Message(&quot;Wind : &quot;..x)<br />
Game.Message(&quot;Gravity : &quot;..(y*-1))<br />
return true<br />
end<br />
<br />
== IsPlayerInZone(zone) ==<br />
=== Explicació ===<br />
Retorna true si el jugador esta en la zona especificada.<br />
<br />
=== Exemple d'Script ===<br />
Aquest exemple es una mica mes complicat. Quan el jugador entra en una zona, la gravetat baixa de mica en mica. Un cop el jugador surt de la zona, la gravetat torna a ser 9.81 gradualment.<br />
<br />
Zone0 = {}<br />
x = -9.81<br />
<br />
function Tick()<br />
if Game.IsPlayerInZone(&quot;Zone0&quot;)<br />
then<br />
Game.SetGravity(0, x)<br />
x = x + 0.1<br />
end<br />
<br />
return true<br />
end<br />
<br />
function Zone0.OnLeave()<br />
x = -9.81<br />
Game.SetGravity(0, x)<br />
end<br />
<br />
== SetPlayerPosition(x, y, bRight) ==<br />
=== Explicació ===<br />
Especifica la posició i la direcció del jugador en el joc. bRight pot ésser 0 o 1.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple tele-transporta al jugador cada cop que entra en la zona.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.SetPlayerPosition(5, 0, 1)<br />
end<br />
<br />
== GetPlayerPosition() ==<br />
=== Explicació ===<br />
Retorna el triplet (x, y, bRight) que dona la posició del jugador en el joc.<br />
<br />
=== Exemple d'Script ===<br />
Aquest exemple fa que el jugador no sigui incapaç d'agafar una maduixa ;-)<br />
<br />
function Tick()<br />
x, y, bright = Game.GetPlayerPosition()<br />
if x &gt; 18<br />
then<br />
Game.SetPlayerPosition(5, 0, 1)<br />
end<br />
<br />
return true<br />
end<br />
<br />
== SetEntityPos(entity, x, y) ==<br />
=== Explicació ===<br />
Especifica la posició d'una figura en les coordenades (x, y) dins del joc.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple canvia la posició d'una maduixa cada segon.<br />
<br />
function Tick()<br />
i,f = math.mod(math.ceil(Game.GetTime()), 2)<br />
<br />
if i == 1<br />
then<br />
Game.SetEntityPos(&quot;Strawberry0&quot;, 10, 0.5)<br />
else<br />
Game.SetEntityPos(&quot;Strawberry0&quot;, 30, 0.5)<br />
end<br />
<br />
return true<br />
end<br />
<br />
== GetEntityPos(entity) ==<br />
=== Explicació ===<br />
Retorna la posició d'una figura dins del joc.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra una altre manera per moure una maduixa.<br />
<br />
last_update = 0<br />
<br />
function Tick()<br />
sec = math.ceil(Game.GetTime())<br />
<br />
if last_update &lt; sec<br />
then<br />
x, y = Game.GetEntityPos(&quot;Strawberry0&quot;)<br />
<br />
if(x == 20)<br />
then<br />
x_new = 25<br />
else<br />
x_new = 20<br />
end<br />
<br />
if(y == 0.5)<br />
then<br />
y_new = 2<br />
else<br />
y_new = 0.5<br />
end<br />
<br />
Game.SetEntityPos(&quot;Strawberry0&quot;, x_new, y_new)<br />
last_update = sec<br />
end<br />
<br />
return true<br />
end<br />
<br />
== SetKeyHook(key, function) ==<br />
=== Explicació ===<br />
Quan el jugadpr premi la &quot;tecla&quot; especificada, una funció sera anomenada.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra com canviar la gravetat simplement premen una tecla.<br />
<br />
g = -9.81<br />
<br />
function OnLoad()<br />
Game.SetKeyHook(&quot;G&quot;, &quot;GravityChange&quot;)<br />
return true<br />
end<br />
<br />
function GravityChange()<br />
g = g * -1<br />
Game.SetGravity(0, g)<br />
end<br />
<br />
== GetKeyByAction(function) ==<br />
=== Explicació ===<br />
Retorna la tecla asociada a una acció. Les possibles accions son Drive, Brake, PullBack, PushForward, ChangeDirection.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra per pantalla com conduir al principi del nivell.<br />
<br />
function OnLoad()<br />
Game.Message(&quot;To drive, press &quot;..Game.GetKeyByAction(&quot;Drive&quot;))<br />
return true<br />
end<br />
<br />
== Log(msgs) ==<br />
=== Explicació ===<br />
Registra un missatge en l'xmoto.log.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple registra el missatge &quot;An error occured&quot; a l'inici del nivell.<br />
<br />
function OnLoad()<br />
Game.Log(&quot;An error occured&quot;)<br />
return true<br />
end<br />
<br />
== MoveBlock(block, x, y) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció permet a l'X-Moto moure un bloc dins d'un nivell. El bloc ha de ser dinàmic (modifica el nivell per aconseguir &lt;position x=&quot;0&quot; y=&quot;0&quot; dynamic=&quot;true&quot; /&gt;). Fixa't que moure un bloc pot ser perillós: assegurat de que el jugador no quedi dins del bloc un cop l'hagis mogut.<br />
<br />
=== Exemple d'Script ===<br />
En l'exemple, quan el jugador prem la tecla M, el bloc es mou cap a la dreta.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook(&quot;M&quot;, &quot;MoveTheBlock&quot;)<br />
return true<br />
end<br />
<br />
function MoveTheBlock()<br />
Game.MoveBlock(&quot;Block0&quot;, 1, 0)<br />
end<br />
<br />
== SetBlockCenter(block, x, y) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció dona el centre de un bloc relatiu a la posició del bloc (i del nivell si el bloc es troba a la posició (0, 0)). El centre s'utilitza per les funcions SetBlockPos(), GetBlockPos() i SetBlockRotation(). Aquesta funció s'utilitza generalment en la funció Load() perquè no es lògic tornar a canviar el centre (encara així pots canviar-lo si vols).<br />
<br />
=== Exemple d'Script ===<br />
En l'exemple, s'especifica el centre de un bloc en el centre de un quadrat. Aleshores, quan el jugador premi M, el bloc es posara a sota del jugador.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook(&quot;M&quot;, &quot;PutTheBlock&quot;)<br />
Game.SetBlockCenter(&quot;Block0&quot;, 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
x, y = Game.GetPlayerPosition()<br />
Game.SetBlockPos(&quot;Block0&quot;, x, y -2.5 -1)<br />
end<br />
<br />
== SetBlockPos(block, x, y) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció permet a l'X-Moto moure un bloc segons el seu centre dins d'un nivell. El bloc ha de ser dinàmic (modifica el nivell per aconseguir &lt;position x=&quot;0&quot; y=&quot;0&quot; dynamic=&quot;true&quot; /&gt;). Fixa't que moure un bloc pot ser perillós: assegurat de que el jugador no quedi dins del bloc un cop l'hagis mogut.<br />
<br />
=== Exemple d'Script ===<br />
En l'exemple, s'especifica el centre de un bloc en el centre de un quadrat. Aleshores, quan el jugador premi M, el bloc es posara a sota del jugador.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook(&quot;M&quot;, &quot;PutTheBlock&quot;)<br />
Game.SetBlockCenter(&quot;Block0&quot;, 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
x, y = Game.GetPlayerPosition()<br />
Game.SetBlockPos(&quot;Block0&quot;, x, y -2.5 -1)<br />
end<br />
<br />
== GetBlockPos(block) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funcio dona la posició d'un bloc donat. El bloc ha de ser dinàmic (modifica el nivell per aconseguir &lt;position x=&quot;0&quot; y=&quot;0&quot; dynamic=&quot;true&quot; /&gt;).<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra com utilitzar aquesta funció com a condició. Ara, pots moure el bloc sota la moto nomes si jugues cap a la dreta.<br />
<br />
function OnLoad()<br />
Game.SetKeyHook(&quot;M&quot;, &quot;PutTheBlock&quot;)<br />
Game.SetBlockCenter(&quot;Block0&quot;, 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
x, y = Game.GetPlayerPosition()<br />
bx, by = Game.GetBlockPos(&quot;Block0&quot;)<br />
if(x &gt; bx)<br />
then<br />
Game.SetBlockPos(&quot;Block0&quot;, x, y -2.5 -1)<br />
end<br />
end<br />
<br />
== SetBlockRotation(block, angle) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció fa rotar als blocs. El bloc ha de ser dinàmic (modifica el nivell per aconseguir &lt;position x=&quot;0&quot; y=&quot;0&quot; dynamic=&quot;true&quot; /&gt;).<br />
<br />
=== Exemple d'Script ===<br />
En l'exemple, si el jugador deixa premuda la tecla M, el bloc rotara.<br />
<br />
a = 0<br />
<br />
function OnLoad()<br />
Game.SetKeyHook(&quot;M&quot;, &quot;PutTheBlock&quot;)<br />
Game.SetBlockCenter(&quot;Block0&quot;, 7.5, 7.5)<br />
return true<br />
end<br />
<br />
function PutTheBlock()<br />
a = a + math.pi / 256.0<br />
Game.SetBlockRotation(&quot;Block0&quot;, a)<br />
end<br />
<br />
== SetDynamicEntityRotation(entity, initAngle, radius, period, startTime, endTime) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció indica a una figura fer cercles durant un temps donat. La posició actual del radi on es troba la figura en el cercle es en la posició initAngle (in rad). La figura farà un cercle calculat en centèsims. L'animació començara en startTime en centèsims i acabara en endTime en centèsims, així doncs, la duració es endTime-startTime/100 segons. Un endTime de 0 significa una animació infinita. Fixa't que pots compondre rotacions i moviments. Fixa't també que un argument negatiu et permet canviar el comportament de l'animació. Per exemple, un període negatiu farà rotar a la figura en el sentit contrari.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra com de fàcil es moure una maduixa. L'InitAngle es -PI/2 perquè la maduixa esta a la part baixa d'on volem que es mogui.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntityRotation(&quot;Strawberry0&quot;, -math.pi/2, 2, 500, 0, 0)<br />
return true<br />
end<br />
<br />
== SetDynamicEntityTranslation(entity, fX, fY, period, startTime, endTime) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció permet indicar a una figura que faci un moviment durant un temps donat. La longitud del moviment es fX en l'eix X i fY en l'eix Y. La figura farà el moviment en un temps calculat en centèsims/2. L'animació començara en startTime en centèsims i acabara en endTime en centèsims, així doncs, la duració es endTime-startTime/100 segons. Un endTime de 0 significa una animació infinita. Fixa't que pots compondre rotacions i moviments. Fixa't també que un argument negatiu et permet canviar el comportament de l'animació.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra la composició d'unes animacions.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntityTranslation(&quot;Strawberry0&quot;, 10, 0, 500, 0, 0)<br />
Game.SetDynamicEntityTranslation(&quot;Strawberry0&quot;, 0, 1, 100, 0, 0)<br />
return true<br />
end<br />
<br />
== SetDynamicEntityNone(entity) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funcio elimina totes les animacions aplicades a una figura.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple demana a una figura fer un moviment en primer lloc i despres, fer una rotació. Si el jugador prem la tecla S, la maduixa es quedara quieta.<br />
<br />
function OnLoad()<br />
Game.SetDynamicEntityTranslation(&quot;Strawberry0&quot;, -2, 0, 1000, 0, 500)<br />
Game.SetDynamicEntityRotation(&quot;Strawberry0&quot;, -math.pi/2, 2, 500, 500, 0)<br />
Game.SetKeyHook(&quot;S&quot;, &quot;StopAnimation&quot;)<br />
return true<br />
end<br />
<br />
function StopAnimation()<br />
Game.SetDynamicEntityNone(&quot;Strawberry0&quot;)<br />
end<br />
<br />
== SetDynamicBlockRotation(block, initAngle, radius, period, startTime, endTime) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció permet indicar a un bloc fer un cercle durant un temps donat. La posició actual del radi on es troba la figura en el cercle es en la posició initAngle (in rad). El bloc farà un cercle calculat en centèsims. L'animació començara en startTime en centèsims i acabara en endTime en centèsims, així doncs, la duració es endTime-startTime/100 segons. Un endTime de 0 significa una animació infinita. Fixa't que pots compondre rotacions i moviments. Fixa't també que un argument negatiu et permet canviar el comportament de l'animació. Per exemple, un període negatiu farà rotar a la figura en el sentit contrari. El bloc ha de ser dinàmic (modifica el nivell per aconseguir &lt;position x=&quot;0&quot; y=&quot;0&quot; dynamic=&quot;true&quot; /&gt;). No moguis els blocs massa ràpid, sinó la moto podria travessar el bloc.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra com moure fàcilment un bloc.<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockRotation(&quot;Block0&quot;, -math.pi/2, 2, 500, 0, 0)<br />
return true<br />
end<br />
<br />
== SetDynamicBlockTranslation(block, fX, fY, period, startTime, endTime) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció permet indicar a un bloc que faci un moviment durant un temps donat. Un moviment es una seqüència repetitiva d'anada i tornada entre dos punts donats. La longitud del moviment es fX en l'eix X i fY en l'eix Y. L'animació començara en startTime en centèsims i acabara en endTime en centèsims, així doncs, la duració es endTime-startTime/100 segons. Un endTime de 0 significa una animació infinita. Fixa't que pots compondre rotacions i moviments. El bloc ha de ser dinàmic (modifica el nivell per aconseguir &lt;position x=&quot;0&quot; y=&quot;0&quot; dynamic=&quot;true&quot; /&gt;). No moguis els blocs massa ràpid, sinó la moto podria travessar el bloc.<br />
<br />
entity: Defineix quina figura es mou&lt;br&gt;<br />
fX: Defineix on de l'eix X la figura es mou&lt;br&gt;<br />
fY: Defineix on de l'eix Y la figura es mou&lt;br&gt;<br />
period: Defineix, quant trigara la figura en tornar al punt d'origen&lt;br&gt;<br />
startTime: Defineix, quan comença el moviment&lt;br&gt;<br />
endTime: Defineix, quan finalitza el moviment<br />
<br />
Amb l'objectiu de fer els arxius de repeticions mes petits, hauries d'utilitzar Translation en comptes de la funció MoveBlock. A sota hi ha un exemple de com convertir una funció MoveBlock en una funció Translation.<br />
<br />
=== Exemple d'Script ===<br />
En l'exemple, el bloc fa un moviment infinit : Es mou des de el punt d'origen (0,0) fins (10,1) en 750ms, i retorna de nou 750ms.<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockTranslation(&quot;Block0&quot;, 10, 1, 1500, 0, 0)<br />
return true<br />
end<br />
<br />
Exemple de com convertir una funció MoveBlock en una funció Translation. (mira a continuació):<br />
<br />
function Tick()<br />
Game.MoveBlock(&quot;Block0&quot;, 0.5,0)<br />
return true<br />
end<br />
<br />
Block0 es mou tota l'estona cap a la dreta: 0.5px cada 1/100s<br />
Així que es mou a una velocitat de 300m/60s<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockTranslation(&quot;Block0&quot;, 300, 0, 12000, 0, 6000)<br />
return true<br />
end<br />
<br />
Aquesta es la funció MoveBlock en la versió de Translation.<br />
Es mou 300m a la dreta i 300m de tornada a l'esquerre durant 12000ms. endTime esta a 12000/2=6000, així que el moviment parara tan aviat com Block0 sigui a (300,0)<br />
<br />
== SetDynamicBlockNone(block) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció elimina totes les animacions aplicades a un bloc. El bloc ha de ser dinàmic (modifica el nivell per aconseguir &lt;position x=&quot;0&quot; y=&quot;0&quot; dynamic=&quot;true&quot; /&gt;).<br />
<br />
=== Exemple d'Script ===<br />
En l'exemple, el bloc es mourà fins que el jugador premi la tecla S.<br />
<br />
function OnLoad()<br />
Game.SetDynamicBlockTranslation(&quot;Block0&quot;, 10, 1, 1500, 0, 0)<br />
Game.SetKeyHook(&quot;S&quot;, &quot;StopAnimation&quot;)<br />
return true<br />
end<br />
<br />
function StopAnimation()<br />
Game.SetDynamicBlockNone(&quot;Block0&quot;)<br />
end<br />
<br />
== CameraZoom(z) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
En alguns nivells, podries necessitar que la càmera estigues mes lluny respecte al jugador. Utilitza aquesta funció per canviar el zoom de la càmera.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra com un zoom diferent es pot utilitzar per a jugar en el nivell.<br />
<br />
function OnLoad()<br />
Game.CameraZoom(-0.05)<br />
return true<br />
end<br />
<br />
== CameraMove(x, y) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Per algun nivells concrets, potser vols moure la càmera. Utilitza aquesta funció per fer-ho.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra com enfocar una altre part del nivell d'on es troba el jugador.<br />
<br />
function OnLoad()<br />
Game.CameraMove(0, 3)<br />
return true<br />
end<br />
<br />
== GetEntityRadius(entity) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Retorna el radi d'una figura. Aquest radi s'utilitza per a les col·lisions. Pots utilitzar-lo per les teves pròpies col·lisions o per alguna altre cosa.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple et mostra el radi d'una maduixa.<br />
<br />
function OnLoad()<br />
Game.Message(&quot;Radius of the strawberry : &quot;..Game.GetEntityRadius(&quot;Strawberry0&quot;))<br />
return true<br />
end<br />
<br />
== IsEntityTouched(entity) ==<br />
[require Xmoto &gt;= 0.2.0]<br />
=== Explicació ===<br />
Aquesta funció es anomenada quan una figura es tocada. Peró alguns cops pots voler saber quan una figura no es tocada. Utilitza aquesta funció.<br />
<br />
=== Exemple d'Script ===<br />
L'exemple mostra com fer una acció quan el jugador no esta tocant una figura.<br />
<br />
g = -9.81<br />
<br />
function OnLoad()<br />
Game.Message(&quot;Gravity is increasing while you are not touching the snowman&quot;)<br />
return true<br />
end<br />
<br />
function Tick()<br />
if(Game.IsEntityTouched(&quot;SnowMan0&quot;) == 0)<br />
then<br />
g = g - 0.03<br />
Game.SetGravity(0, g);<br />
end<br />
return true<br />
end<br />
<br />
== KillPlayer() ==<br />
[require Xmoto &gt;= 0.2.1]<br />
=== Explicació ===<br />
Si anomenes aquesta funció, el jugador morira. Es interessant si vols que el jugador mori en tocar un enemic. per exemple.<br />
<br />
=== Exemple d'Script ===<br />
En el següent exemple, el jugador mor quan entri en una zona.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.KillPlayer()<br />
end<br />
<br />
== KillEntity(entityID) ==<br />
[require Xmoto &gt;= 0.2.1]<br />
=== Explicació ===<br />
Si anomenes aquesta funció, s'eliminara la figura entityID. La figura pot ser una maduixa o qualsevol altre.<br />
<br />
=== Exemple d'Script ===<br />
En el següent exemple, s'elimina una maduixa quan el jugador entra en la zona Zone0.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.KillEntity(&quot;Strawberry0&quot;)<br />
end<br />
<br />
== WinPlayer() ==<br />
[require Xmoto &gt;= 0.2.1]<br />
=== Explicació ===<br />
Si anomenes aquesta funció, el jugador guanyara el joc (fins i tot si queden maduixes pendents).<br />
<br />
=== Exemple d'Script ===<br />
En el següent exemple, el jugador guanya quan entra en la zona Zone0.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.WinPlayer()<br />
end<br />
<br />
== RemainingStrawberries() ==<br />
[require Xmoto &gt;= 0.2.1]<br />
=== Explicació ===<br />
Aquesta funció retorna el numero de maduixes pendents en el nivell.<br />
<br />
=== Exemple d'Script ===<br />
En el següent exemple, quan el jugador entra en la zona Zone0, el numero de maduixes pendents es mostra per pantalla.<br />
<br />
Zone0 = {}<br />
<br />
function Zone0.OnEnter()<br />
Game.Message(Game.RemainingStrawberries())<br />
end</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Shortcuts_for_most_used_actions_in_the_editor&diff=5617Shortcuts for most used actions in the editor2010-11-24T10:49:37Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://ekipebu.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://ekipebu.co.cc CLICK HERE]=<br />
----<br />
</div><br />
You can define shortcuts for the xmoto extension actions. Just save the file below to:<br />
*'''~/.inkscape/keys/default.xml''' if you are on Linux or Mac OS X, or &lt;br&gt;<br />
*'''C:\Documents and Settings\''user name''\Application Data\Inkscape\Keys\Default.xml''' if windows is you operating system.<br />
<br />
===The .xml===<br />
[[media:Default.xml|Default.xml]]<br />
<br />
===How it works===<br />
<br />
When inkscape has been restarted and the hotkeys loaded, try to click on a block and press &quot;t&quot;. This will bring the texture change dialog. The hotkey list looks like this:<br />
<br />
* T for '''T'''exture<br />
* B for change '''B'''lock type<br />
* E for add '''E'''gde<br />
* S for add '''S'''prite<br />
* Z for convert into '''Z'''one<br />
* X launches the level in xmoto</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Room&diff=5616Room2010-11-24T10:49:14Z<p>Opofefemucu: </p>
<hr />
<div>=[http://egebyromedu.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
[[de:Raum|Deutsch]] - [[No:Rom|Norsk]] - [[Ca:Sala|Català]] - [[Es:Sala|Español]]<br />
<br />
A '''room''', is in the world of Xmoto, a private list of highscores, which works just like the official worlds records seen on the website [http://xmoto.free.fr/index.php?page=all_highscores].</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Fr:French_Wiki_Updates_List&diff=5615Fr:French Wiki Updates List2010-11-24T10:49:08Z<p>Opofefemucu: </p>
<hr />
<div>=[http://azysijogen.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
This wiki page display updates of the French part of the XMoto's Wiki.<br />
<br />
If you change something in the French part, please display the change(s) and your XMoto's Wiki's login in the right day.<br />
<br />
''For exemple if Trullo (Catalan and Spanish translator) add an image to [[Fr:Comment être sûr que mon niveau va être validé ?]] at Wednesday 3 June 2009, he will put this into the Wednesday 3 June 2009 (or create if not created) :<br />
* Added an image to [[Fr:Comment être sûr que mon niveau va être validé ?]] (Trullo)''<br />
<br />
If I create this page, this is just for helping me to see what were done, and get the French part translated fastly, you can delete this ONLY IF YOU ARE IN THE XMOTO DEV TEAM AND BY GIVING A REASON.<br />
<br />
Thanks,<br />
<br />
Shepard62700FR<br />
<br />
'''ChangeLog'''<br />
<br />
<br />
''Wednesday 3 June 2009''<br />
* [[Fr:Comment être sûr que mon niveau va être validé ?]] translated<br />
* Edited [[About good level design]], [[Ca:About good level design]], [[Es:About good level design]] and [[Über gutes Level Design]] to add a quick French's translation redirection at the top.<br />
''Sunday 25 October 2009''<br />
* [[Fr:Guide à X-Moto de Philip]] =&gt; Translation has begun but not done yet<br />
* Edited [[Philip's xmoto guide]] to add a quick link to French version<br />
* [[Fr:Guide à X-Moto de Philip]] =&gt; Added a quick link to English version<br />
''Sunday 29 August 2010''<br />
* [[Fr:X-Moto_0.2_sur_PSP]] translated<br />
''Monday 30 August 2010''<br />
* [[Fr:Commandes_serveurs]] translated</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:Room&diff=5614Talk:Room2010-11-24T10:48:56Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://egebyromedu.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://egebyromedu.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Ca:xmoto-edit&diff=5612Ca:xmoto-edit2010-11-24T10:48:49Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://unugeboq.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=<br />
----<br />
=[http://unugeboq.co.cc CLICK HERE]=<br />
----<br />
</div><br />
[[xmoto-edit|English]] - [[De:xmoto-edit|Deutsch]] - [[Es:xmoto-edit|Español]] - [[Fr:Créer un niveau avec xmoto-edit|Français]]<br />
<br />
Hauria de ser senzill per a tothom poder afegir nous continguts al joc; tan nous nivells utilitzant gràfics estàndards, com amb gràfics casolans. Aquesta pagina parlara de totes les possibilitats, quan tingui el temps per escriure-les :)<br />
<br />
= Utilitzant l'Editor de Nivells =<br />
<br />
Fixa't que des de X-Moto 0.2.4, has de donar-li a F5 en el menu principal<br />
quan hagis modificat el directori de nivells (per exemple, si estàs creant nivells nous)<br />
<br />
Aquesta part es una petita guia que tractara els senzills passos a seguir per a crear un nivell simple de l'X-Moto. Abans de començar, potser es una bona idea introduir algunes paraules tècniques que utilitzarem mes endavant un cop rere un altre:<br />
<br />
* Els Blocs son la part bàsica dels nivells de l'X-Moto, son els que forma el terra solid per on es mou el jugador. Cada bloc donat nomes pot tenir una textura. Si un bloc te l'etiqueta background el jugador no el podrà tocar, i es senzillament reduït als gràfics del fons. Els Blocs poden tenir qualsevol forma, ser còncaus o convexos. També es permeten solapar-se.<br />
* Una vora és un costat d'un bloc. Els efectes de les vores es poden assignar a una vora, per exemple per crear herba.<br />
* Els vèrtexs són les cantonades dels blocs.<br />
* Una entitat es un objecte en el joc. Per exemple les maduixes o la posició d'inici del jugador.<br />
* Una figura es un tipus d'entitat, que es útil per mostrar gràfics estàtics dins del joc, com per exemple, els arbres.<br />
* Les partícules es poden utilitzar per crear fum.<br />
* L'Editor ofereix diferents formes per editar. En un mode donat, nomes es possible modificar l'aspecte d'un nivell, per exemple, la posició dels vèrtex o les entitats.<br />
<br />
Inicia l'editor arrencant el programa xmoto-edit. En Windows esta localitzat en el mateix directori que el joc.<br />
<br />
L'editor obra una finestra, que s'assemble a això:<br />
<br />
[[Image:Xmoto-edit.png]]<br />
<br />
En la pantalla pots trobar:<br />
<br />
* a gran àrea gris es al vista del nivell. La part amb la graella es l'àrea de joc, tot lo de fora no forma part del nivell.<br />
* Les coordenades del cursor en la part alta a la esquerre de la pantalla.<br />
* El menú principal es troba a la part alta a la dreta de la pantalla.<br />
** New Level - Deixa el nivell actual i comença un de nou. Fixa't que no hi ha manera de recuperar el nivell anterior sinó esta desat.<br />
** Save Level - Desa el nivell actual.<br />
** Load Level - Carrega un nivell.<br />
** Play Level - Juga en el nivell actual.<br />
** Move Limits - Moure els límits del nivell. per exemple pots canviar el mida l'àrea de la graella.<br />
** Create Block - Crea u nou bloc.<br />
** Edit Sel. Entity - Edita la entitat seleccionada actual.<br />
** Level Properties - Edita les propietats del nivell actual.<br />
** Edit Edge FX - Afegeix/elimina efectes de vora a la vora seleccionada actualment.<br />
** Smooth Edges - Allisa les vores seleccionades. Compte amb això perquè un nivell pot tornar-se molt lent ràpidament.<br />
** Delete Selection - Elimina els blocs/vèrtex/vora/entitat seleccionats.<br />
** Tgl. Blk BG - Combina l'etiqueta background per al bloc seleccionat.<br />
** Copy Entity - Una manera fàcil de fer moltes entitats iguales.<br />
** Exit - Surt de l'editor. Fixa't que no et preguntara per desar el treball, es molt cruel.<br />
* Just a sota trobaràs una llista de les entitats disponibles. Per a col·locar una entitat, simplement fes click en el seu tipus i desprès en el lloc del nivell on vulguis col·locar-la.<br />
* El selector de textures es troba a la part baixa a la dreta de la pantalla. Nomes s'activa quan s'està editant un bloc.<br />
* Sota de la vista grisa del nivell, hi ha una àrea mes fosca, aquesta es el registre. Quan l'editor vol dir alguna cosa, els missatges s'escriuen aquí.<br />
* La selecció snap esta a la part baixa a la esquerre. Això controla si (i quant) el cursor hauria de fer snap en la graella.<br />
* El menú de selecció del mode editor esta justament a la dreta de l menú de selecció snap. Utilitza'l per canviar entre els quatre modes diferents.<br />
<br />
Pots desplaçar-te pel nivell amb el ratolí. Click dret en qualsevol lloc centrara la vista allà i la roda del ratolí per a enfocar de lluny i aprop, o si el teu ratolí no te roda, utilitza A i Z per a fer el mateix.<br />
<br />
Inicialment quan l'editor arrenca, obre un nou nivell buit, nomes amb la entitat de posició inicial del jugador:<br />
<br />
[[Image:Xmoto-edit start.png]]<br />
<br />
Pots moure-la entrant al mode editor d'entitats i agafa i arrossega-la amb el cursor. La primera cosa que has de fer quan fas un nou nivell es activar el l'entrada del menú principal de &quot;Level Properties&quot;:<br />
<br />
[[Image:Xmoto-edit levelprops.png]]<br />
<br />
Click en el nom de l'arxiu i posa alguna cosa que sigui única nomes per al teu nivell. Tots els nivells han de estar en el sub-directori /Levels. Aleshores clic en la ID per a canviar-la. L'ID s'utilitzara per identificar el teu nivell amb una manera única i independent del nom de l'arxiu. L'ID no pot contenir espais. Finalment clic en &quot;Name&quot; i posa un nom mes descriptiu per al nivell. Quan acabis hauria d'assemblar-se a això:<br />
<br />
[[Image:Xmoto-edit levelprops edited.png]]<br />
<br />
Per al nostre nivell començarem centrant un bloc. Enfoca una mica, per a poder observar millor l'àrea al voltant de la posició d'inici del jugador. Aleshores click en &quot;Create Block&quot; del menú principal per iniciar el dibuix del bloc. Posa els vèrtex un rere un altre fins que tanquis el bloc fent clic de nou en el vèrtex inicial. Fixa't que l'ordre de la posició els vèrtex es important:<br />
<br />
[[Image:Xmoto-edit creating block.png]]<br />
<br />
Els vèrtex han de estar en el sentit de les agulles del rellotge. sinó el nivell no serà correcte i no funcionara. Això es molt important!<br />
<br />
Ara volem un arbre a¡en el nostre bloc! Click en la llista de tipus d'entitats, l'entrada &quot;Sprite&quot;, i desprès click on vols que estigui l'arrel de l'arbre. Fixa't que has de fer click en algun lloc dins del bloc, sinó l'arbre estarà flotant enmig de l'aire.<br />
<br />
[[Image:Xmoto-edit sprite.png]]<br />
<br />
Si l'has posat massa a dalt, com en el dibuix de sota, pots anar al menú del mode editor d'entitats, selecciona l'snap en &quot;off&quot; i arrossega la figura una mica mes dins del bloc.<br />
<br />
Per a dir-li al joc que això es un arbre, selecciona la figura:<br />
<br />
[[Image:Xmoto-edit sprite sel.png]]<br />
<br />
Click en &quot;Edit Sel. Entity&quot; en el menú principal. Aleshores modifica els paràmetres per a que quedi així:<br />
<br />
[[Image:Xmoto-edit sprite edited.png]]<br />
<br />
Això es, has de seleccionar el nom &quot;Tree1&quot; o &quot;Tree2&quot;. Ara intentarem veure com quedara dins del joc. Simplement clic &quot;Play Level&quot; en el menú principal, el joc arrencara, i alguna cosa així hauria d'aparèixer:<br />
<br />
[[Image:Xmoto-edit ingame1.png]]<br />
<br />
(Des de X-Moto 0.2.2, recorda tancar el joc abans de continuar treballant amb l'editor, sempre has de sortir del joc desprès de comprovar el teu nivell)<br />
<br />
No seria bufo amb una mica d'herba sobre el bloc? I tant!, i es molt fàcil d'afegir-ne: Entra en el mode de selecció de vora i selecciona les vores que vols amb herba:<br />
<br />
[[Image:Xmoto-edit edges sel.png]]<br />
<br />
Amb les vores seleccionades amb vermell, clic en &quot;Edit Edge FX&quot; del menú principal, i selecciona &quot;Edge Effect&quot; a &quot;Grass&quot; (la majúscula G es important):<br />
<br />
[[Image:Xmoto-edit edges edited.png]]<br />
<br />
Desprès treu la selecció a les vores, apareixeran en color blau. Això es útil per a estar alerta de les vores que tenen algun efecte aplicat:<br />
<br />
[[Image:Xmoto-edit edges with grass.png]]<br />
<br />
&quot;Play Level&quot; un altre cop, i voila, ara hi ha herba:&lt;br /&gt;<br />
Nota: Des de X-Moto 0.2.4, has de apretar F5 durant el joc, per actualitzar el directori de nivells. D'altre banda si no ho fas només veuràs l'antiga versió del teu nivell. Aixo es en benefici, de que no hauràs de sortir del joc per a comprovar el teu treball amb l'editor. Simplement prem F5 per tornar-los a carregar.<br />
<br />
[[Image:Xmoto-edit ingame2.png]]<br />
<br />
Ara probablement t'agradaria fer el nivell una mica mes funcional. Això esta fet afegint l'entitat &quot;EndOfLevel&quot; i unes quantes &quot;Strawberry&quot;. També pots crear mes blocs. Es podria assemblar a això:<br />
<br />
[[Image:Xmoto-edit playablelevel.png]]<br />
<br />
&quot;Play Level&quot; de nou i comprova que realment pots finalitzar el nivell.<br />
<br />
Per afegir mes coses a l'aspecte del nivell, pots provar a crear un nou bloc de fons (background). Crea un bloc que sembli que junta els dos altres blocs, així:<br />
<br />
[[Image:Xmoto-edit bgblock.png]]<br />
<br />
Fixa't com el nou bloc es sobreposa als altres per assegurar-se que no hi ha forats. Per a fer-lo de fons, ves al mode de selecció de bloc, selecciona el nou bloc, fes clic en &quot;Tgl. Blk BG&quot; del menú principal. Hauries de posar-li alguna altre textura. Clic en el menú de textures a la part baixa a la dreta de la pantalla, i clic en la textura de terra fosc:<br />
<br />
[[Image:Xmoto-edit texturesel.png]]<br />
<br />
Deixa de seleccionar tot, i veuràs que el bloc esta dibuixar de color verd:<br />
<br />
[[Image:Xmoto-edit bgblock2.png]]<br />
<br />
Ara fes click en &quot;Play Level&quot; un altre cop, i el teu nivell esta acabat:<br />
<br />
[[Image:Xmoto-edit ingame3.png]]</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:File_formats&diff=5613Talk:File formats2010-11-24T10:48:49Z<p>Opofefemucu: Created page with '=[http://ezapazuhem.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]='</p>
<hr />
<div>=[http://ezapazuhem.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=How_to_include_Scripts_into_a_Level&diff=5611How to include Scripts into a Level2010-11-24T10:48:48Z<p>Opofefemucu: </p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://unugeboq.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=<br />
----<br />
=[http://unugeboq.co.cc CLICK HERE]=<br />
----<br />
</div><br />
= Introduction =<br />
Scripting allows a level to become dynamic. You can change physic settings, move objects, modify game logic, etc. A script is written in the Lua language and can be included in a level file.<br />
<br />
Documentation about Lua can be found here :<br />
http://www.lua.org/manual/5.1/<br />
<br />
To write a script, you needn't know a lot about the level files. Just use Inksmoto, where you can easily add your own script files.<br />
For doing this, you need to create a simple text file, where the functions you wanna use are put. In Inksmoto Level Editor, just give the path to this text file, in the field 'lua script' (you can find it in the level properties tab).<br />
A simple example for such a text file looks like this:<br />
<br />
zone1 = {}<br />
<br />
function OnLoad()<br />
Game.SetCameraRotationSpeed(0.05);<br />
Game.CameraRotate(math.pi);<br />
return true;<br />
end<br />
<br />
function zone1.OnEnter()<br />
Game.PlayAudio(&quot;ring&quot;);<br />
end<br />
<br />
<br />
Since 0.3.0, xmoto supports multiplayers ; in the script, a player is defined by an index. The first player has the number 0, the second the number 1, ...<br />
<br />
The script examples on this page will use this basic level file:<br />
<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />
&lt;level id=&quot;tutscript&quot;&gt;<br />
&lt;info&gt;<br />
&lt;name&gt;tutscript&lt;/name&gt;<br />
&lt;description&gt;&lt;/description&gt;<br />
&lt;author&gt;&lt;/author&gt;<br />
&lt;date&gt;&lt;/date&gt;<br />
&lt;sky&gt;sky1&lt;/sky&gt;<br />
&lt;/info&gt;<br />
&lt;script&gt;<br />
&lt;/script&gt;<br />
&lt;limits left=&quot;0&quot; right=&quot;50&quot; top=&quot;30&quot; bottom=&quot;0&quot;/&gt;<br />
&lt;block id=&quot;Block0&quot;&gt;<br />
&lt;position x=&quot;0&quot; y=&quot;0&quot;/&gt;<br />
&lt;usetexture id=&quot;default&quot;/&gt;<br />
&lt;vertex x=&quot;5&quot; y=&quot;5&quot;/&gt;<br />
&lt;vertex x=&quot;5&quot; y=&quot;10&quot;/&gt;<br />
&lt;vertex x=&quot;10&quot; y=&quot;10&quot;/&gt;<br />
&lt;vertex x=&quot;10&quot; y=&quot;5&quot;/&gt;<br />
&lt;/block&gt;<br />
&lt;entity id=&quot;MyPlayerStart0&quot; typeid=&quot;PlayerStart&quot;&gt;<br />
&lt;size r=&quot;0.4&quot;/&gt;<br />
&lt;position x=&quot;7.5&quot; y=&quot;10&quot;/&gt;<br />
&lt;/entity&gt;<br />
&lt;entity id=&quot;Strawberry0&quot; typeid=&quot;Strawberry&quot;&gt;<br />
&lt;size r=&quot;0.4&quot;/&gt;<br />
&lt;position x=&quot;20&quot; y=&quot;0.5&quot;/&gt;<br />
&lt;/entity&gt;<br />
&lt;entity id=&quot;SnowMan0&quot; typeid=&quot;Sprite&quot;&gt;<br />
&lt;param name=&quot;name&quot; value=&quot;SnowMan&quot;/&gt;<br />
&lt;position x=&quot;19&quot; y=&quot;0.2&quot;/&gt;<br />
&lt;param name=&quot;z&quot; value=&quot;-1&quot;/&gt;<br />
&lt;/entity&gt;<br />
&lt;zone id=&quot;Zone0&quot;&gt;<br />
&lt;box left=&quot;40&quot; right=&quot;50&quot; top=&quot;5&quot; bottom=&quot;0&quot;/&gt;<br />
&lt;/zone&gt;<br />
&lt;/level&gt;<br />
<br />
This level can be made easily with the Inksmoto level editor. It includes a block called Block0 which is a square, a strawberry called Strawberry0 and a zone called Zone0. A zone is an invisible part of the level that can execute actions when the player is inside.<br />
<br />
Some functions require a minimum X-Moto version to work. If you use one of these functions, please put this information in the level. For example, to make your level require X-Moto version 0.2.0, add this line to your level:<br />
<br />
&lt;level id=&quot;tutscript&quot; rversion=&quot;0.2.0&quot;&gt;<br />
<br />
[[Image:Scripted_level.jpg]]<br />
<br />
All the code of the script is written in Lua. You can find the syntax here. However, if you choose to include the script in an xml file, &lt; and &gt; symbol must be replaced by &amp;amp;lt; and &amp;amp;gt;. The code of the script can be included between &lt;script&gt; and &lt;/script&gt; in the level file.</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=Talk:Fr:French_Wiki_Updates_List&diff=5610Talk:Fr:French Wiki Updates List2010-11-24T10:48:46Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://azysijogen.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://azysijogen.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=User_talk:Philip&diff=5608User talk:Philip2010-11-24T10:33:18Z<p>Opofefemucu: Created page with '=[http://unugeboq.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]='</p>
<hr />
<div>=[http://unugeboq.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=</div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=User_talk:Googlebotti&diff=5607User talk:Googlebotti2010-11-24T10:33:01Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://efowozodije.co.cc Under Construction! Please Visit Reserve Page. Page Will Be Available Shortly]=<br />
----<br />
=[http://efowozodije.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucuhttp://wiki.xmoto.tuxfamily.org/index.php?title=User:Philip&diff=5606User:Philip2010-11-24T10:32:57Z<p>Opofefemucu: Created page with '---- <div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height…'</p>
<hr />
<div>----<br />
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;"><br />
----<br />
=[http://unugeboq.co.cc UNDER COSTRUCTION, PLEASE SEE THIS POST IN RESERVE COPY]=<br />
----<br />
=[http://unugeboq.co.cc CLICK HERE]=<br />
----<br />
</div></div>Opofefemucu