TWLan Forum
[v1.4] Eigene Einheiten erstellen - Printable Version

+- TWLan Forum (https://twlan.org)
+-- Forum: Legacy (https://twlan.org/forumdisplay.php?fid=61)
+--- Forum: TWLan 1.x (DSLan) (https://twlan.org/forumdisplay.php?fid=62)
+---- Forum: Deutsche Community (https://twlan.org/forumdisplay.php?fid=65)
+----- Forum: Spielerprojekte (https://twlan.org/forumdisplay.php?fid=9)
+------ Forum: Tutorials (https://twlan.org/forumdisplay.php?fid=11)
+------ Thread: [v1.4] Eigene Einheiten erstellen (/showthread.php?tid=3710)

Pages: 1 2 3 4


Eigene Einheiten erstellen - Bettdecke1 - 09.12.2010

Hallo Community,

in diesem Tutorial versuche ich euch zu erklären wie man eigene Einheiten erstellt. Funktioniert nur in Version 1.4!

Einheit erstellen:

1. Die Datei {dslan}/htdocs/include/configs/ units.php mit einem Editor öffnen und am Ende aber vor dem "?>" folgenden Code einfügen:

Code


1.1 Öffnet die techs.php

Füge am ende der Datei aber vor dem "?>" folgendes hinzu:

Code


1.2 Kommen wir nun zum bearbeiten der Einheit.

Geht wieder in die units.php und bearbeitet den Code, den ihr eingefügt habt, nach euren Wünschen. Hier ein paar Informationen.

Nehmen wir z.B. den Bauer

Code


Jetzt die techs.php:

Code


2. Die Sprachdatei

Geht in {dslan}/htdocs/lang/ in die de.ini

Sucht nach "[configs_units]"

Fügt dort hinzu:
Code:
bauer="Bauer"
bauer_des="Der Bauer kann die Letzte Rettung für dein Dorf sein

das war vor dem "=" steht, ist der Name, der auch in der units.php und techs.php benutzt wird. Diese Namen müssen gleich sein. Das, dass hinter dem "=" steht, sieht man dann in der Kaserne & und der Beschreibung der Einheit (hilfe etc.)

Sucht nach "[configs_techs]"

Fügt dort hinzu:
Code:
bauer="Bauer"

Genauso wie oben Wink

3. Die Grafiken

Ihr braucht einmal eine 18x18 Grafik die unit_bauer heißen muss und ihm Typ "PNG" sein muss. Ebenfalls muss, wie bei der Sprachdatei, immer die Grafik heißen, wie es in der units.php und techs.php steht! (unit_name). Diese Grafik muss in {dslan}/htdocs/graphic/unit

Dann braucht ihr 3 Grafiken in der größe von 60x60, eine muss "bauer" heißen, die 2. "bauer_cross" und die 3. "bauer_grey" jeweils im Typ "PNG" (Können die selben Grafiken sein.) Diese Grafiken müssen in {dslan}/htdocs/graphic/unit_big

Hier könnt ihr euch die Grafiken downloaden.

4. Der SQL-Code

Der SQL-Code an sich ist eigentlich ganz einfach:
Quote:ALTER TABLE `villages` ADD `unit_bauer_tec_level` INT( 11 ) NULL DEFAULT '0' AFTER `unit_axe_tec_level` ;
ALTER TABLE `villages` ADD `all_unit_bauer` INT( 6 ) NULL DEFAULT '0' AFTER `all_unit_axe` ;
ALTER TABLE `unit_place` ADD `unit_bauer` INT( 11 ) NULL DEFAULT '0' AFTER `unit_axe` ;

So muss die SQL aussehen, diese fügt ihr in http://localhost/phpmyadmin -> Datenbank lan -> "SQL" auswählen und den Code einfügen und Ausführen.

Auch da immer
Code:
ALTER TABLE `villages` ADD `unit_name_tec_level` INT ( 11 ) NULL DEFAULT '0' AFTER `unit_axe_tec_level`;

So geht das auch bei dem rest von dem Code..

Das was hinter
Code:
INT ( 11 ) NULL DEFAULT '0' AFTER
steht. In diesem Fall
Code:
`unit_axe_tec_level`;
bedeutet das die Tabelle, mit den Bauern, hinter den Äxten erstellt wird.


Erstellte Einheit wieder löschen:

Einfach alle Codes, die Ihr in der units.php, techs.php, de.ini löschen. Alle Grafiken die Ihr eingefügt habt löschen und die Tabelle, indem fall diese:
PHP Code:
ALTER TABLE `villagesADD `unit_bauer_tec_levelINT11 NULL DEFAULT '0' AFTER `unit_axe_tec_level` ;
ALTER TABLE `villagesADD `all_unit_bauerINTNULL DEFAULT '0' AFTER `all_unit_axe` ;
ALTER TABLE `unit_placeADD `unit_bauerINT11 NULL DEFAULT '0' AFTER `unit_axe` ; 

Müssen so gelöscht werden:


PHP Code:
ALTER TABLE `villages`
 
DROP `all_unit_bauer`;
 
DROP `unit_bauer_tec_level`;

ALTER TABLE `unit_place`
  
DROP `unit_bauer`, 

Also immer vor den Namen der Tabellen ein DROP setzen.


Ich hoffe ihr habt das einigermaßen Verstanden!

Bei Fragen, meldet euch einfach unten oder per PN.

PS:
Eure selbst erstellten Einheiten könnt ihr hier vorstellen, wenn ihr wollt.

MfG
Christian



RE: Eigene Einheiten erstellen - Molt - 09.12.2010

3. Spoiler fehlt ein "/"

Aber sonst Super! Wink

LG
Molt


RE: Eigene Einheiten erstellen - Bettdecke1 - 09.12.2010

Geändert, danke Smile


RE: Eigene Einheiten erstellen - ledewram - 09.12.2010

Sehr schönes TutorialSmile


RE: Eigene Einheiten erstellen - lolli1 - 09.12.2010

nice tut sehr verständlich geschrieben Wink

in der 8.zeile steht: "die units.php mit einem ordner öffnen" muss durch editor oder so ersetzt werden^^


RE: Eigene Einheiten erstellen - Bettdecke1 - 10.12.2010

(09.12.2010, 19:29)ledewram Wrote: Sehr schönes TutorialSmile
Danke dir Smile

(09.12.2010, 22:59)lolli1 Wrote: nice tut sehr verständlich geschrieben Wink

in der 8.zeile steht: "die units.php mit einem ordner öffnen" muss durch editor oder so ersetzt werden^^

öhm, ja ^^ Danke!


RE: Eigene Einheiten erstellen - SlimShady95 - 10.12.2010

Bei
PHP Code:
$cl_techs->set_needed(array()); 
gehört ein Array mit den benötigten Gebäudestufen rein, also zB:
PHP Code:
$cl_techs->set_needed(array('smith' => 5'barracks' => 10)); 
für Schmiede auf Stufe 5 und Kaserne Stufe 10 Wink

Sonst nettes Tut Smile

MfG Manuel



RE: Eigene Einheiten erstellen - Bettdecke1 - 10.12.2010

Ach stimmt, das war das mit den gebäudevorraussetzungen Big Grin Wusste doch das ich das vergessen hatte Wink Thx


RE: Eigene Einheiten erstellen - kippel-boy10 - 16.12.2010

Kannst du das mit den Gebäudevorraussetzungen oben für Anfänger dann bei arrays einfügen?
Währe vielleicht für die, die sich eine Einheit erstellen möchten, hilfreich!

Ansonsten DANKE!
Für viele ist das genau das was sie suchen um ihr TWLAN zu personalisieren!


RE: Eigene Einheiten erstellen - Bettdecke1 - 16.12.2010

(16.12.2010, 18:03)kippel-boy10 Wrote: Kannst du das mit den Gebäudevorraussetzungen oben für Anfänger dann bei arrays einfügen?
Währe vielleicht für die, die sich eine Einheit erstellen möchten, hilfreich!

Ansonsten DANKE!
Für viele ist das genau das was sie suchen um ihr TWLAN zu personalisieren!

Hab ich doch schon eingefügt Wink

Bitte!


RE: Eigene Einheiten erstellen - Nonilol - 22.12.2010

Ich habe mir versucht
(nach dem Tutorial von Bettdecke)
eigene Einheiten zu erstellen.

Insgesamt habe ich 3 neue Einheite eingefügt. (kann man soviele einfügen?)

Bin Schritt für Schritt vorgegangen aba hab iwie ein Fehler drin den ich net finde Sad

Fatal error: Call to a member function on a non-object in C:\dslan_v1.4\htdocs\include\configs\units.php on line 209

Hier der Code von einer neuen Einheit:

PHP Code:
$cl_units->add_unit($lang->grab("configs_units""nonique"),"unit_nonique");
$cl_units->set_woodprice("80");
$cl_units->set_stoneprice("50");
$cl_units->set_ironprice("60");
$cl_units->set_bhprice("1");
$cl_units->set_time("1000");
$cl_units->set_att("40","1.055");
$cl_units->set_def("5","1.045");
$cl_units->set_defcav("10","1.055");
$cl_units->set_defarcher("15","1.045");
$cl_units->set_speed("580");
$cl_units->set_booty("100");
$cl_techs->set_needed(array("smith"=>5,"barracks"=>2));  // Das ist Zeile 209
$cl_units->set_recruit_in("barracks");
$cl_units->set_specials(array());
$cl_units->set_group("foot");
$cl_units->set_col("A");
$cl_units->set_attType("off");
$cl_units->set_description($lang->grab("configs_units""nonique_des")); 


Die dslan.bat beschwert sich über folgendes:

[Image: fehlerdslan.jpg]

I der Datenbakn habe ich folgendes eingefügt:

ALTER TABLE `villages` ADD `unit_nonique_tec_level` INT( 11 ) NULL DEFAULT '0' AFTER `unit_axe_tec_level` ;
ALTER TABLE `villages` ADD `all_unit_nonique` INT( 6 ) NULL DEFAULT '0' AFTER `all_unit_axe` ;
ALTER TABLE `unit_place` ADD `unit_nonique` INT( 11 ) NULL DEFAULT '0' AFTER `unit_axe` ;

ALTER TABLE `villages` ADD `unit_tamia_tec_level` INT( 11 ) NULL DEFAULT '0' AFTER `unit_nonique_tec_level` ;
ALTER TABLE `villages` ADD `all_unit_tamia` INT( 6 ) NULL DEFAULT '0' AFTER `all_unit_nonique` ;
ALTER TABLE `unit_place` ADD `unit_tamia` INT( 11 ) NULL DEFAULT '0' AFTER `unit_nonique` ;

ALTER TABLE `villages` ADD `unit_turm_tec_level` INT( 11 ) NULL DEFAULT '0' AFTER `unit_tamia_tec_level` ;
ALTER TABLE `villages` ADD `all_unit_turm` INT( 6 ) NULL DEFAULT '0' AFTER `all_tamia_axe` ;
ALTER TABLE `unit_place` ADD `unit_turm` INT( 11 ) NULL DEFAULT '0' AFTER `unit_tamia` ;



RE: Eigene Einheiten erstellen - k3v95 - 22.12.2010

versuch mal "" mit '' zu ersetzen, aber nur in der zeile


RE: Eigene Einheiten erstellen - Bettdecke1 - 22.12.2010

Schick mal den code der in Zeile 209 steht pls


RE: Eigene Einheiten erstellen - Molt - 22.12.2010

@Bettdecke: Lesen? -.-

(22.12.2010, 08:33)Nonilol Wrote:
PHP Code:
$cl_techs->set_needed(array("smith"=>5,"barracks"=>2));  // Das ist Zeile 209 

LG
Molt


RE: Eigene Einheiten erstellen - SlimShady95 - 22.12.2010

pl4n3 hat die Frage in dem Thread im Frageforum beantwortet.
Ich schreibs mal hier rein.

Das $cl_techs in Zeile 209 mit $cl_units ersetzen

MfG Manuel


RE: Eigene Einheiten erstellen - Molt - 22.12.2010

Kopf->Tisch

Hätt uns das nicht allen auffallen müssen? Big Grin
Danke SlimShady.

LG
Molt


RE: Eigene Einheiten erstellen - SlimShady95 - 22.12.2010

Mal ne doofe Frage Big Grin
Wie bekommt man da $cl_techs rein^^

@molt: hat pl4n3 gesagt, is mir erst auch nich aufgefallen^^

Edit: Bettdecke ist Schuld, er hat falsch kopiert Big Grin

MfG Manuel


RE: Eigene Einheiten erstellen - Nonilol - 22.12.2010

Vielen Dank dass ihr meine Frage beanwortet habt!!!


RE: Eigene Einheiten erstellen - Shinigami-Sama - 03.01.2011

Ich kapier das mit dem SQL nicht. also das ist mein Script in units.php:
PHP Code:
$cl_units->add_unit($lang->grab("configs_units""Steinschleuderer"),"unit_Steinschleuderer");
$cl_units->set_woodprice("60");
$cl_units->set_stoneprice("80");
$cl_units->set_ironprice("40");
$cl_units->set_bhprice("1");
$cl_units->set_time("1750");
$cl_units->set_att("70","1.045");
$cl_units->set_def("10","1.045");
$cl_units->set_defcav("10","1.045");
$cl_units->set_defarcher("70","1.045");
$cl_units->set_speed("900");
$cl_units->set_booty("65");
$cl_units->set_needed(array("smith"=>"4","barracks"=>"3"));
$cl_units->set_recruit_in("barracks");
$cl_units->set_specials(array());
$cl_units->set_group("foot");
$cl_units->set_col("A");
$cl_units->set_attType("off");
$cl_units->set_description($lang->grab("configs_units""honderos_des")); 

und das mein tech.php-Script:
PHP Code:
$cl_techs->add_tech($lang->grab("configs_techs""Steinschleuderer"),"Steinschleuderer");
$cl_techs->set_group("Infanterie");
$cl_techs->set_woodprice("300","1.6");
$cl_techs->set_stoneprice("375","1.6");
$cl_techs->set_ironprice("250","1.6");
$cl_techs->set_time("3500","1.75");
$cl_techs->set_maxStage("10");
$cl_techs->set_needed(array("smith"=>"4"));
$cl_techs->set_attType(array('def','off','spy'));
$cl_techs->set_description(""); 

Also das sind meine Bilder:
[Image: 030111211544_unit_Steinschleuderer.png]
[Image: 030111211842_Steinschleuderer.png]
[Image: 030111211951_Steinschleuderer_cross.png]
[Image: 030111212016_Steinschleuderer_grey.png]

1. hab ich was falsch gemacht?
2. wie muss ich das in SQL eingeben?


RE: Eigene Einheiten erstellen - k3v95 - 03.01.2011

der sql könnte so aussehen:

ALTER TABLE `villages` ADD `unit_Steinschleuderer_tec_level` INT( 11 ) NULL DEFAULT '0' AFTER `unit_axe_tec_level` ;
ALTER TABLE `villages` ADD `all_unit_Steinschleuderer` INT( 6 ) NULL DEFAULT '0' AFTER `all_unit_axe` ;
ALTER TABLE `unit_place` ADD `unit_Steinschleuderer` INT( 11 ) NULL DEFAULT '0' AFTER `unit_axe` ;