+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 20 von 39
  1. #1
    Bäcker Avatar von Marius94
    Registriert seit
    30.07.2008
    Beiträge
    662

    Rotes Gesicht Anfänger möchte Skripten lernen

    Hallo zusammen,
    ich versuche mich seit einigen Wochen am Skripten!
    Aber kapiere viele Sachen nicht.
    Es wäre sehr nett wenn ihr mir dabei helfen würdet.
    Vielen Dank im Vorraus.
    Geändert von Marius94 (07.08.2008 um 13:12 Uhr)

  2. #2
    Bäcker Avatar von Marius94
    Registriert seit
    30.07.2008
    Beiträge
    662

    Frage AW: Anfänger möchte Skripten lernen

    Meine 1. Frage:
    Ich habe es Bisher soweit Hinbekommen, dass sich eine Palisade um ein Kloster zwar selbst aufbaut, aber leider schon ganz am Anfang! Und ich krieg es einfach nicht hin, dass sich die Palisade erst später aufbaut (ich habe Quests erstellt, dass man erst Holz liefern soll) aber er baut sich trotzdem schon direkt nach Spielstart auf. Was kann ich tun?

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

    Standard AW: Anfänger möchte Skripten lernen

    Hi!

    Zitat Zitat von Marius94 Beitrag anzeigen
    Hallo zusammen,
    ich versuche mich seit einigen Wochen am Skripten!
    Aber kapiere viele Sachen nicht.
    Nun, der erste Schritt wäre vielleicht, dass du uns mal etwas genauer schilderst, was du nicht kapierst.

    Zitat Zitat von Marius94 Beitrag anzeigen
    Meine 1. Frage:
    Ich habe es Bisher soweit Hinbekommen, dass sich eine Palisade um ein Kloster zwar selbst aufbaut, aber leider schon ganz am Anfang!
    Und bei solchen Dingen ist es immer hilfreich wenn du schreibst, wie du etwas gemacht, bzw. was du versuchst hast.

    Und ich krieg es einfach nicht hin, dass sich die Palisade erst später aufbaut (ich habe Quests erstellt, dass man erst Holz liefern soll) aber er baut sich trotzdem schon direkt nach Spielstart auf. Was kann ich tun?
    Als erstes könntest du nochmal das AI_Build_Log lesen, das Creewhawk dir im Ubi-Forum ja schon genannt hat. Und danach ggf. hier etwas genauer schildern, an welchen Stellen du mit was Schwierigkeiten hast.

    Wenn du vorher noch nichts mit der Scripterei zu tun gehabt hast, musst du dich allerdings wohl auf eine etwas längere Lernphase einstellen. Mit ein paar kurzen Erklärungen hier und da ist es leider nicht getan.

    Aber wenn du hier die richtigen Fragen stellst und die relevanten Informationen postest, dann wird dir bestimmt weitergeholfen.

    Gruß
    Gunther
    ___________________________


    ___________________________

  4. #4
    Sombeline
    Gast

    Standard AW: Anfänger möchte Skripten lernen

    Hallo,

    also möchte Marius helfen.
    Hier mal was ich bisher gemacht habe.

    Erst einmal die Quest zum Holzliefern. Muss ich denke ich nicht näher erläutern.

    Dann kommt Trigger_OnQuestSuccessWait auf Holzliefern
    Goal_InstantSuccess
    Reward_AI_BuildOrder hier Spieler 3 und 19

    Im Script steht.

    [code]
    function GameCallback_AIWallBuildingOrder(_PlayerID)
    if _PlayerID == 3 then
    return 20
    end

    Dies unten muss denke ich in First_MapAction

    function GameCallback_AIWallBuildingOrder(3)

    if _PlayerID == AIPlayerID then
    return AIBuildingOrder
    end


    AICore.SetNumericalFact( 3, "BPMX", 1)


    Ich denke es liegt an dem Zusammenspiel der Buildzahlen
    Was müsste man ändern, damit erst die Palisade gebaut wird, wenn das Holz geliefert ist.

    Sombeline
    Geändert von Sombeline (31.07.2008 um 09:07 Uhr)

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

    Ausrufezeichen AW: Anfänger möchte Skripten lernen

    Hallo!

    Zitat Zitat von Sombeline Beitrag anzeigen
    Im Script steht.
    In welchem? Es gibt ja mind. immer 2!
    Code:
    function GameCallback_AIWallBuildingOrder(_PlayerID)
       if _PlayerID == 3 then
         return 20
      end
    end
    Soweit, fast richtig! Wenn diese Funktion im globalen Map-Script steht und das fehlende end ergänzt wird. So etwas würde sofort auffallen, wenn man das Spiel mit der Option -DisplayScriptErrors starten würde (@Sombeline: Das hab' ich dir jetzt schon zum hunderten Male geschrieben!)

    Dies unten muss denke ich in First_MapAction
    Falsch. Und nicht denken, sondern (genau) lesen, was im AI_Build_Log steht!
    Lediglich die Zeile
    Code:
    AICore.SetNumericalFact( 3, "BPMX", 1)
    gehört in die Funktion Mission_FirstMapAction().
    Code:
    function GameCallback_AIWallBuildingOrder(3)
    
    if _PlayerID == AIPlayerID then
    return AIBuildingOrder
    end
    Was ist das wieder für ein "Unsinn"!?
    Erstens hast du doch bereits weiter oben eine Funktion GameCallback_AIWallBuildingOrder(), und zweitens würde diese Funktion nie etwas bewirken (außer Fehlern, da auch hier wieder ein end fehlt).

    Die Werte in den Klammern hinter dem Funktionsnamen sind Parameter, die der Funktion beim Aufruf übergeben werden können und dann innerhalb der Funktion verarbeitet werden können. Und wenn man innerhalb einer Funktion Variablen verarbeiten möchte, müssen diese auch definiert sein.

    Ich denke es liegt an dem Zusammenspiel der Buildzahlen
    Was müsste man ändern, damit erst die Palisade gebaut wird, wenn das Holz geliefert ist.
    Durch die obere, erste und richtige Version der Funktion GameCallback_AIWallBuildingOrder() wird die BuildingOrder für Spieler 3 für Pallisaden + Mauern auf 20 gesetzt. Sie sollten also dann errichtet werden, wenn die aktuelle BuildingOrder für Spieler 3 mind. den Wert 21 hat, da dieser wohl zwingend (um mind. 1) größer sein muss, als der festgelegte Wert für Gebäude und Palis/Mauern.

    Ergo müsste der Reward_AI_BuildOrder hier Spieler 3 und 21 lauten.

    Dann sollte es eigentlich wie gewünscht funktionieren.

    Gruß
    Gunther
    Geändert von Netsurfer (31.07.2008 um 09:48 Uhr)
    ___________________________


    ___________________________

  6. #6
    Bäcker Avatar von Marius94
    Registriert seit
    30.07.2008
    Beiträge
    662

    Frage AW: Anfänger möchte Skripten lernen

    Es funktioniert aber immer noch nicht, er baut die Palisade ganz am anfang auf. Aber hier Mein Script:

    Code:
    ----------------------------------------------------------------------------------------------------------------------
    function Mission_InitPlayers()
            
    end
    ----------------------------------------------------------------------------------------------------------------------
    function Mission_SetStartingMonth()
    
        Logic.SetMonthOffset(3)
    
    end
    ----------------------------------------------------------------------------------------------------------------------
    function Mission_InitMerchants()
    
    local traderId = Logic.GetStoreHouse(2) 
    AddOffer (traderId, 3,Goods.G_Sheep)
    AddOffer (traderId, 3,Goods.G_Stone)
    AddOffer (traderId, 3,Goods.G_Iron)
    AddOffer (traderId, 3,Goods.G_Cow)
    
    local traderId = Logic.GetStoreHouse(3) 
    AddOffer (traderId, 3,Goods.G_Herb)
    AddOffer (traderId, 3,Goods.G_Medicine)
    AddOffer (traderId, 3,Goods.G_Leather)
    AddOffer (traderId, 3,Goods.G_Grain)
    
    local traderId = Logic.GetStoreHouse(5)
    AddMercenaryOffer( traderId, 2,
    Entities.U_MilitaryBandit_Melee_SE )
    AddMercenaryOffer( traderId, 3,
    Entities.U_MilitaryBandit_Ranged_NA )
    AddMercenaryOffer(traderId, 4,
    Entities.U_MilitaryBandit_Ranged_ME)
    AddMercenaryOffer(traderId, 4,
    Entities.U_MilitaryBandit_Melee_AS)
    
    
    end
    
    ----------------------------------------------------------------------------------------------------------------------
    function Mission_FirstMapAction()
    
        -- init players in singleplayer games only
        if Framework.IsNetworkGame() ~= true then
    
            Startup_Player()
            Startup_StartGoods()
            Startup_Diplomacy()
            
        end        
    
        -- create quests
        do
            local MapName = Framework.GetCurrentMapName()
            local ScriptName = "Maps\\ExternalMap\\"..MapName.."\\QuestSystemBehavior.lua"
            Script.Load(ScriptName)
    
            CreateQuests()
        end
    
        AICore.SetNumericalFact( 3, "BPMX", 1)
    
    end
    
    function GameCallback_AIWallBuildingOrder(_PlayerID)
    
    
    if _PlayerID == 3 then
    return 4
    
    end
    
    
    end
    Und Im Quest ist die Buildingorder auf 5.
    Geändert von Marius94 (10.02.2009 um 14:03 Uhr) Grund: Ich hab beim in-erinnerungen-schwelgen :-D ein paar fehler entdeckt --10.2.09-15:03

  7. #7
    Sombeline
    Gast

    Standard AW: Anfänger möchte Skripten lernen

    Danke Netsurfer,

    ich starte das spiel immer mit displayerrors. Wenn ich das einmal in die Verknüpfung rein habe, müsste es so sein.
    Aber eine Meldung habe ich nicht bekommen.

    Hatte das Script von Marius übernommen.
    Jetzt in der Zwischenzeit habe ich auch gemerkt, daß sowieso
    der Befehl ja doppelt und falsch drinsteht.

    Sombeline

  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: Anfänger möchte Skripten lernen

    Hi Marius!

    Sieht soweit schon sehr gut aus!
    Lies mal bitte den kurzen Beitrag von BB_ScriptError und ändere deine Werte (die Zahlen für die BuildingOrder) entsprechend ab: AIBuildingOrder - Thema entwickelt von eve community

    Gruß
    Gunther
    ___________________________


    ___________________________

  9. #9
    Bäcker Avatar von Marius94
    Registriert seit
    30.07.2008
    Beiträge
    662

    Standard AW: Anfänger möchte Skripten lernen

    Danke, ich probier´s mal.

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

    Standard AW: Anfänger möchte Skripten lernen

    Zitat Zitat von Sombeline Beitrag anzeigen
    ich starte das spiel immer mit displayerrors. Wenn ich das einmal in die Verknüpfung rein habe, müsste es so sein.
    Aber eine Meldung habe ich nicht bekommen.

    Hatte das Script von Marius übernommen.
    Es ist aber wenig "speditiv & produktiv" wenn man andere Sachen hier postet, als man in Wirklichkeit tatsächlich verwendet.

    Wenn du also Code postest, der garantiert eine Fehlermeldung hervorruft, und dann keine angezeigt bekommst, weil du im Script etwas anderes stehen hast, was sollen wir uns dann den hier geposteten Code angucken!?


    Jetzt in der Zwischenzeit habe ich auch gemerkt, daß sowieso
    der Befehl ja doppelt und falsch drinsteht.
    Schön. (du meinst die Funktion )
    Und merke: Das Scripten verzeiht keine Schludrigkeit - ordentliches & konzentriertes Arbeiten ist absolute Grundvoraussetzung!

    Gruß
    Gunther
    ___________________________


    ___________________________

  11. #11
    Bäcker Avatar von Marius94
    Registriert seit
    30.07.2008
    Beiträge
    662

    Unglücklich AW: Anfänger möchte Skripten lernen

    Nein, funktioniert immer noch nicht, ich hab die Palisade im Script auf 5 und die AIBuildingorder auf 9.
    Geändert von Marius94 (31.07.2008 um 11:17 Uhr) Grund: Rechtschreibfehler :-)

  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: Anfänger möchte Skripten lernen

    Dann hast du vermutlich diesen Punkt AIBuildingOrder - Thema entwickelt von eve community vergessen .

    Kannst du im Editor über den Karten-Assistent einstellen.

    Gruß
    Gunther
    Geändert von Netsurfer (01.08.2008 um 10:10 Uhr) Grund: Link korrigiert
    ___________________________


    ___________________________

  13. #13
    Bäcker Avatar von Marius94
    Registriert seit
    30.07.2008
    Beiträge
    662

    Standard AW: Anfänger möchte Skripten lernen

    Danke, ich les mir mal dort alles durch !

  14. #14
    Bäcker Avatar von Marius94
    Registriert seit
    30.07.2008
    Beiträge
    662

    Frage AW: Anfänger möchte Skripten lernen

    Hi, ich bin Aus dem Text nicht wirklich schlau geworden, da ich alles so gemacht hab, wie es da drin Stand!

    Marius94

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

    Standard AW: Anfänger möchte Skripten lernen

    Zitat Zitat von Marius94 Beitrag anzeigen
    Hi, ich bin Aus dem Text nicht wirklich schlau geworden, da ich alles so gemacht hab, wie es da drin Stand!
    Nein, es geht und ging nur um den zweiten kurzen Beitrag von BB_ScriptError:
    Damit die AI Building Order funktioniert muss eine KI für den Spieler eingestellt sein.
    Bei Dörfern und Banditen ist das normalerweise nicht der Fall.
    Du musst also im Editor mittels des Karten-Assistenten eine KI für die PlayerID einstellen/ aktivieren.

    Gruß
    Gunther

    PS: Und bitte, mit solchen Aussagen wie "ich bin aus dem Text nicht wirklich schlau geworden" kann kein Mensch etwas sinnvolles anfangen, geschweige denn konkrete Hilfestellung geben. Also soweit möglich bitte immer genau schreiben, was man nicht verstanden hat, bzw. womit man Schwierigkeiten hat.
    ___________________________


    ___________________________

  16. #16
    Fischer Avatar von CineMachus
    Registriert seit
    30.09.2007
    Beiträge
    240

    Standard AW: Anfänger möchte Skripten lernen

    hi Marius 94,

    Palisadenbau mit AIBuildingOrder für Dörfer funktioniert seit Patch 1.5 (oder 1.6 ?) eigentlich nicht mehr.
    Bei einer Map von mir (Version 1.3) habe ich es aber für ein Dorf so geschafft:

    In meinem Beispiel für Player 6, AIBuildingOrder in 5er Schritten.

    AIBuildingOrder 5 für irgendein Gebäude (bevorzugt ein OuterRimBuilding).
    AIBuildingOrder 10 lässt du einfach aus, d.h. auch bei keinem Gebäude die AIBuildingOrder 10 vergeben.
    AIBuildingOrder 15 wieder für irgendein OuterRimBuilding.

    In die Mission_FirstMapAction() kommt folgendes:
    Code:
    AICore.SetNumericalFact(6, "BPMX", 0);
    AI_BuildOrder(6, 5);
    Nach der Holzlieferung gibt es als Belohnung die AIBuildingOrder 14 (== Palisade) und AIBuildingOrder 15, aufrufen mit AI_BuildOrder(6, 14) bzw. AI_BuildOrder(6, 15)

    Dafür brauchst du 2 Funktionen in deinem globalen Script.
    Code:
    function GameCallback_AIWallBuildingOrder(_PlayerID)             
        if _PlayerID == 6 then                                            
            return 14                                                                    
        end
    end
    Code:
    function AI_BuildOrder(_AIPlayerID, _Level)
        AICore.SetNumericalFact(_AIPlayerID, "BPMX", _Level);   
    end
    Gruß
    CineMachus

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

    Standard AW: Anfänger möchte Skripten lernen

    Hi CineMachus!

    Zitat Zitat von CineMachus Beitrag anzeigen
    hi Marius 94,

    Palisadenbau mit AIBuildingOrder für Dörfer funktioniert seit Patch 1.5 (oder 1.6 ?) eigentlich nicht mehr.
    Wieso das nicht? Dann würden ja alle Maps, auf denen das verwendet wird, nicht mehr funktionieren. Da hätte es bestimmt schon mehr Forenbeiträge gegeben, wenn dem so wäre.

    Dafür brauchst du 2 Funktionen in deinem globalen Script.
    Code:
    function AI_BuildOrder(_AIPlayerID, _Level)
        AICore.SetNumericalFact(_AIPlayerID, "BPMX", _Level);   
    end
    Warum dafür eine extra Funktion?
    Kann man doch dann genausogut einfach direkt aufrufen:
    Code:
    AICore.SetNumericalFact(_AIPlayerID, "BPMX", _Level);
    Gruß
    Gunther
    ___________________________


    ___________________________

  18. #18
    Fischer Avatar von CineMachus
    Registriert seit
    30.09.2007
    Beiträge
    240

    Standard AW: Anfänger möchte Skripten lernen

    Zitat Zitat von Netsurfer Beitrag anzeigen
    Hi CineMachus!


    Wieso das nicht? Dann würden ja alle Maps, auf denen das verwendet wird, nicht mehr funktionieren. Da hätte es bestimmt schon mehr Forenbeiträge gegeben, wenn dem so wäre.

    Warum dafür eine extra Funktion?
    Kann man doch dann genausogut einfach direkt aufrufen:
    Code:
    AICore.SetNumericalFact(_AIPlayerID, "BPMX", _Level);
    Gruß
    Gunther
    hi Gunther,

    zu 1: stimmt, Denkfehler meinerseits....()

    zu 2: reine Bequemlichkeit...

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

    Standard AW: Anfänger möchte Skripten lernen

    Die KIs von Dörfern und Banditen werden normalerweise erst nach Aufruf der Mission_FirstMapAction() erstellt - man kann ihr also auch erst danach Befehle geben

  20. #20
    Bäcker Avatar von Marius94
    Registriert seit
    30.07.2008
    Beiträge
    662

    Frage AW: Anfänger möchte Skripten lernen

    Hi,


    Zitat Zitat von Netsurfer
    Du musst also im Editor mittels des Karten-Assistenten eine KI für die PlayerID einstellen/ aktivieren
    Naja, aber bei Häfen, Klöstern und Dörfern ist doch im Kartenassistent, der Button, womit man die KI einstellt "grau"also nicht anzuklicken.
    Heißt das, dass man bei Häfen, Klöstern und Dörfern keine Ki gibt?

    Marius94
    Geändert von Marius94 (10.02.2009 um 14:09 Uhr) Grund: " Netsurfer schrieb" durch ein zitat ersetzt

Aktive Benutzer

Aktive Benutzer

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

     

Stichworte

Berechtigungen

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