+ Antworten
Ergebnis 1 bis 18 von 18
  1. #1
    Schafszüchter Avatar von Netsurfer
    Registriert seit
    01.09.2005
    Ort
    Köln/ Cologne
    Beiträge
    1,121
    Blog Einträge
    10

    Frage Wie kann man ... per Script machen?

    Hallo liebe S6-Scripter!

    Ich hoffe ihr hattet alle schöne und frohe Festtage, und habt euch reich beschenken lassen?

    Da ich nun auch endlich wieder etwas freie Zeit habe, wollte ich mich jetzt mal mit den "Feinheiten" bei S6 beschäftigen .

    Einige unter euch waren ja schon recht fleißig im punkto Mappen, sodass ich hoffe, ihr teilt eure bisherigen Erkenntnisse mit mir und den anderen .

    So, nun aber mal zu den konkreten Fragen:
    1. Wie kann man einen Weg/ Territorium erst im Laufe des Spiels für den Spieler zugänglich machen?
    2. Wie kann man für einen Quest bspw. die Ausbaustufe eines (Spieler-)Gebäudes abfragen?
    3. Kann man "gefahrlos" für den Spieler anstelle der normalen Kirche auch die Entity B_Cathedral_Big verwenden (somit hätte man die "Mehreinnahmen" durch Kollekte automatisch unterbunden)?
    4. Kann man bspw. für einen KI-Player ein im Editor gesetztes Gebäude mit einer AI-Buildingorder (also beim Start noch nicht errichtet), per Script durch ein anderes Gebäude ersetzen (gebaut oder nicht gebaut) und wenn ja, wie?
    5. Wie kann man einen Karren (mit Waren/ einem NPC) von A nach B fahren lassen, den der Spieler angreifen/ überfallen kann, und anschließend entweder die Resourcen erhält oder den NPC gefangen nehmen kann?
    Für eure Tipps & Hilfe meinen besten Dank im Voraus!

    Gruß
    Gunther
    Geändert von Netsurfer (29.12.2007 um 12:43 Uhr)
    ___________________________


    ___________________________

  2. #2
    Jäger
    Registriert seit
    02.11.2007
    Ort
    Dortmund
    Beiträge
    293

    Standard AW: Wie kann man ... per Script machen?

    Zu 3. Die BigCathedrale habe ich testweise schon bis zum Erzherzog gespielt und ausser der fehlenden Predigt keine Nachteile gefunden.

    Die 5. Stufe (4.Ausbau) ist wirkungslos auf Plätze und Siedlerlimit, bringt nur Optik. Kostet noch mal 60 Steine

  3. #3
    Wirt
    Registriert seit
    04.10.2007
    Beiträge
    875

    Standard AW: Wie kann man ... per Script machen?

    Zu 1.
    Ich würde einfach ein paar Steine in den Weg legen und diese dann (vielleicht mit einem Rums) verschwinden lassen. So war ja auch die Lösung immer in S5.
    Ansonsten müsstest Du mal Logic.DEBUG_Unblock/BlockSquareAtPosition(). Das könnte aber den Spieler verwirren.
    Zu 2.
    Probier mal Logic.GetUpgradeLevel() aus. Parameter ist vermutlich das Gebäude, Rückgabewert vermutlich das 0-basierte Upgrade-Level (bedeutet: kein Ausbau = 0, 1. Ausbau = 1 usw.).

    Zu 4.
    Test it

    Die Antwort zu 5. werde ich nachreichen.

  4. #4
    Fleischermeister
    Registriert seit
    07.08.2005
    Ort
    Aachen
    Beiträge
    356

    Standard AW: Wie kann man ... per Script machen?

    Hi,

    habe ich in S5 schon gemacht.

    schauen ob einer in der Nähe (hier im Territorium) ist und dann zurückschicken.
    Natürlich mit Warnung.

    Man kanns auch noch verschärfen wenn er nicht hört: DestroyEntity.

    Gruß Robert
    http://lua.gts-stolberg.de/Bilder/bannerklein2.jpg
    Gott gebe mir die Geduld, Dinge hinzunehmen, die ich nicht ändern kann.

  5. #5
    Wirt
    Registriert seit
    04.10.2007
    Beiträge
    875

    Standard AW: Wie kann man ... per Script machen?

    Also, jetzt zum Karren:
    Ich denke mal, das könnte man damit erledigen, dass man einen Karren hinstellt (also Logic.CreateEntity()). Dann kann man einen Karren mit Logic.HireMerchant(_merchant, _sendingPlayer, _goodType, _goodAmount, _receivingPlayer) losschicken. Unterwegs sollte der Karren abfangbar sein und dann einfach in das Lagerhaus hineinfahren.

  6. #6
    Schafszüchter Avatar von Netsurfer
    Registriert seit
    01.09.2005
    Ort
    Köln/ Cologne
    Beiträge
    1,121
    Blog Einträge
    10

    Standard AW: Wie kann man ... per Script machen?

    Zitat Zitat von Old McDonald Beitrag anzeigen
    Also, jetzt zum Karren:
    Ich denke mal, das könnte man damit erledigen, dass man einen Karren hinstellt (also Logic.CreateEntity()). Dann kann man einen Karren mit Logic.HireMerchant(_merchant, _sendingPlayer, _goodType, _goodAmount, _receivingPlayer) losschicken. Unterwegs sollte der Karren abfangbar sein und dann einfach in das Lagerhaus hineinfahren.
    Jepp, das klappt zwar soweit, hat aber leider einen kleinen "Schönheitsfehler" . Denn der gekaperte Karren fährt immer zur Burg und nicht zum Lagerhaus.

    Hab' ich nur etwas falsch gemacht, oder liegt es an Logic.HireMerchant?

    Dank & Gruß
    Gunther
    ___________________________


    ___________________________

  7. #7
    Fleischermeister
    Registriert seit
    07.08.2005
    Ort
    Aachen
    Beiträge
    356

    Standard AW: Wie kann man ... per Script machen?

    Zitat Zitat von Netsurfer Beitrag anzeigen
    Der gekaperte Karren fährt immer zur Burg und nicht zum Lagerhaus.
    Liegt vielleicht am Karren?

    Gruß Robert
    http://lua.gts-stolberg.de/Bilder/bannerklein2.jpg
    Gott gebe mir die Geduld, Dinge hinzunehmen, die ich nicht ändern kann.

  8. #8
    Schafszüchter Avatar von Netsurfer
    Registriert seit
    01.09.2005
    Ort
    Köln/ Cologne
    Beiträge
    1,121
    Blog Einträge
    10

    Daumen hoch AW: Wie kann man ... per Script machen?

    Zitat Zitat von Robert Beitrag anzeigen
    Liegt vielleicht am Karren?
    Stimmt!
    Ich hatte es mit Entities.U_RegaliaCart probiert -> Burg
    Mit Entities.U_ThiefCart -> Lagerhaus

    Muss man jetzt noch mal eine Liste erstellen, welcher Cart wohin fährt.

    BTW: Im Editor sind nur ganze 4 Carts verfügbar, von denen keiner für Warentransporte geeignet ist.


    Dank & Gruß
    Gunther
    ___________________________


    ___________________________

  9. #9
    Fleischermeister
    Registriert seit
    07.08.2005
    Ort
    Aachen
    Beiträge
    356

    Standard AW: Wie kann man ... per Script machen?

    Entities.U_GoldCart
    Entities.U_Noblemen_Cart -- für adlige
    http://lua.gts-stolberg.de/Bilder/bannerklein2.jpg
    Gott gebe mir die Geduld, Dinge hinzunehmen, die ich nicht ändern kann.

  10. #10
    Wirt
    Registriert seit
    04.10.2007
    Beiträge
    875

    Standard AW: Wie kann man ... per Script machen?

    Als kleinen Schnipsel hier noch etwas, um Wege zu versperren:
    Code:
    function OpenWallGatePermanently(_gate)
    	local s = "local oldPlayer = GUI.GetPlayerID(); GUI.SetControlledPlayer(Logic.EntityGetPlayer(" .. _gate .. "));";
    	if Logic.IsGateInAutomaticMode(_gate) then
    		s = s .. "GUI.SetGateAutomaticMode(" .. _gate .. ", false);";
    	end
    	
    	Logic.ExecuteInLuaLocalState(s .. "GUI.OpenGate(" .. _gate .. "); GUI.SetControlledPlayer(oldPlayer);");
    end
    
    function CloseWallGatePermanently(_gate)
    	local s = "local oldPlayer = GUI.GetPlayerID(); GUI.SetControlledPlayer(Logic.EntityGetPlayer(" .. _gate .. "));";
    	if Logic.IsGateInAutomaticMode(_gate) then
    		s = s .. "GUI.SetGateAutomaticMode(" .. _gate .. ", false);";
    	end
    	
    	Logic.ExecuteInLuaLocalState(s .. "GUI.CloseGate(" .. _gate .. "); GUI.SetControlledPlayer(oldPlayer);");
    end
    
    function ResetWallGate(_gate)
    	if not Logic.IsGateInAutomaticMode(_gate) then
    		Logic.ExecuteInLuaLocalState("local oldPlayer = GUI.GetPlayerID(); GUI.SetControlledPlayer(Logic.EntityGetPlayer(" .. _gate .. ")); GUI.SetGateAutomaticMode(" .. _gate .. ", true); GUI.SetControlledPlayer(oldPlayer);");
    	end
    end
    Es könnte danach aber möglicherweise Probleme mit der GUI oder ähnlichem geben - also auf jeden Fall testen!

  11. #11
    Jäger
    Registriert seit
    02.11.2007
    Ort
    Dortmund
    Beiträge
    293

    Standard AW: Wie kann man ... per Script machen?

    Was dem blutigen Scriptlaien (mir) die Frage aufdrängt:

    Wie kriege ich da ne ID für das Gate raus?
    Also was trage ich bei _Gate ein?

    Ansonsten habe ich genau auf DIE Funktionen gewartet. Vielfachen Dank

  12. #12
    Schafszüchter Avatar von Netsurfer
    Registriert seit
    01.09.2005
    Ort
    Köln/ Cologne
    Beiträge
    1,121
    Blog Einträge
    10

    Standard AW: Wie kann man ... per Script machen?

    Nachfolgender Beitrag von mir ist totaler Unsinn - also bitte diesen Beitrag überspringen und danach weiterlesen!

    Zitat Zitat von Netsurfer
    Zitat Zitat von Zweispeer Beitrag anzeigen
    Was dem blutigen Scriptlaien (mir) die Frage aufdrängt:

    Wie kriege ich da ne ID für das Gate raus?
    Also was trage ich bei _Gate ein?
    Am einfachsten wahrscheinlich indem du dem Gate einen Namen gibst und dir dann mittels der Funktion
    Code:
    Logic.GetEntityIDByName("Name_der_Entity")
    die entsprechende ID holst.

    Ob du das mit globalen Variablen für mehrere verschiedene Gates, oder mit einer/ mehreren lokalen Variablen machen willst, hängt von dir und deinen sonstigen Gegebenheiten ab.

    Gruß
    Gunther
    Geändert von Netsurfer (09.01.2008 um 20:11 Uhr) Grund: Antwort ist falsch und völlig unbrauchbar!
    ___________________________


    ___________________________

  13. #13
    Jäger
    Registriert seit
    02.11.2007
    Ort
    Dortmund
    Beiträge
    293

    Standard AW: Wie kann man ... per Script machen?

    **gg**
    Heute schon den Edi benutzt?
    (Ja, das konnte ich mir jetzt nicht verkneifen, Sorry)

    Nein, im Ernst, das ist ja das Problem für mich, das man Gates und Walls eben im Edi nicht mit dem Entitaeten selektieren Werkzeug erreicht, ergo keinen Scriptnamen vergeben kann. Also wie bekomme ich zum Beispiel eine spezielles Gate raus? GetEntitybyCategory würde mir alle auf einem Territorium liefern, denke ich, aber wenn ich nun nur eins zu machen will?

  14. #14
    Fleischermeister
    Registriert seit
    07.08.2005
    Ort
    Aachen
    Beiträge
    356

    Standard AW: Wie kann man ... per Script machen?

    Hallo Scriptlaie.

    weisst du wo es ist?

    Dann:
    Code:
    	_, entity = Logic.GetEntitiesInArea(Entities.B_PalisadeGate, position.X, position.Y, 100, 1);
    Gruß Robert
    Geändert von Robert (08.01.2008 um 08:44 Uhr)
    http://lua.gts-stolberg.de/Bilder/bannerklein2.jpg
    Gott gebe mir die Geduld, Dinge hinzunehmen, die ich nicht ändern kann.

  15. #15
    Jäger
    Registriert seit
    02.11.2007
    Ort
    Dortmund
    Beiträge
    293

    Standard AW: Wie kann man ... per Script machen?

    Jo, das fehlte da noch. Ich muss mir unbedingt eine bessere Brille besorgen. Das hätte mich beissen können, ich hätte es noch ignoriert. Danke.

  16. #16
    Wirt
    Registriert seit
    04.10.2007
    Beiträge
    875

    Standard AW: Wie kann man ... per Script machen?

    Ja, ich habe mir gedacht, dass das ganz hilfreich ist
    Es war wohl mal geplant, dass man die Tore von automatisch auf manuell umstellen kann.

    Man hätte aber wenigstens auch globale Funktionen dafür einbauen können, damit man nicht an der GUI rumspielen muss (im übrigen funktionieren diese Funktionen wahrscheinlich nicht im Multiplayer, führt wahrscheinlich zu einem Desync).

  17. #17
    Schafszüchter Avatar von Netsurfer
    Registriert seit
    01.09.2005
    Ort
    Köln/ Cologne
    Beiträge
    1,121
    Blog Einträge
    10

    Rotes Gesicht AW: Wie kann man ... per Script machen?

    Zitat Zitat von Zweispeer Beitrag anzeigen
    **gg**
    Heute schon den Edi benutzt?
    (Ja, das konnte ich mir jetzt nicht verkneifen, Sorry)
    Schon OK - wo's berechtigt ist !

    Nein, im Ernst, das ist ja das Problem für mich, das man Gates und Walls eben im Edi nicht mit dem Entitaeten selektieren Werkzeug erreicht, ergo keinen Scriptnamen vergeben kann.
    Robert war ja schon behilflich. Und ich war beim Antworten zu schnell (ohne vorherige Kontrolle, wie sonst eigentlich immer). Bin aber auch tatsächlich fälschlicherweise davon ausgegangen, dass sich das "nur" auf die eigentlichen Mauern/ Pallisaden/ Zäune bezieht, und nicht auch auf die Tore/Gates. Ich hab's halt bisher selber noch nicht gebraucht.

    Genug der dummen Ausreden - also bitte entschuldige meine völlig falsche Antwort. Ich bin mir aber sicher, dass du schon Script-Profi genug bist, als dass ich dich jetzt nachhaltig verwirrt hätte dadurch !

    Gruß
    Gunther
    ___________________________


    ___________________________

  18. #18
    Jäger
    Registriert seit
    02.11.2007
    Ort
    Dortmund
    Beiträge
    293

    Standard AW: Wie kann man ... per Script machen?

    Kein Problem, mir war schon klar, dass das nur ein Flüchtigkeitsfehler war.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Ähnliche Themen

  1. Script Fehler, Diplomatie
    Von Baltok im Forum Siedler 5 DEdK Scriptecke
    Antworten: 3
    Letzter Beitrag: 27.12.2007, 18:25
  2. Script-Basteln
    Von LordFWD im Forum Siedler 6 AeK Mapperecke
    Antworten: 18
    Letzter Beitrag: 16.11.2007, 21:20
  3. Script
    Von CarlaTheCat im Forum Siedler 6 AeK Mapperecke
    Antworten: 3
    Letzter Beitrag: 01.11.2007, 16:46
  4. Minen per Script setzten
    Von Peermanent im Forum Siedler 5 DEdK Scriptecke
    Antworten: 0
    Letzter Beitrag: 27.09.2007, 19:21

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein