Merge remote-tracking branch 'remotes/origin/master' into heavy-resources

Conflicts:
	planet/Arena.ocf/Hideout.ocs/Material.ocg/Amethyst.ocm
	planet/Arena.ocf/Hideout.ocs/Material.ocg/Ruby.ocm
	planet/Missions.ocf/AcidDrilling.ocs/Scenario.txt
	planet/Missions.ocf/DeadlyGrotto.ocs/Scenario.txt
	planet/Missions.ocf/GoldenMountain.ocs/Scenario.txt
	planet/Missions.ocf/MineRescue.ocs/Scenario.txt
	planet/Missions.ocf/Skylands.ocs/Scenario.txt
	planet/Objects.ocd/Libraries.ocd/Producer.ocd/Script.c
	planet/Worlds.ocf/AcidGoldMine.ocs/Scenario.txt
	planet/Worlds.ocf/GoldRush.ocs/Scenario.txt
	planet/Worlds.ocf/IronPeak.ocs/Scenario.txt
	planet/Worlds.ocf/Krakatoa.ocs/Scenario.txt
	planet/Worlds.ocf/RubyCave.ocs/Scenario.txt
heavy-resources
Clonkonaut 2014-05-09 19:45:52 +02:00
commit d291623f24
347 changed files with 4530 additions and 1211 deletions

View File

@ -407,6 +407,8 @@ set(OC_CLONK_SOURCES
src/object/C4DefList.h
src/object/C4GameObjects.cpp
src/object/C4GameObjects.h
src/object/C4Id.cpp
src/object/C4Id.h
src/object/C4IDList.cpp
src/object/C4IDList.h
src/object/C4InfoCore.cpp
@ -485,6 +487,8 @@ set(MAPE_BASE_SOURCES
src/lib/C4NameList.h
src/lib/C4Rect.cpp
src/lib/C4Rect.h
src/object/C4Id.cpp
src/object/C4Id.h
)
set(MAPE_SOURCES
@ -872,10 +876,10 @@ if(USE_CONSOLE)
SET(HAVE_LIBREADLINE ${READLINE_FOUND} CACHE INTERNAL "libreadline available")
endif()
include(FindPkgConfig)
# Set GTK link directory. This needs to be done before add_executable,
# otherwise the path is not used for linking clonk
if(USE_GTK)
include(FindPkgConfig)
if (USE_GTK3)
pkg_check_modules(GTK3 REQUIRED "glib-2.0 >= 2.32" "gtk+-3.0 >= 3.4")
include_directories(${GTK3_INCLUDE_DIRS})
@ -888,7 +892,6 @@ if(USE_GTK)
endif()
# Try to find GTK for mape
include(FindPkgConfig)
if (PKG_CONFIG_FOUND)
if (USE_GTK3)
pkg_check_modules(MAPE_GTK glib-2.0>=2.32 gthread-2.0 gtk+-3.0>=3.4 gtksourceview-3.0)
@ -1060,8 +1063,6 @@ src/lib/C4Real.cpp
src/lib/C4Real.h
src/lib/C4Random.cpp
src/lib/C4Random.h
src/object/C4Id.cpp
src/object/C4Id.h
src/script/C4Aul.cpp
src/script/C4AulDefFunc.h
src/script/C4AulExec.cpp
@ -1395,8 +1396,10 @@ if(NOT HAVE_FMOD AND NOT USE_OPEN_AL OR USE_SDL_MAINLOOP AND NOT USE_OPEN_AL)
SET(HAVE_SDL ${SDL_FOUND})
if(SDL_FOUND)
include_directories(${SDL_INCLUDE_DIR})
FINDLIB(SDLMIXER_LIBRARIES SDL_mixer)
if(SDLMIXER_LIBRARIES)
pkg_check_modules(SDLMIXER "SDL_mixer")
if(SDLMIXER_FOUND)
include_directories(${SDLMIXER_INCLUDE_DIRS})
link_directories(${SDLMIXER_LIBRARY_DIRS})
SET(HAVE_LIBSDL_MIXER ON)
endif()
target_link_libraries(openclonk
@ -1438,7 +1441,7 @@ endif()
if(CMAKE_COMPILER_IS_GNUCXX)
include(GccPchSupport)
option(USE_GCC_PCH "Use GCC precompiled headers" ON)
option(USE_GCC_PCH "Use GCC precompiled headers" OFF)
endif()
if(USE_GCC_PCH)
add_precompiled_header(libmisc src/C4Include.h)

View File

@ -2733,16 +2733,16 @@ msgstr "Der Wind bläst immer in die Richtung in die die Kanone geschoben wird."
#: sdk/script/fn/GetPlayerControlAssignment.xml:8(category)
#: sdk/script/fn/GetPlayerByName.xml:8(category)
#: sdk/script/fn/GetPlayerByIndex.xml:8(category)
#: sdk/script/fn/GetHomebaseProduction.xml:8(category)
#: sdk/script/fn/GetHomebaseMaterial.xml:8(category)
#: sdk/script/fn/GetBaseProduction.xml:8(category)
#: sdk/script/fn/GetBaseMaterial.xml:8(category)
#: sdk/script/fn/GetHiRank.xml:17(desc)
#: sdk/script/fn/GetCrewExtraData.xml:8(category)
#: sdk/script/fn/GetBase.xml:8(category)
#: sdk/script/fn/EliminatePlayer.xml:8(category)
#: sdk/script/fn/DoWealth.xml:8(category)
#: sdk/script/fn/DoPlayerScore.xml:8(category)
#: sdk/script/fn/DoHomebaseProduction.xml:8(category)
#: sdk/script/fn/DoHomebaseMaterial.xml:8(category)
#: sdk/script/fn/DoBaseProduction.xml:8(category)
#: sdk/script/fn/DoBaseMaterial.xml:8(category)
#: sdk/script/fn/CreateScriptPlayer.xml:8(category)
msgid "Player"
msgstr "Spieler"
@ -7043,49 +7043,49 @@ msgstr "Gibt die ID des aufrufenden Objekts zurück."
msgid "Creates a duplicate of the calling object."
msgstr "Erstellt ein Duplikat des aufrufenden Objekts."
#: sdk/script/fn/GetHomebaseProduction.xml:16(desc)
#: sdk/script/fn/GetBaseProduction.xml:16(desc)
msgid "Number of the player whose buying options you want to determine. The first player has the player number 0."
msgstr "Die Nummer des Spielers, dessen Kaufmöglichkeiten abgefragt werden sollen. Der erste Spieler hat die Nummer 0."
#: sdk/script/fn/GetHomebaseProduction.xml:21(desc)
#: sdk/script/fn/GetBaseProduction.xml:21(desc)
msgid "If specified, the function returns the number of objects of the given type which are resupplied to the player's home base. In this case index and category are ignored."
msgstr "Wenn angegeben, gibt die Funktion die Menge der Objekte zurück, die in der Heimatbasis des Spielers nachgeliefert wird. index und category werden hierbei ignoriert."
#: sdk/script/fn/GetHomebaseProduction.xml:27(desc)
#: sdk/script/fn/GetHomebaseMaterial.xml:27(desc)
#: sdk/script/fn/GetBaseProduction.xml:27(desc)
#: sdk/script/fn/GetBaseMaterial.xml:27(desc)
msgid "List index of the buyable item to check."
msgstr "Der Index der gesuchten Kaufmöglichkeit."
#: sdk/script/fn/GetHomebaseProduction.xml:33(desc)
#: sdk/script/fn/GetHomebaseMaterial.xml:33(desc)
#: sdk/script/fn/GetBaseProduction.xml:33(desc)
#: sdk/script/fn/GetBaseMaterial.xml:33(desc)
msgid "Category of buyable items you want to check."
msgstr "Die Kategorie der gesuchten Kaufmöglichkeit."
#: sdk/script/fn/GetHomebaseProduction.xml:38(desc)
#: sdk/script/fn/GetBaseProduction.xml:38(desc)
msgid "With id specified, the function returns how quickly objects of that type are resupplied to the player's home base. In this case index and category are ignored. If id is not specified, the function returns the id of the indicated type of objects of the specified category in the player's resupply list. This will return all object types from the resupply list, even if they are currently not being resupplied."
msgstr "Bei angegebenen id gibt die Funktion zurück, wie schnell die Menge der Objekte in der Heimatbasis des Spielers nachgeliefert wird. index und category werden hierbei ignoriert. Wird id nicht angegeben, liefert die Funktion den indizierten Objekttyp der entsprechenden Kategorie der nachgelieferten Objekte des Spielers. Der Objekttyp (id) taucht in der Liste auf und wird zurückgeliefert, selbst wenn zur Zeit keine Objekte dieses Typs nachgeliefert werden."
#: sdk/script/fn/GetHomebaseProduction.xml:42(text)
#: sdk/script/fn/GetBaseProduction.xml:42(text)
msgid "Gives a flintstone to the selected clonk of the first player if currently no flintstones are resupplied to the player's home base."
msgstr "Gibt dem ausgewählten Clonk des ersten Spielers einen Feuerstein, wenn in seiner Heimatbasis keine Feuersteine nachgeliefert werden."
#: sdk/script/fn/GetHomebaseMaterial.xml:16(desc)
#: sdk/script/fn/GetBaseMaterial.xml:16(desc)
msgid "Number of the player whose buying options to determine."
msgstr "Die Nummer des Spieler, dessen Kaufmöglichkeiten abgefragt werden sollen. Der erste Spieler hat die Nummer 0."
#: sdk/script/fn/GetHomebaseMaterial.xml:21(desc)
#: sdk/script/fn/GetBaseMaterial.xml:21(desc)
msgid "If specified, the function returns the number of objects of the given type which the player can buy at his home base. In this case index and category are ignored."
msgstr "Wenn angegeben, gibt die Funktion die Menge der Objekte zurück, die der Spieler in seiner Heimatbasis kaufen kann. index und category werden hierbei ignoriert."
#: sdk/script/fn/GetHomebaseMaterial.xml:38(desc)
#: sdk/script/fn/GetBaseMaterial.xml:38(desc)
msgid "With id specified, the function returns the number of objects of that type which the player can buy at his home base. In this case index and category are ignored. If id is not specified, the function returns the id of the indicated type of objects of the specified category buyable at the players home base. This will return object types which are generally buyable, even if currently no object of that type is available."
msgstr "Bei angegebenen id gibt die Funktion die Menge der Objekte zurück, die der Spieler in seiner Heimatbasis kaufen kann. index und category werden hierbei ignoriert. Wird id nicht angegeben, liefert die Funktion den indizierten Objekttyp der entsprechenden Kategorie der kaufbaren Objekte des Spielers. Der Objekttyp (id) taucht in der Liste auf und wird zurückgeliefert, selbst wenn zur Zeit keine Objekte dieses Typs verfügbar sind."
#: sdk/script/fn/GetHomebaseMaterial.xml:42(text)
#: sdk/script/fn/GetBaseMaterial.xml:42(text)
msgid "Returns the number of fire stones the first player can buy."
msgstr "Meldet die Anzahl Feuersteine, die sich der Erste Spieler kaufen kann (sofern er das benötigte Geld hat)"
#: sdk/script/fn/GetHomebaseMaterial.xml:45(text)
#: sdk/script/fn/GetBaseMaterial.xml:45(text)
msgid "Gives the notice \"The third buyable vehicle of this player is a ...\""
msgstr "Gibt die Nachricht \"The third buyable vehicle of this player is a ...\" aus"
@ -8503,43 +8503,43 @@ msgstr "Verändert den Punktewert eines Spielers."
msgid "Deducts 100 points from this player."
msgstr "Zieht dem Spieler 100 Punkte ab."
#: sdk/script/fn/DoHomebaseProduction.xml:16(desc)
#: sdk/script/fn/DoBaseProduction.xml:16(desc)
msgid "Number of the player whose home base resupply list you want to change."
msgstr "Spielernummer des Spielers, dessen Heimatbasismaterial-Nachlieferung verändert werden soll"
#: sdk/script/fn/DoHomebaseProduction.xml:21(desc)
#: sdk/script/fn/DoBaseProduction.xml:21(desc)
msgid "id of the object type you want to adjust."
msgstr "ID des Objekttyps, der schneller oder langsamer nachgeliefert werden soll."
#: sdk/script/fn/DoHomebaseProduction.xml:26(desc)
#: sdk/script/fn/DoBaseProduction.xml:26(desc)
msgid "Change of the resupply value (positive or negative)."
msgstr "Positive oder negative Veränderung der nachgelieferten Objektmenge"
#: sdk/script/fn/DoHomebaseProduction.xml:30(desc)
#: sdk/script/fn/DoBaseProduction.xml:30(desc)
msgid "Changes resupply speed of buyable objects at the home base."
msgstr "Verändert die Nachlieferung von kaufbaren Objekten in der Heimatbasis."
#: sdk/script/fn/DoHomebaseProduction.xml:34(text)
#: sdk/script/fn/DoBaseProduction.xml:34(text)
msgid "No more flintstones are resupplied for the first player."
msgstr "Feuersteine werden für den ersten Spieler nicht mehr nachgeliefert."
#: sdk/script/fn/DoHomebaseMaterial.xml:16(desc)
#: sdk/script/fn/DoBaseMaterial.xml:16(desc)
msgid "Number of the player whose home base material you want to change."
msgstr "Spielernummer des Spielers, dessen Heimatbasismaterial verändert werden soll"
#: sdk/script/fn/DoHomebaseMaterial.xml:21(desc)
#: sdk/script/fn/DoBaseMaterial.xml:21(desc)
msgid "id of the buyable object type you want to adjust."
msgstr "ID des Objekttyps, der mehr oder weniger oft kaufbar sein soll"
#: sdk/script/fn/DoHomebaseMaterial.xml:26(desc)
#: sdk/script/fn/DoBaseMaterial.xml:26(desc)
msgid "Change of the available amount (positive or negative)."
msgstr "Positive oder negative Veränderung der kaufbaren Objektmenge"
#: sdk/script/fn/DoHomebaseMaterial.xml:30(desc)
#: sdk/script/fn/DoBaseMaterial.xml:30(desc)
msgid "Changes availability of buyable objects at the home base."
msgstr "Verändert die Kaufbarkeit von Objekten in der Heimatbasis."
#: sdk/script/fn/DoHomebaseMaterial.xml:34(text)
#: sdk/script/fn/DoBaseMaterial.xml:34(text)
msgid "The player can now buy one flint more."
msgstr "Der Spieler kann sich jetzt einen Flint mehr kaufen."
@ -18652,8 +18652,8 @@ msgstr "Dieses Kommandozeilen-Programm dient zum Bearbeiten von Gruppendateien.
#~ msgid "BaseImage"
#~ msgstr "BaseImage"
#~ msgid "HomeBaseMaterial"
#~ msgstr "HomeBaseMaterial"
#~ msgid "BaseMaterial"
#~ msgstr "BaseMaterial"
#~ msgid "Vegetation"
#~ msgstr "Vegetation"
@ -18883,8 +18883,8 @@ msgstr "Dieses Kommandozeilen-Programm dient zum Bearbeiten von Gruppendateien.
#~ msgid "CorrosionRate"
#~ msgstr "CorrosionRate"
#~ msgid "HomeBaseProduction"
#~ msgstr "HomeBaseProduction"
#~ msgid "BaseProduction"
#~ msgstr "BaseProduction"
#~ msgid "Activate"
#~ msgstr "Activate"

View File

@ -134,6 +134,11 @@ Stand = {
<col><code>Plane</code></col>
<col>int</col>
<col>The Object's minor Z-Position. Negative values are behind the landscape, positive values before it. Use 1-399 for stuff behind Clonks, 401-999 for stuff before Clonks, and 1000+ for GUI objects.</col>
</row>
<row id="SolidMaskPlane">
<col><code>SolidMaskPlane</code></col>
<col>int</col>
<col>If the object moves and other objects are attached to its SolidMask, only objects in front of this plane are moved along with it. Defaults to Plane if zero.</col>
</row>
<row>
<literal_col>Placement</literal_col>

View File

@ -82,6 +82,16 @@
<literal_col>Put</literal_col>
<col></col>
<col>When the object puts another object into a container.</col>
</row>
<row id="DigOutObject">
<literal_col>DigOutObject</literal_col>
<col>object obj</col>
<col>When the object dug out another object that was stucked in solid material.</col>
</row>
<row id="DugOut">
<literal_col>DugOut</literal_col>
<col>object object_by</col>
<col>When the object was spawned from dug out material. The object might get removed afterwards if the material has Dig2ObjectCollect=2.</col>
</row>
<row id="Damage">
<literal_col>Damage</literal_col>
@ -449,6 +459,11 @@ func SaveScenarioObject(props)
<col>0</col>
<col>Object drawing mode (see <funclink>GetObjectBlitMode</funclink> and <funclink>SetObjectBlitMode</funclink>)</col>
</row>
<row id="defprops_MeshMaterial">
<literal_col>MeshMaterial</literal_col>
<col>GetID()->GetMeshMaterial()</col>
<col>Custom assignments of mesh materials (see <funclink>GetMeshMaterial</funclink> and <funclink>SetMeshMaterial</funclink>)</col>
</row>
<row id="defprops_Name">
<literal_col>Name</literal_col>
<col>GetID()->GetName()</col>

View File

@ -66,6 +66,11 @@
<col>C4ID</col>
<col>Optional ID that is passed to the script function. See <emlink href="playercontrols.xml#ExtraData">ExtraData</emlink>.</col>
</row>
<row>
<literal_col>CoordinateSpace</literal_col>
<col>Game, Viewport</col>
<col>For viewport the given coordinates are relative to the players top left corner of the window. Default ist Game.</col>
</row>
<row>
<literal_col>SendCursorPos</literal_col>
<col>Boolean</col>
@ -218,7 +223,7 @@
</row>
<row>
<literal_col>TriggerMode</literal_col>
<col>bitmask</col>
<col>Bitmask</col>
<col>
<text>
Trigger mode of this mapping. Bitmask based on the following values:

View File

@ -161,12 +161,12 @@
<col>Objects the player should initially be able to create.</col>
</row>
<row>
<literal_col>HomeBaseMaterial</literal_col>
<literal_col>BaseMaterial</literal_col>
<col>ID list</col>
<col>Materials available to buy at game start.</col>
</row>
<row>
<literal_col>HomeBaseProduction</literal_col>
<literal_col>BaseProduction</literal_col>
<col>ID list</col>
<col>Additional supply of materials to buy.</col>
</row>
@ -223,7 +223,7 @@
<row>
<literal_col>TopOpen</literal_col>
<col>Integer</col>
<col>0 or 1. Determines wether the top of the game world should be open.</col>
<col>0, 1 or 2. Determines wether the top of the game world should be open. Values analogous to BottomOpen.</col>
</row>
<row>
<literal_col>LeftOpen</literal_col>

View File

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>C4Id</title>
<category>Script</category>
<subcat>Strings</subcat>
<version>5.1 OC</version>
<syntax>
<rtype>id</rtype>
<params>
<param>
<type>string</type>
<name>id_string</name>
<desc>String to be converted into an id.</desc>
</param>
</params>
</syntax>
<desc>Converts a string into an id.</desc>
<examples>
<example>
<code>C4Id(&quot;Rock&quot;)</code>
<text>Returns the id 'Rock'.</text>
</example>
</examples>
</func>
<author>jwk</author><date>2002-04</date>
</funcs>

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>DeepEqual</title>
<category>Script</category>
<version>5.5 OC</version>
<syntax>
<rtype>bool</rtype>
<params>
<param>
<type>any</type>
<name>value1</name>
<desc>First value for comparison.</desc>
</param>
<param>
<type>any</type>
<name>value2</name>
<desc>Second value for comparison.</desc>
</param>
</params>
</syntax>
<desc>Compares two values. Unlike the <emlink href="script/operatoren.html#equality">==-operator</emlink>, DeepEqual compares the elements of proplists and arrays if two non-equal proplists are passed.</desc>
<examples>
<example>
<code>var foo={a=1};
var bar={a=1};
<funclink>Log</funclink>("Pointer comparison: %v, deep comparison: %v", foo==bar, DeepEqual(foo, bar));</code>
<text>Logs "Pointer comparison: false, deep comparison: true".</text>
</example>
</examples>
</func>
<author>Sven2</author><date>2014-04</date>
</funcs>

View File

@ -4,7 +4,7 @@
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>DoHomebaseMaterial</title>
<title>DoBaseMaterial</title>
<category>Player</category>
<version>5.1 OC</version>
<syntax>
@ -30,17 +30,19 @@
<desc>Changes availability of buyable objects at the home base.</desc>
<examples>
<example>
<code>DoHomebaseMaterial(0, Firestone, 1);</code>
<code><funclink>DoBaseMaterial</funclink>(0, Firestone, 1);</code>
<text>The player can now buy one flint more.</text>
</example>
</examples>
<related>
<funclink>GetHomebaseMaterial</funclink>
<funclink>GetHomebaseProduction</funclink>
<funclink>DoHomebaseProduction</funclink>
<funclink>GetBaseMaterial</funclink>
<funclink>SetBaseMaterial</funclink>
<funclink>GetBaseProduction</funclink>
<funclink>DoBaseProduction</funclink>
<funclink>SetBaseProduction</funclink>
<funclink>Buy</funclink>
<funclink>Sell</funclink>
</related>
</func>
<author>Sven2</author><date>2001-11</date>
<author>Maikel</author><date>2014-04</date>
</funcs>

View File

@ -4,7 +4,7 @@
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>DoHomebaseProduction</title>
<title>DoBaseProduction</title>
<category>Player</category>
<version>5.1 OC</version>
<syntax>
@ -30,17 +30,19 @@
<desc>Changes resupply speed of buyable objects at the home base.</desc>
<examples>
<example>
<code><funclink>DoHomebaseProduction</funclink>(0, Firestone, -<funclink>GetHomebaseProduction</funclink>(0, Firestone));</code>
<code><funclink>DoBaseProduction</funclink>(0, Firestone, -<funclink>GetBaseProduction</funclink>(0, Firestone));</code>
<text>No more flintstones are resupplied for the first player.</text>
</example>
</examples>
<related>
<funclink>GetHomebaseProduction</funclink>
<funclink>DoHomebaseMaterial</funclink>
<funclink>GetHomebaseMaterial</funclink>
<funclink>GetBaseProduction</funclink>
<funclink>SetBaseProduction</funclink>
<funclink>DoBaseMaterial</funclink>
<funclink>GetBaseMaterial</funclink>
<funclink>SetBaseMaterial</funclink>
<funclink>Buy</funclink>
<funclink>Sell</funclink>
</related>
</func>
<author>Clonk-Karl</author><date>2008-03</date>
<author>Maikel</author><date>2014-04</date>
</funcs>

View File

@ -4,7 +4,7 @@
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>GetHomebaseMaterial</title>
<title>GetBaseMaterial</title>
<category>Player</category>
<version>5.1 OC</version>
<syntax>
@ -38,17 +38,19 @@
<desc>With id specified, the function returns the number of objects of that type which the player can buy at his home base. In this case index and category are ignored. If id is not specified, the function returns the id of the indicated type of objects of the specified category buyable at the players home base. This will return object types which are generally buyable, even if currently no object of that type is available.</desc>
<examples>
<example>
<code><funclink>Log</funclink>(&quot;Player %s can buy %d firestones!&quot;,<funclink>GetPlayerName</funclink>(0), GetHomebaseMaterial(0,Firestone));</code>
<code><funclink>Log</funclink>(&quot;Player %s can buy %d firestones!&quot;,<funclink>GetPlayerName</funclink>(0), GetBaseMaterial(0,Firestone));</code>
<text>Returns the number of fire stones the first player can buy.</text>
<code>var def = GetHomebaseMaterial(0,nil,3,<funclink>C4D_Vehicle</funclink>);
<code>var def = GetBaseMaterial(0,nil,3,<funclink>C4D_Vehicle</funclink>);
<funclink>Log</funclink>(&quot;The third buyable vehicle of this player is a %i&quot;,def);</code>
<text>Gives the notice "The third buyable vehicle of this player is a ..."</text>
</example>
</examples>
<related>
<funclink>DoHomebaseMaterial</funclink>
<funclink>GetHomebaseProduction</funclink>
<funclink>DoHomebaseProduction</funclink>
<funclink>DoBaseMaterial</funclink>
<funclink>SetBaseMaterial</funclink>
<funclink>GetBaseProduction</funclink>
<funclink>DoBaseProduction</funclink>
<funclink>SetBaseProduction</funclink>
<funclink>C4D_All</funclink>
<funclink>C4D_Goal</funclink>
<funclink>C4D_Living</funclink>
@ -59,5 +61,5 @@
<funclink>C4D_Vehicle</funclink>
</related>
</func>
<author>Günther</author><date>2002-02</date>
<author>Maikel</author><date>2014-04</date>
</funcs>

View File

@ -4,7 +4,7 @@
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>GetHomebaseProduction</title>
<title>GetBaseProduction</title>
<category>Player</category>
<version>5.1 OC</version>
<syntax>
@ -38,14 +38,16 @@
<desc>With id specified, the function returns how quickly objects of that type are resupplied to the player's home base. In this case index and category are ignored. If id is not specified, the function returns the id of the indicated type of objects of the specified category in the player's resupply list. This will return all object types from the resupply list, even if they are currently not being resupplied.</desc>
<examples>
<example>
<code>if(!<funclink>GetHomebaseProduction</funclink>(0, Firestone)) <funclink>GetCursor</funclink>(0)-&gt;<funclink>CreateContents</funclink>(Firestone);</code>
<code>if(!<funclink>GetBaseProduction</funclink>(0, Firestone)) <funclink>GetCursor</funclink>(0)-&gt;<funclink>CreateContents</funclink>(Firestone);</code>
<text>Gives a flintstone to the selected clonk of the first player if currently no flintstones are resupplied to the player's home base.</text>
</example>
</examples>
<related>
<funclink>GetHomebaseMaterial</funclink>
<funclink>DoHomebaseMaterial</funclink>
<funclink>DoHomebaseProduction</funclink>
<funclink>GetBaseMaterial</funclink>
<funclink>DoBaseMaterial</funclink>
<funclink>SetBaseMaterial</funclink>
<funclink>DoBaseProduction</funclink>
<funclink>SetBaseProduction</funclink>
<funclink>C4D_All</funclink>
<funclink>C4D_Goal</funclink>
<funclink>C4D_Living</funclink>
@ -56,5 +58,5 @@
<funclink>C4D_Vehicle</funclink>
</related>
</func>
<author>Clonk-Karl</author><date>2008-03</date>
<author>Maikel</author><date>2014-04</date>
</funcs>

View File

@ -33,7 +33,7 @@ var spawn_weapon = weapon_list[<funclink>Random</funclink>(<funclink>GetLength</
</example>
</examples>
<related>
<funclink>GetHomebaseMaterial</funclink>
<funclink>GetBaseMaterial</funclink>
<funclink>GetPlrKnowledge</funclink>
<funclink>C4D_Goal</funclink>
<funclink>C4D_Living</funclink>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>GetLeagueProgressData</title>
<category>Network</category>
<subcat>League</subcat>
<version>5.5 OC</version>
<syntax>
<rtype>string</rtype>
<params>
<param>
<type>int</type>
<name>player_id</name>
<desc>ID of player whose progress data shall be returned. Use <funclink>GetPlayerID</funclink>() to get the ID of a joined player.</desc>
</param>
</params>
</syntax>
<desc>Gets the league progress data. See <funclink>SetLeagueProgressData</funclink> for more information.</desc>
<related><funclink>SetLeagueProgressData</funclink><funclink>GetLeagueScore</funclink></related>
</func>
<author>Sven2</author><date>2014-04</date>
</funcs>

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>GetLeagueScore</title>
<category>Network</category>
<subcat>League</subcat>
<version>5.5 OC</version>
<syntax>
<rtype>int</rtype>
<params>
<param>
<type>int</type>
<name>player_id</name>
<desc>ID of player whose score shall shall be returned.</desc>
<optional />
</param>
</params>
</syntax>
<desc>Returns the league score of the given player. This function can be used for custom scoring e.g. in competition leagues.</desc>
<remark>Use <funclink>GetPlayerID</funclink>() to get the ID of a joined player.</remark>
<related><funclink>GetLeagueProgressData</funclink><funclink>SetLeaguePerformance</funclink></related>
</func>
<author>Sven2</author><date>2014-04</date>
</funcs>

View File

@ -19,7 +19,7 @@
</param>
</params>
</syntax>
<desc>Returns the material currently set for the calling object.</desc>
<desc>Returns the material currently set for the calling object. May also be called from definition context to return the default material of the graphics of this definition.</desc>
<examples>
<example>
<code><funclink>if</funclink>(<funclink>GetMeshMaterial</funclink>() == &quot;Clonk_Body&quot;)
@ -28,8 +28,14 @@ else
<funclink>SetMeshMaterial</funclink>(&quot;Clonk_Body&quot;);</code>
<text>If a clonk has its eyes open then this script makes it close them, otherwise they are opened.</text>
</example>
<example>
<code><funclink>for</funclink> (var i=0,mat; mat=<funclink>GetID</funclink>()->GetMeshMaterial(i); ++i)
<funclink>SetMeshMaterial</funclink>(mat, i);</code>
<text>Resets the mesh material of all submeshes of this object to their respective defaults.</text>
</example>
</examples>
<related><funclink>SetMeshMaterial</funclink></related>
</func>
<author>Clonk-Karl</author><date>2010-04</date>
<author>Sven2</author><date>2014-04</date>
</funcs>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>LogCallStack</title>
<category>Developer</category>
<version>5.3 OC</version>
<syntax>
<rtype>bool</rtype>
</syntax>
<desc>Prints out the current call stack without breaking execution flow.</desc>
<examples>
<example>
<code>func Destruction()
{
Log("Destruction of %v!", GetID());
LogCallStack();
return _inherited(...);
}</code>
<text>Helper function during development: When this object gets destructed, a call stack is printed. This may be useful to find out where a particular object removal call was coming from.</text>
</example>
</examples>
<related>
<funclink>FatalError</funclink>
</related>
</func>
<author>Sven2</author><date>2014-01</date>
</funcs>

View File

@ -50,6 +50,7 @@ for(var living in <funclink>FindObjects</funclink>(<funclink>Find_OCF</funclink>
<funclink>GetMaterial</funclink>
<funclink>GBackSolid</funclink>
<funclink>GetPathLength</funclink>
<funclink>PathFree2</funclink>
</related>
</func>
<author>Sven2</author><date>2002-08</date>

View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>PathFree2</title>
<category>Landscape</category>
<version>5.1 OC</version>
<syntax>
<rtype>array</rtype>
<params>
<param>
<type>int</type>
<name>x1</name>
<desc>X coordinate of the start point</desc>
</param>
<param>
<type>int</type>
<name>y1</name>
<desc>Y coordinate of the start point</desc>
</param>
<param>
<type>int</type>
<name>x2</name>
<desc>X coordinate of the end point</desc>
</param>
<param>
<type>int</type>
<name>y2</name>
<desc>Y coordinate of the end point</desc>
</param>
</params>
</syntax>
<desc>Works like <emlink href="script/fn/PathFree.html">PathFree</emlink>, but instead returns an array containing the coordinates of the first solid pixel found on line. Returns nil if the path is free.</desc>
<remark>All coordinates are global, even in local calls.</remark>
<examples>
<example>
<code>var x = <funclink>Random</funclink>(<funclink>LandscapeWidth</funclink>()),
pos = PathFree2(x, 0, x, <funclink>LandscapeHeight</funclink>());
if(pos)
<funclink>CreateObject</funclink>(Idol, pos[0], pos[1]);
</code>
<text>Creates an Idol somewhere on the surface of the landscape.</text>
</example>
</examples>
<related>
<funclink>GetMaterial</funclink>
<funclink>GBackSolid</funclink>
<funclink>GetPathLength</funclink>
<funclink>PathFree</funclink>
</related>
</func>
<author>Apfelclonk</author><date>2014-04</date>
</funcs>

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>SetBaseMaterial</title>
<category>Player</category>
<version>5.1 OC</version>
<syntax>
<rtype>bool</rtype>
<params>
<param>
<type>int</type>
<name>player</name>
<desc>Number of the player whose home base material you want to set.</desc>
</param>
<param>
<type>id</type>
<name>definition</name>
<desc>id of the buyable object type you want to adjust.</desc>
</param>
<param>
<type>int</type>
<name>cnt</name>
<desc>Set the available amount (positive).</desc>
</param>
</params>
</syntax>
<desc>Sets the availability of buyable objects at the home base.</desc>
<examples>
<example>
<code><funclink>SetBaseMaterial</funclink>(0, Firestone, 10);</code>
<text>The first player can now buy ten flints.</text>
</example>
</examples>
<related>
<funclink>GetBaseMaterial</funclink>
<funclink>DoBaseMaterial</funclink>
<funclink>GetBaseProduction</funclink>
<funclink>SetBaseProduction</funclink>
<funclink>DoBaseProduction</funclink>
<funclink>Buy</funclink>
<funclink>Sell</funclink>
</related>
</func>
<author>Maikel</author><date>2014-04</date>
</funcs>

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>SetBaseProduction</title>
<category>Player</category>
<version>5.1 OC</version>
<syntax>
<rtype>bool</rtype>
<params>
<param>
<type>int</type>
<name>player</name>
<desc>Number of the player whose home base resupply list you want to set.</desc>
</param>
<param>
<type>id</type>
<name>type</name>
<desc>id of the object type you want to adjust.</desc>
</param>
<param>
<type>int</type>
<name>cnt</name>
<desc>Set the resupply value (positive).</desc>
</param>
</params>
</syntax>
<desc>Sets resupply speed of buyable objects at the home base.</desc>
<examples>
<example>
<code><funclink>SetBaseProduction</funclink>(0, Firestone, 0);</code>
<text>No more flintstones are resupplied for the first player.</text>
</example>
</examples>
<related>
<funclink>GetBaseProduction</funclink>
<funclink>DoBaseProduction</funclink>
<funclink>DoBaseMaterial</funclink>
<funclink>SetBaseMaterial</funclink>
<funclink>GetBaseMaterial</funclink>
<funclink>Buy</funclink>
<funclink>Sell</funclink>
</related>
</func>
<author>Maikel</author><date>2014-04</date>
</funcs>

View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>SetLeaguePerformance</title>
<category>Network</category>
<subcat>League</subcat>
<version>5.5 OC</version>
<syntax>
<rtype>bool</rtype>
<params>
<param>
<type>int</type>
<name>score</name>
<desc>New player or scenario score</desc>
</param>
<param>
<type>int</type>
<name>player_id</name>
<desc>ID of player whose score shall be set. If not given, global performance for all players is set.</desc>
<optional />
</param>
</params>
</syntax>
<desc>Sets the league score. This function can be used for custom scenario scoring in competition or adventure leagues.</desc>
<remark>Use <funclink>GetPlayerID</funclink>() to get the ID of a joined player.</remark>
<examples>
<example>
<code>#appendto Rock
static g_rocks_collected;
func Entrance(clonk)
{
var plr = clonk-><funclink>GetController</funclink>();
if (clonk-><funclink>GetID</funclink>() == Clonk &amp;&amp; plr != NO_OWNER)
{
++g_rocks_collected;
<funclink>Log</funclink>("%s found a rock! Score: %d", <funclink>GetTaggedPlayerName</funclink>(plr), g_rocks_collected);
SetLeaguePerformance(g_rocks_collected);
return <funclink>RemoveObject</funclink>();
}
return <funclink>_inherited</funclink>(clonk, ...);
}</code>
<text>Rock script modification: Whenever a rock is collected by a Clonk, the score of all players is increased.</text>
</example>
</examples>
<related><funclink>SetLeagueProgressData</funclink><funclink>GetLeagueScore</funclink></related>
</func>
<author>Sven2</author><date>2014-04</date>
</funcs>

View File

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>SetLeagueProgressData</title>
<category>Network</category>
<subcat>League</subcat>
<version>5.5 OC</version>
<syntax>
<rtype>bool</rtype>
<params>
<param>
<type>string</type>
<name>new_data</name>
<desc>New data string for this player in this scenario.</desc>
</param>
<param>
<type>int</type>
<name>player_id</name>
<desc>ID of player whose progress data shall be set. Use <funclink>GetPlayerID</funclink>() to get the ID of a joined player.</desc>
</param>
</params>
</syntax>
<desc>Sets the league progress data. This function can be used to store a per-scenario per-user data string in the league. The function is available for both melee and custom settlement leagues. The data is stored between league games and can later be retrieved using <funclink>GetLeagueProgressData</funclink>().</desc>
<remark>Each scenario may store up to 2048 characters. The string may only contain alphanumeric characters plus space (" ") and underscore ("_"). Invalid characters will be removed by the league and not returned when <funclink>GetLeagueProgressData</funclink> is called after the next scenario start.</remark>
<examples>
<example>
<code>func SetLeagueProgressScore(int plr, int new_progress)
{
// Safety: Valid players only
var plrid = <funclink>GetPlayerID</funclink>(plr);
if (!plrid) return;
// Progress must be between 0 and 25
new_progress = <funclink>BoundBy</funclink>(new_progress, 0, 25);
// Get old progress from previous round
var progress_string = <funclink>GetLeagueProgressData</funclink>(plrid);
if (progress_string &amp;&amp; <funclink>GetLength</funclink>(progress_string))
{
var old_progress = <funclink>GetChar</funclink>(progress_string)-<funclink>GetChar</funclink>("A");
// If old progress was better than new progress, keep old progress
new_progress = <funclink>Max</funclink>(old_progress, new_progress);
}
// Set new progress
SetLeagueProgressData(<funclink>Format</funclink>("%c", <funclink>GetChar</funclink>("A") + new_progress));
<funclink>SetLeaguePerformance</funclink>(new_progress);
return true;
}</code>
<text>Helper script for a scenario that is using custom scoring in the league. LeagueProgressData is used to remember the last progress and ensure that progress never decreases.</text>
</example>
</examples>
<related><funclink>GetLeagueProgressData</funclink><funclink>SetLeaguePerformance</funclink></related>
</func>
<author>Sven2</author><date>2014-04</date>
</funcs>

View File

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE funcs
SYSTEM '../../../clonk.dtd'>
<?xml-stylesheet type="text/xsl" href="../../../clonk.xsl"?>
<funcs>
<func>
<title>SetPlayerZoom</title>
<category>Player</category>
<subcat>View</subcat>
<version>5.5 OC</version>
<syntax>
<rtype>bool</rtype>
<params>
<param>
<type>int</type>
<name>player</name>
<desc>Player whose zoom or zoom limits are to be adjusted. NO_OWNER for all players.</desc>
</param>
<param>
<type>int</type>
<name>zoom</name>
<desc>New zoom factor. A factor of zero disables direct zoom definition and reverts to the default method of calculating zoom by view range.</desc>
</param>
<param>
<type>int</type>
<name>precision</name>
<desc>Value by which zoom is divided to achieve fractional numbers.</desc>
<optional />
</param>
<param>
<type>int</type>
<name>flags</name>
<desc>Flags controlling function behaviour:
<table>
<rowh>
<col>Flag</col>
<col>Description</col>
</rowh>
<row>
<literal_col>PLRZOOM_Direct</literal_col>
<col>The zoom does not scroll slowly towards the new value, but is set directly.</col>
</row>
<row>
<literal_col>PLRZOOM_NoIncrease</literal_col>
<col>The new zoom is only to be set if it is smaller than the current value.</col>
</row>
<row>
<literal_col>PLRZOOM_NoDecrease</literal_col>
<col>The new zoom is only to be set if it is greater than the current value.</col>
</row>
<row>
<literal_col>PLRZOOM_LimitMin</literal_col>
<col>Set the minimum limit for zooming. The player cannot zoom out further than this.</col>
</row>
<row>
<literal_col>PLRZOOM_LimitMax</literal_col>
<col>Set the maximum limit for zooming. The player cannot zoom in further than this.</col>
</row>
</table>
</desc>
</param>
</params>
</syntax>
<desc>Changes zoom or zoom limits vor all viewports of a player to direct values.</desc>
<remark>Setting zoom to a direct value causes the game to look different depending on which screen resolution the player has configured. Use this function only if you want to achieve direct pixel correspondance between the game world and the screen, e.g. because your scenario provides low resolution graphics only or because your scenario should be played in certain screen resolutions only. Regular scenarios should use <funclink>SetPlayerZoomByViewRange</funclink> to achieve visuals whcih are independent of the player's monitor size.</remark>
<examples>
<example>
<code>func InitializePlayer(int plr)
{
SetPlayerZoom(plr, 1,1, PLRZOOM_LimitMin | PLRZOOM_LimitMax);
<funclink>SetPlayerViewLock</funclink>(plr, true);
return true;
}</code>
<text>Code for a scenario script: The zoom is fixed to 1, i.e. one landscape pixel corresponds to one pixel on the screen. Zooming in or out is not possible.</text>
</example>
</examples>
<related>
<funclink>SetPlayerZoomByViewRange</funclink>
<funclink>SetPlayerViewLock</funclink>
<funclink>SetPlrView</funclink>
<funclink>SetPlrViewRange</funclink>
<funclink>SetFoW</funclink>
</related>
</func>
<author>Sven2</author><date>2010-09</date>
</funcs>

View File

@ -60,7 +60,7 @@
</param>
</params>
</syntax>
<desc>Disabled or enabled locked view for one or all players. If the view is locked, the player cannot scroll around to explore the map.</desc>
<desc>Adjusts the zoom or zoom limit of all viewports of a player.</desc>
<examples>
<example>
<code>func InitializePlayer(int plr)
@ -74,6 +74,7 @@
</example>
</examples>
<related>
<funclink>SetPlayerZoom</funclink>
<funclink>SetPlayerViewLock</funclink>
<funclink>SetPlrView</funclink>
<funclink>SetPlrViewRange</funclink>

View File

@ -162,28 +162,14 @@
<row>
<col>9l</col>
<col id="==">==</col>
<col>Returns whether a equals b.</col>
<col>Returns whether a equals b. For proplists and arrays, pointers are compared. Use <funclink>DeepEqual</funclink> to compare contents.</col>
<col>postfix</col>
<col>bool, any/any</col>
</row>
<row>
<col>9l</col>
<col id="!=">!=</col>
<col>Returns whether a is unequal to b.</col>
<col>postfix</col>
<col>bool, any/any</col>
</row>
<row>
<col>9l</col>
<col id="===">===</col>
<col>Returns whether a and b refer to the same thing.</col>
<col>postfix</col>
<col>bool, any/any</col>
</row>
<row>
<col>9l</col>
<col id="!==">!==</col>
<col>Returns whether a and b do not refer to the same thing.</col>
<col>Returns whether a is unequal to b. For proplists and arrays, pointers are compared. Use !<funclink>DeepEqual</funclink> to compare contents.</col>
<col>postfix</col>
<col>bool, any/any</col>
</row>

View File

@ -39,16 +39,13 @@ if ($link && $db) {
die();
}
$server->cleanUp(true); //Cleanup old stuff
// register new release
if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'release-file') {
try {
registerRelease();
} catch(Exception $e) {
C4Network::sendAnswer(C4Network::createError($e->getMessage()));
}
// prepare data for the engine
} else if (isset($GLOBALS['HTTP_RAW_POST_DATA'])) {
} else if (isset($GLOBALS['HTTP_RAW_POST_DATA'])) { //data sent from engine?
$input = $GLOBALS['HTTP_RAW_POST_DATA'];
$action = ParseINI::parseValue('Action', $input);
$csid = ParseINI::parseValue('CSID', $input);
@ -59,17 +56,17 @@ if ($link && $db) {
switch ($action) {
case 'Start': //start a new round
if (ParseINI::parseValue('LeagueAddress', $reference)) {
C4Network::sendAnswer(C4Network::createError('IDS_MSG_LEAGUENOTSUPPORTED'));
C4Network::sendAnswer(C4Network::createError('League not supported!'));
} else {
$csid = $server->addReference($reference);
if ($csid) {
$answer = array('Status' => 'Success', 'CSID' => $csid);
if(!testHostConn($input))
$answer['Message'] = 'IDS_MSG_MASTERSERVNATERROR';
$answer['Message'] = 'Your network failed to pass certain tests. It is unlikely that are you able to host for the public.|To fix that, you need port forwarding in your router.';
C4Network::sendAnswer(C4Network::createAnswer($answer));
unset($answer);
} else {
C4Network::sendAnswer(C4Network::createError('IDS_MSG_MATERSERVSIGNUPFAIL'));
C4Network::sendAnswer(C4Network::createError('Round signup failed. (To many tries?)'));
}
}
break;
@ -77,26 +74,26 @@ if ($link && $db) {
if ($server->updateReference($csid, $reference)) {
C4Network::sendAnswer(C4Network::createAnswer(array('Status' => 'Success')));
} else {
C4Network::sendAnswer(C4Network::createError('IDS_MSG_MASTERSERVUPDATEFAIL'));
C4Network::sendAnswer(C4Network::createError('Round update failed.'));
}
break;
case 'End': //remove a round
if ($server->removeReference($csid)) {
C4Network::sendAnswer(C4Network::createAnswer(array('Status' => 'Success')));
} else {
C4Network::sendAnswer(C4Network::createError('IDS_MSG_MASTERSERVENDFAIL'));
C4Network::sendAnswer(C4Network::createError('Round end failed.'));
}
break;
default:
if (!empty($action)) {
C4Network::sendAnswer(C4Network::createError('IDS_MSG_MASTERSERVNOOP'));
C4Network::sendAnswer(C4Network::createError('Unknown action.'));
} else {
C4Network::sendAnswer(C4Network::createError('IDS_MSG_MASTERSERVNOOP'));
C4Network::sendAnswer(C4Network::createError('No action defined.'));
}
break;
}
} else {
C4Network::sendAnswer(C4Network::createError('IDS_MSG_MASTERSERVWRONGENGINE'));
C4Network::sendAnswer(C4Network::createError('Wrong engine, "' . ParseINI::parseValue('Game', $input) . '" expected.'));
}
} else { //list availabe games
$list = array();

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

@ -36,7 +36,7 @@ material FlagRight
scene_blend alpha_blend
texture_unit
{
texture FlagAmetyst.png
texture FlagAmethyst.png
tex_address_mode wrap
filtering trilinear
}

View File

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View File

@ -0,0 +1,15 @@
[Material]
Name=Amethyst
Shape=Rough
Density=70
Friction=15
BlastFree=1
<<<<<<< HEAD:planet/Arena.ocf/Hideout.ocs/Material.ocg/Ametyst.ocm
Blast2Object=Chunk_Ice
=======
>>>>>>> remotes/origin/master:planet/Arena.ocf/Hideout.ocs/Material.ocg/Amethyst.ocm
MaxAirSpeed=100
MaxSlide=1
Corrode=60
Placement=21
TextureOverlay=Amethyst

View File

@ -1,12 +0,0 @@
[Material]
Name=Ametyst
Shape=Rough
Density=70
Friction=15
BlastFree=1
Blast2Object=Chunk_Ice
MaxAirSpeed=100
MaxSlide=1
Corrode=60
Placement=21
TextureOverlay=Ametyst

View File

@ -4,7 +4,10 @@ Shape=Rough
Density=70
Friction=15
BlastFree=1
<<<<<<< HEAD
Blast2Object=Chunk_Ice
=======
>>>>>>> remotes/origin/master
MaxAirSpeed=100
MaxSlide=1
Corrode=60

View File

@ -58,7 +58,7 @@ OverloadTextures
65=Ruby-Ruby
66=Ice-ice2
67=Ametyst-Ametyst
67=Amethyst-Amethyst
68=Ice-ice3
70=Snow-snow1

View File

@ -1,2 +1,2 @@
NameLeft=Team Ruby
NameRight=Team Ametyst
NameRight=Team Amethyst

View File

@ -0,0 +1,15 @@
[Developer/Maintainer]
Maikel
[Folder Information]
This folder contains objects with decorative purposes only.
[Information for developers]
In this folder you should add objects which have a decorative purpose, this does not mean they cannot have
any interactions whatsoever. However, these objects do not play any role in the normal Objects.ocd and do
not depend on any other objects (under ideal circumstances). Please make sure you give your object a unique
identifier and place it in the most fitting sub folder of Decoration.ocd or create a new sub folder if
there is need for that.
If you want to contribute to this folder feel free to do so and in case of questions contact the maintainer
in IRC or the forum.

View File

@ -0,0 +1,13 @@
[DefCore]
id=StrawMan
Version=5,4,0,0
Category=C4D_StaticBack
Width=12
Height=20
Offset=-6,-10
Vertices=5
VertexX=0,0,-4,4
VertexY=-9,9,-2,-2
VertexFriction=50,50,50,50
Mass=15
Rotate=1

View File

@ -0,0 +1,22 @@
material Strawman
{
receive_shadows on
technique
{
pass
{
scene_blend alpha_blend
cull_hardware none
ambient 1.000000 1.000000 1.000000 1.000000
diffuse 0.800000 0.800000 0.800000 1.000000
specular 0.000000 0.000000 0.000000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit
{
texture strawman.png
tex_address_mode wrap
filtering trilinear
}
}
}
}

View File

@ -0,0 +1,66 @@
/**
Straw man
Clonk sized puppet that bursts if:
* struck by a weapon (sword, axe)
* hit by a projectile
* hit by a shockwave
Also incinerates on contact and blasts.
@author Ringwall, Maikel
*/
protected func Initialize()
{
// Position straw man facing screen plus deviations around y-axis.
SetProperty("MeshTransformation", Trans_Rotate(30 + Random(76), 0, 1, 0));
return;
}
// Create straw particles and remove object when burst.
public func Burst()
{
CreateParticle("Straw", 0, 0, PV_Random(-30, 30), PV_Random(-30, 30), PV_Random(30, 120), Particles_Straw(), 200);
return RemoveObject();
}
// Receptive to projectiles.
public func IsProjectileTarget() { return true; }
// Burst on projectile hits.
public func OnProjectileHit()
{
Burst();
}
// Burst on punching damage: sword or axe.
// Remove object after con < 30 from fire damage.
public func Damage(int change, int type)
{
if (type == FX_Call_EngGetPunched)
return Burst();
if (type == FX_Call_DmgFire && GetCon() < 30)
{
CastPXS("Ashes", 20, 15);
return RemoveObject();
}
}
// Receptive to shockwaves.
public func CanBeHitByShockwaves() { return true; }
// Burst on shockwaves.
public func OnShockwaveHit(int level, int x, int y)
{
Burst();
return true;
}
/*-- Properties --*/
local Name = "$Name$";
local Description = "$Description$";
local Plane = 300;
local BlastIncinerate = 1;
local ContactIncinerate = 2;

View File

@ -0,0 +1,2 @@
Name=Strohmann
Description=Straw puppet that may scare birds from your fields.

View File

@ -0,0 +1,2 @@
Name=Straw man
Description=Straw puppet that may scare birds from your fields.

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,6 +1,6 @@
[DefCore]
id=Ruin3
Version=5,2,90,21
id=Ruin_ChemicalLab
Version=5,4,0,0
Category=C4D_Structure
Width=50
Height=52
@ -9,6 +9,4 @@ Vertices=6
VertexX=-1,10,20,-23,-23,0
VertexY=-17,-25,-14,25,25,25
VertexFriction=50,50,50,100,100,100
Value=20
Mass=500
Components=Wood=3;Metal=3

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -0,0 +1,13 @@
/**
ChemicalLab Ruin
@author Sven2
*/
/*-- Properties --*/
local Name = "$Name$";
local Description = "$Description$";
local BlastIncinerate = 100;
local HitPoints = 70;

View File

@ -0,0 +1,2 @@
Name=Chemielabor Ruine
Description=Relikt vergangener Siedlungen.

View File

@ -0,0 +1,2 @@
Name==Chemical lab ruin
Description=Relic of past settlements.

View File

@ -1,6 +1,6 @@
[DefCore]
id=Ruin2
Version=5,2,0,1
id=Ruin_Windmill
Version=5,4,0,0
Category=C4D_Structure
Width=80
Height=96
@ -9,6 +9,4 @@ Vertices=5
VertexX=0,25,15,-15,-25
VertexY=-10,-20,47,47,-20
VertexFriction=50,50,100,100,50
Value=5
Mass=100
Components=Rock=6;Wood=2;
Mass=500

View File

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 88 KiB

View File

@ -0,0 +1,13 @@
/**
Windmill Ruin
@author Sven2
*/
/*-- Properties --*/
local Name = "$Name$";
local Description = "$Description$";
local BlastIncinerate = 100;
local HitPoints = 70;

View File

@ -0,0 +1,2 @@
Name=Windmühle Ruine
Description=Relikt vergangener Siedlungen.

View File

@ -0,0 +1,2 @@
Name=Windmill ruin
Description=Relic of past settlements.

View File

@ -1,6 +1,6 @@
[DefCore]
id=Ruin1
Version=5,2,0,1
id=Ruin_WoodenCabin
Version=5,4,0,0
Category=C4D_Structure
Width=94
Height=43
@ -9,7 +9,5 @@ Vertices=7
VertexX=-26,26,-22,23,-38,-38,40
VertexY=-7,-6,19,19,4,19,19
VertexFriction=50,50,100,100
Value=20
Mass=1000
Components=Wood=5;Rock=4
Rotate=1

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -0,0 +1,13 @@
/**
WoodenCabin Ruin
@author Sven2
*/
/*-- Properties --*/
local Name = "$Name$";
local Description = "$Description$";
local BlastIncinerate = 100;
local HitPoints = 70;

View File

@ -0,0 +1,2 @@
Name=Holzhütte Ruine
Description=Relikt vergangener Siedlungen.

View File

@ -0,0 +1,2 @@
Name=Wooden cabin ruin
Description=Relic of past settlements.

View File

@ -14,6 +14,7 @@ Rules=Rule_TeamAccount=1;Rule_BuyAtFlagpole=1;
[Player1]
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;GrapleBow=1;InventorsLab=1;Lorry=1;RopeLadder=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50
HomeBaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50
@ -35,6 +36,29 @@ Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;GrapleBow=1;InventorsLab=1;Lorry=1;RopeLadder=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50
HomeBaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50
=======
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;GrapleBow=1;InventorsLab=1;Lorry=1;RopeLadder=1
BaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50
BaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50
[Player2]
Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;GrapleBow=1;InventorsLab=1;Lorry=1;RopeLadder=1
BaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50
BaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50
[Player3]
Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;GrapleBow=1;InventorsLab=1;Lorry=1;RopeLadder=1
BaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50
BaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50
[Player4]
Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;GrapleBow=1;InventorsLab=1;Lorry=1;RopeLadder=1
BaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50
BaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50
>>>>>>> remotes/origin/master
[Landscape]
Sky=Clouds1

View File

@ -228,15 +228,15 @@ func InitializeObjects()
EnvPack_Candle_Shine0102->SetClrModulation(0xddffffff);
EnvPack_Candle_Shine0102->SetObjectBlitMode(GFX_BLIT_Additive);
g_ruin1 = CreateObject(Ruin1, 97, 1179);
g_ruin1 = CreateObject(Ruin_WoodenCabin, 97, 1179);
g_ruin1->SetR(16);
g_ruin1.StaticSaveVar = "g_ruin1";
g_ruin1->SetPosition(97, 1150);
g_ruin2 = CreateObject(Ruin2, 353, 1145);
g_ruin2 = CreateObject(Ruin_Windmill, 353, 1145);
g_ruin2.StaticSaveVar = "g_ruin2";
g_ruin3 = CreateObject(Ruin3, 267, 1180);
g_ruin3 = CreateObject(Ruin_ChemicalLab, 267, 1180);
g_ruin3.StaticSaveVar = "g_ruin3";
CreateObject(Foundry, 238, 1287);

View File

@ -1,6 +0,0 @@
/*-- Ruin --*/
local Name = "$Name$";
local Description ="$Description$";
local BlastIncinerate = 100;
local HitPoints = 70;

View File

@ -1,2 +0,0 @@
Name=Ruine
Description=Relikt vergangener Siedlungen.

View File

@ -1,2 +0,0 @@
Name=Ruin
Description=Relic of past settlements.

View File

@ -1,6 +0,0 @@
/*-- Ruin --*/
local Name = "$Name$";
local Description ="$Description$";
local BlastIncinerate = 100;
local HitPoints = 70;

View File

@ -1,2 +0,0 @@
Name=Ruine
Description=Relikt vergangener Siedlungen.

View File

@ -1,2 +0,0 @@
Name=Ruin
Description=Relic of past settlements.

View File

@ -1,6 +0,0 @@
/*-- Ruin --*/
local Name = "$Name$";
local Description ="$Description$";
local BlastIncinerate = 100;
local HitPoints = 70;

View File

@ -1,2 +0,0 @@
Name=Ruine
Description=Relikt vergangener Siedlungen.

View File

@ -1,2 +0,0 @@
Name=Ruin
Description=Relic of past settlements.

View File

@ -5,6 +5,10 @@ Version=5,3,90
Difficulty=75
NoInitialize=true
[Definitions]
Definition1=Objects.ocd
Definition2=Decoration.ocd
[Game]
Rules=Rule_TeamAccount=1;Rule_NoPowerNeed=1;

View File

@ -13,6 +13,7 @@ Rules=Rule_TeamAccount=1;Rule_BuyAtFlagpole=1;
[Player1]
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=5;Bread=5;
HomeBaseProduction=Clonk=5;Bread=5;
@ -34,6 +35,29 @@ Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=5;Bread=5;
HomeBaseProduction=Clonk=5;Bread=5;
=======
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1
BaseMaterial=Clonk=5;Bread=5;
BaseProduction=Clonk=5;Bread=5;
[Player2]
Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1
BaseMaterial=Clonk=5;Bread=5;
BaseProduction=Clonk=5;Bread=5;
[Player3]
Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1
BaseMaterial=Clonk=5;Bread=5;
BaseProduction=Clonk=5;Bread=5;
[Player4]
Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;Elevator=1;Pump=1;ToolsWorkshop=1;WallKit=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Bucket=1;Dynamite=1;Hammer=1;JarOfWinds=1;Pickaxe=1;Pipe=1;Shovel=1;TeleGlove=1;DynamiteBox=1
BaseMaterial=Clonk=5;Bread=5;
BaseProduction=Clonk=5;Bread=5;
>>>>>>> remotes/origin/master
[Landscape]
Sky=Clouds1

View File

@ -14,6 +14,7 @@ ValueOverloads=Ruby=5;Amethyst=5;
[Player1]
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;InventorsLab=1;Elevator=1;ToolsWorkshop=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Dynamite=1;Hammer=1;JarOfWinds=1;Shovel=1;TeleGlove=1;GrappleBow=1;Ropeladder=1;Catapult=1;Pickaxe=1;DynamiteBox=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
HomeBaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
@ -35,6 +36,29 @@ Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;InventorsLab=1;Elevator=1;ToolsWorkshop=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Dynamite=1;Hammer=1;JarOfWinds=1;Shovel=1;TeleGlove=1;GrappleBow=1;Ropeladder=1;Catapult=1;Pickaxe=1;DynamiteBox=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
HomeBaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
=======
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;InventorsLab=1;Elevator=1;ToolsWorkshop=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Dynamite=1;Hammer=1;JarOfWinds=1;Shovel=1;TeleGlove=1;GrappleBow=1;Ropeladder=1;Catapult=1;Pickaxe=1;DynamiteBox=1;
BaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
BaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
[Player2]
Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;InventorsLab=1;Elevator=1;ToolsWorkshop=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Dynamite=1;Hammer=1;JarOfWinds=1;Shovel=1;TeleGlove=1;GrappleBow=1;Ropeladder=1;Catapult=1;Pickaxe=1;DynamiteBox=1;
BaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
BaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
[Player3]
Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;InventorsLab=1;Elevator=1;ToolsWorkshop=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Dynamite=1;Hammer=1;JarOfWinds=1;Shovel=1;TeleGlove=1;GrappleBow=1;Ropeladder=1;Catapult=1;Pickaxe=1;DynamiteBox=1;
BaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
BaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
[Player4]
Crew=Clonk=2
Knowledge=Flagpole=1;Foundry=1;WindGenerator=1;SteamEngine=1;Compensator=1;Sawmill=1;ChemicalLab=1;InventorsLab=1;Elevator=1;ToolsWorkshop=1;GoldBar=1;Loam=1;Metal=1;Axe=1;Barrel=1;Dynamite=1;Hammer=1;JarOfWinds=1;Shovel=1;TeleGlove=1;GrappleBow=1;Ropeladder=1;Catapult=1;Pickaxe=1;DynamiteBox=1;
BaseMaterial=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
BaseProduction=Clonk=50;Bread=50;Wood=50;Metal=50;DynamiteBox=50;Dynamite=50;
>>>>>>> remotes/origin/master
[Landscape]
Sky=Clouds1

View File

@ -13,30 +13,54 @@ Rules=Rule_EnergyNeed=1;Rule_TeamAccount=1;Rule_BuyAtFlagpole=1;
[Player1]
Position=193,42
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Idol=1;Foundry=1;ToolsWorkshop=1;Flagpole=1;Sawmill=1;Elevator=1;Pump=1;ChemicalLab=1;Armory=1;InventorsLab=1;Lorry=1;Cannon=1;Catapult=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;Firestone=1;Barrel=1;MetalBarrel=1;Dynamite=1;DynamiteBox=1;Pipe=1;GrappleBow=1;PowderKeg=1;Ropeladder=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=2;Bread=2;
HomeBaseProduction=Clonk=2;Bread=2;
=======
Knowledge=Idol=1;Foundry=1;ToolsWorkshop=1;Flagpole=1;Sawmill=1;Elevator=1;Pump=1;ChemicalLab=1;Armory=1;InventorsLab=1;Lorry=1;Cannon=1;Catapult=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;Firestone=1;Barrel=1;MetalBarrel=1;Dynamite=1;DynamiteBox=1;Pipe=1;GrappleBow=1;PowderKeg=1;Ropeladder=1;
BaseMaterial=Clonk=2;Bread=2;
BaseProduction=Clonk=2;Bread=2;
>>>>>>> remotes/origin/master
[Player2]
Position=193,42
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Idol=1;Foundry=1;ToolsWorkshop=1;Flagpole=1;Sawmill=1;Elevator=1;Pump=1;ChemicalLab=1;Armory=1;InventorsLab=1;Lorry=1;Cannon=1;Catapult=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;Firestone=1;Barrel=1;MetalBarrel=1;Dynamite=1;DynamiteBox=1;Pipe=1;GrappleBow=1;PowderKeg=1;Ropeladder=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=2;Bread=2;
HomeBaseProduction=Clonk=2;Bread=2;
=======
Knowledge=Idol=1;Foundry=1;ToolsWorkshop=1;Flagpole=1;Sawmill=1;Elevator=1;Pump=1;ChemicalLab=1;Armory=1;InventorsLab=1;Lorry=1;Cannon=1;Catapult=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;Firestone=1;Barrel=1;MetalBarrel=1;Dynamite=1;DynamiteBox=1;Pipe=1;GrappleBow=1;PowderKeg=1;Ropeladder=1
BaseMaterial=Clonk=2;Bread=2;
BaseProduction=Clonk=2;Bread=2;
>>>>>>> remotes/origin/master
[Player3]
Position=193,42
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Idol=1;Foundry=1;ToolsWorkshop=1;Flagpole=1;Sawmill=1;Elevator=1;Pump=1;ChemicalLab=1;Armory=1;InventorsLab=1;Lorry=1;Cannon=1;Catapult=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;Firestone=1;Barrel=1;MetalBarrel=1;Dynamite=1;DynamiteBox=1;Pipe=1;GrappleBow=1;PowderKeg=1;Ropeladder=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=2;Bread=2;
HomeBaseProduction=Clonk=2;Bread=2;
=======
Knowledge=Idol=1;Foundry=1;ToolsWorkshop=1;Flagpole=1;Sawmill=1;Elevator=1;Pump=1;ChemicalLab=1;Armory=1;InventorsLab=1;Lorry=1;Cannon=1;Catapult=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;Firestone=1;Barrel=1;MetalBarrel=1;Dynamite=1;DynamiteBox=1;Pipe=1;GrappleBow=1;PowderKeg=1;Ropeladder=1
BaseMaterial=Clonk=2;Bread=2;
BaseProduction=Clonk=2;Bread=2;
>>>>>>> remotes/origin/master
[Player4]
Position=193,42
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Idol=1;Foundry=1;ToolsWorkshop=1;Flagpole=1;Sawmill=1;Elevator=1;Pump=1;ChemicalLab=1;Armory=1;InventorsLab=1;Lorry=1;Cannon=1;Catapult=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;Firestone=1;Barrel=1;MetalBarrel=1;Dynamite=1;DynamiteBox=1;Pipe=1;GrappleBow=1;PowderKeg=1;Ropeladder=1;SplitTerraflint=1
HomeBaseMaterial=Clonk=2;Bread=2;
HomeBaseProduction=Clonk=2;Bread=2;
=======
Knowledge=Idol=1;Foundry=1;ToolsWorkshop=1;Flagpole=1;Sawmill=1;Elevator=1;Pump=1;ChemicalLab=1;Armory=1;InventorsLab=1;Lorry=1;Cannon=1;Catapult=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;Firestone=1;Barrel=1;MetalBarrel=1;Dynamite=1;DynamiteBox=1;Pipe=1;GrappleBow=1;PowderKeg=1;Ropeladder=1
BaseMaterial=Clonk=2;Bread=2;
BaseProduction=Clonk=2;Bread=2;
>>>>>>> remotes/origin/master
[Landscape]
BottomOpen=2

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -19,7 +19,7 @@ func SetRight(object host)
SetAction("Right", host);
SetShape(0,0,4,32);
SetPosition(host->GetX()+12, host->GetY()-16);
SetSolidMask(2,0,2,32,2,0);
SetSolidMask(0,0,2,32,2,0);
SetVertexXY(0,-27,1);
return true;
}
@ -30,7 +30,7 @@ func SetRight2(object host)
SetAction("Right", host);
SetShape(0,0,4,32);
SetPosition(host->GetX()+15, host->GetY()-48);
SetSolidMask(2,0,2,32,2,0);
SetSolidMask(0,0,2,32,2,0);
SetVertexXY(0,-27-3,1+32);
return true;
}
@ -41,7 +41,7 @@ func SetTop(object host)
SetAction("Top", host);
SetShape(0,0,32,4);
SetPosition(host->GetX()-16, host->GetY()-16);
SetSolidMask(0,4,32,4);
SetSolidMask(0,0,32,4);
SetVertexXY(0,1,1);
return true;
}
@ -52,7 +52,7 @@ func SetBottom(object host)
SetAction("Bottom", host);
SetShape(0,0,32,4);
SetPosition(host->GetX()-16, host->GetY()+12);
SetSolidMask(0,4,32,4);
SetSolidMask(0,0,32,4);
SetVertexXY(0,1,-27);
return true;
}
@ -63,7 +63,7 @@ func SetBottom2(object host)
SetAction("Bottom", host);
SetShape(0,0,32,4);
SetPosition(host->GetX()+13, host->GetY()+12);
SetSolidMask(0,4,32,4);
SetSolidMask(0,0,32,4);
SetVertexXY(0,1-29,-27);
return true;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -13,31 +13,55 @@ ValueOverloads=Nugget=10;GoldBar=50;
[Player1]
Wealth=50,0,0,250
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Plane_Engine=1;Scaffold=1;Foundry=1;ToolsWorkshop=1;ChemicalLab=1;WindGenerator=1;Flagpole=1;Sawmill=1;Elevator=1;Lorry=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;SplitTerraflint=1;Barrel=1;Dynamite=1;DynamiteBox=1;Pump=1
HomeBaseMaterial=Loam=99;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
HomeBaseProduction=Loam=10;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
=======
Knowledge=Plane_Engine=1;Scaffold=1;Foundry=1;ToolsWorkshop=1;ChemicalLab=1;WindGenerator=1;Flagpole=1;Sawmill=1;Elevator=1;Lorry=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;ToolsWorkshop_SplitFirestone=1;Barrel=1;Dynamite=1;DynamiteBox=1;Pump=1
BaseMaterial=Loam=99;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
BaseProduction=Loam=10;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
>>>>>>> remotes/origin/master
[Player2]
Wealth=50,0,0,250
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Plane_Engine=1;Scaffold=1;Foundry=1;ToolsWorkshop=1;ChemicalLab=1;WindGenerator=1;Flagpole=1;Sawmill=1;Elevator=1;Lorry=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;SplitTerraflint=1;Barrel=1;Dynamite=1;DynamiteBox=1;Pump=1HomeBaseMaterial=Loam=99;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
HomeBaseProduction=Loam=10;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
=======
Knowledge=Plane_Engine=1;Scaffold=1;Foundry=1;ToolsWorkshop=1;ChemicalLab=1;WindGenerator=1;Flagpole=1;Sawmill=1;Elevator=1;Lorry=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;ToolsWorkshop_SplitFirestone=1;Barrel=1;Dynamite=1;DynamiteBox=1;Pump=1
BaseMaterial=Loam=99;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
BaseProduction=Loam=10;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
>>>>>>> remotes/origin/master
[Player3]
Wealth=50,0,0,250
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Plane_Engine=1;Scaffold=1;Foundry=1;ToolsWorkshop=1;ChemicalLab=1;WindGenerator=1;Flagpole=1;Sawmill=1;Elevator=1;Lorry=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;SplitTerraflint=1;Barrel=1;Dynamite=1;DynamiteBox=1;Pump=1HomeBaseMaterial=Loam=99;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
HomeBaseProduction=Loam=10;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
=======
Knowledge=Plane_Engine=1;Scaffold=1;Foundry=1;ToolsWorkshop=1;ChemicalLab=1;WindGenerator=1;Flagpole=1;Sawmill=1;Elevator=1;Lorry=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;ToolsWorkshop_SplitFirestone=1;Barrel=1;Dynamite=1;DynamiteBox=1;Pump=1
BaseMaterial=Loam=99;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
BaseProduction=Loam=10;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
>>>>>>> remotes/origin/master
[Player4]
Wealth=50,0,0,250
Crew=Clonk=2
<<<<<<< HEAD
Knowledge=Plane_Engine=1;Scaffold=1;Foundry=1;ToolsWorkshop=1;ChemicalLab=1;WindGenerator=1;Flagpole=1;Sawmill=1;Elevator=1;Lorry=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;SplitTerraflint=1;Barrel=1;Dynamite=1;DynamiteBox=1;Pump=1HomeBaseMaterial=Loam=99;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
HomeBaseProduction=Loam=10;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
=======
Knowledge=Plane_Engine=1;Scaffold=1;Foundry=1;ToolsWorkshop=1;ChemicalLab=1;WindGenerator=1;Flagpole=1;Sawmill=1;Elevator=1;Lorry=1;Pickaxe=1;Axe=1;Hammer=1;Shovel=1;ToolsWorkshop_SplitFirestone=1;Barrel=1;Dynamite=1;DynamiteBox=1;Pump=1
BaseMaterial=Loam=99;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
BaseProduction=Loam=10;Wood=5;Metal=3;Shovel=2;Axe=2;Hammer=2;Clonk=5;Bread=5;Firestone=5
>>>>>>> remotes/origin/master
[Landscape]
Sky=Clouds2
BottomOpen=true
BottomOpen=1
MapWidth=100,0,64,10000
MapHeight=200,0,40,10000
NewStyleLandscape=2

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

View File

@ -0,0 +1,6 @@
[DefCore]
id=Deco_AltMaterials
Version=5,2,0,1
Category=C4D_StaticBack
Width=1
Height=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

View File

@ -0,0 +1 @@
This definition is not created. It just serves as a container for custom mesh materials, which aren't loaded unless the definition is valid.

View File

@ -0,0 +1,167 @@
material GoldenChest
{
receive_shadows on
technique
{
pass
{
ambient 0.500000 0.500000 0.500000 1.000000
diffuse 0.640000 0.640000 0.640000 1.000000
specular 0.500000 0.500000 0.500000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit
{
texture goldenchest.jpg
tex_address_mode wrap
filtering trilinear
}
}
}
}
material AncientColumn
{
receive_shadows on
technique
{
pass
{
ambient 0.500000 0.500000 0.500000 1.000000
diffuse 0.640000 0.640000 0.640000 1.000000
specular 0.000000 0.000000 0.000000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit
{
texture AncientColumn.png
tex_address_mode wrap
filtering trilinear
}
}
}
}
material FlyAmanitaMushroom
{
receive_shadows on
technique
{
pass FlyAmanitaMushroom
{
ambient 0.800000011920929 0.800000011920929 0.800000011920929 1.0
diffuse 1.0 1.0 1.0 1.0
specular 0.0 0.0 0.0 1.0 12.5
emissive 0.0 0.0 0.0 1.0
alpha_to_coverage off
cull_hardware clockwise
depth_write on
scene_blend one zero
texture_unit
{
texture FlyAmanitaMushroom.jpg
tex_address_mode wrap
scale 1.0 1.0
colour_op modulate
}
}
}
}
material RuinedLorry
{
receive_shadows on
technique
{
pass
{
ambient 0.500000 0.500000 0.500000 1.000000
diffuse 0.640000 0.640000 0.640000 1.000000
specular 0.500000 0.500000 0.500000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit
{
texture ruinedlorry.jpg
tex_address_mode wrap
filtering trilinear
}
}
}
}
material SpinWheelBaseAlt
{
receive_shadows on
technique
{
pass
{
ambient 0.500000 0.500000 0.500000 1.000000
diffuse 1.000000 1.000000 1.000000 1.000000
specular 0.500000 0.500000 0.500000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit
{
texture SpinWheelBaseAlt.jpg
tex_address_mode wrap
filtering trilinear
}
}
}
}
material SpinWheelGearRed
{
receive_shadows on
technique
{
pass
{
ambient 0.500000 0.500000 0.500000 1.000000
diffuse 1.000000 1.000000 1.000000 1.000000
specular 0.500000 0.500000 0.500000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit
{
texture SpinWheelGearRed.jpg
tex_address_mode wrap
filtering trilinear
}
}
}
}
material SpinWheelGearBlue
{
receive_shadows on
technique
{
pass
{
ambient 0.500000 0.500000 0.500000 1.000000
diffuse 1.000000 1.000000 1.000000 1.000000
specular 0.500000 0.500000 0.500000 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
texture_unit
{
texture SpinWheelGearBlue.jpg
tex_address_mode wrap
filtering trilinear
}
}
}
}
material IdolGrayColor
{
receive_shadows on
technique
{
pass
{
ambient 0.5 0.5 0.5 1.000000
diffuse 0.4 0.37 0.35 1.000000
specular 0.266613 0.266613 0.266613 1.000000 12.500000
emissive 0.000000 0.000000 0.000000 1.000000
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -0,0 +1,16 @@
[DefCore]
id=Bone
Version=5,2,0,1
Category=C4D_Object
Width=8
Height=8
Offset=-4,-4
Vertices=2
VertexX=-3,3
VertexY=-3,3
VertexFriction=50,50
Value=1
Mass=2
Components=Wood=1
Rotate=1
StretchGrowth=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@ -0,0 +1,12 @@
/*--- A Bone ---*/
protected func Hit()
{
Sound("GeneralHit*");
return 1;
}
local Collectible = 1;
local Name = "$Name$";
local Description = "$Description$";
local Plane = 410;

View File

@ -0,0 +1,2 @@
Name=Knochen
Description=Relikt des Lebens.

View File

@ -0,0 +1,2 @@
Name=Bone
Description=Relic of life.

View File

@ -0,0 +1,10 @@
[DefCore]
id=LotsOfCoins
Version=5,2,0,1
Category=C4D_StaticBack
Width=55
Height=17
Offset=-27,-8
Value=1000
Mass=1000
Components=GoldBar=20

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

View File

@ -0,0 +1,16 @@
[DefCore]
id=Skull
Version=5,2,0,1
Category=C4D_Object
Width=11
Height=13
Offset=-5,-6
Vertices=5
VertexX=-4,1,5,5,1
VertexY=-5,-4,-5,5,5
VertexFriction=50,50,50,50,50
Value=2
Mass=6
Components=Wood=1
Rotate=1
StretchGrowth=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,12 @@
/*--- A Skull ---*/
protected func Hit()
{
Sound("GeneralHit*");
return 1;
}
local Collectible = 1;
local Name = "$Name$";
local Description = "$Description$";
local Plane = 410;

Some files were not shown because too many files have changed in this diff Show More