Ergebnis 1 bis 9 von 9
  1. #1
    12 of 5 Avatar von FastBow
    Registriert seit
    23.02.2011
    Beiträge
    16
    Downloads
    0
    Uploads
    0

    Unglücklich Problem bei Mine

    Ich will eine Karte machen, bei der der Menschliche Spieler eine Mine baut und sie dann an einen Computer übergeben wird, allerdings weiß ich nicht wie dass geht?

    Beispiel ist die Karte Evelance,
    bei der der Spieler 4 Schwefelminen für Leonardo bauen muss!

    Würde mich über Hilfe freuen!

  2. #2
    12 of 5 Avatar von FastBow
    Registriert seit
    23.02.2011
    Beiträge
    16
    Downloads
    0
    Uploads
    0

    Standard AW: Problem bei Mine

    Hallo ?
    Irgendjemand da der mir helfen kann?

  3. #3
    Lanzenträger Avatar von trabbi
    Registriert seit
    09.03.2006
    Beiträge
    4,967
    Downloads
    1
    Uploads
    0

    Standard AW: Problem bei Mine

    doch doch, das geht
    hab da mal so was gemacht, finde aber diese Testkarte nicht mehr.

    Halt Scriptmäßig, erst an einer Stelle das Gelände fast punktförmig absenken,
    auf Höhenmass achten, dort hinein die Mine setzen.

    Probiers erst mal im Edi so aus, danach kannste dann das Script schreiben !
    trabbi
    Was ist Theorie, - Wenns klappen soll und es klappt nie
    Was ist Praxis, - Frag nicht so dumm, wenns klappt und Du weißt nicht warum

  4. #4
    Planierer
    Registriert seit
    01.10.2008
    Beiträge
    39
    Downloads
    0
    Uploads
    0

    Standard AW: Problem bei Mine

    Mit der Funktion "Suche auf der Welt"

    abfragen, ob Mine gebaut. Anschliessend an anderen Spieler übergeben.

    Nur ein Gedankendang, Probier mal, ob es klappt .
    Gruß
    jugl
    Geändert von jugl (23.02.2011 um 21:12 Uhr)

  5. #5
    12 of 5 Avatar von FastBow
    Registriert seit
    23.02.2011
    Beiträge
    16
    Downloads
    0
    Uploads
    0

    Standard AW: Problem bei Mine

    Okay und hat jemand noch andere vorschläge?

  6. #6
    Holzfäller Avatar von Noigi
    Registriert seit
    31.12.2007
    Beiträge
    121
    Downloads
    0
    Uploads
    0

    Standard AW: Problem bei Mine

    Ich würde in einem Simple-Job eine Gebietsabfrage durchführen lassen, z.B. so:
    Code:
    local t = {Logic.GetPlayerEntitiesInArea( GUI.GetPlayerID(), Entities.PB_ClayMine1, pos.X, pos.Y, 500, 1 )};
    if t[2] then
        ChangePlayer(t[2], 2);
        return true;
    end

  7. #7
    Sägewerker Avatar von Flodder
    Registriert seit
    12.07.2006
    Ort
    Wilstedt (Niedersachsen)
    Beiträge
    180
    Downloads
    0
    Uploads
    0

    Standard AW: Problem bei Mine

    Zitat Zitat von FastBow Beitrag anzeigen
    Okay und hat jemand noch andere vorschläge?
    Jupp, die hat einer:
    Wenn eine Mine gebaut wird, dann hat sie keinen Namen. Man kann also die Mine mit ChangePlayer nicht so einfach übergeben.

    Daher folgendes machen:
    Du legst eine Skriptentity in die Mitte, oder unmittelbar am Rand der "Rohmine", also dort, wo die Mine gebaut werden soll und gibst dieser Skriptentitity den Namen "posMine1", die 1 deshalb, weil es ja sein kann, dass Du dies mit mehrerer Minen vorhast. Ansonsten die 1 einfach weglassen.

    Nun kommt es drauf an, wie weit die Mine ausgebaut werden soll, bevor sie Übergeben wird.
    Nehmen wir mal an, es ist eine Schwefelmine die erst einmal vom Spieler aufgebaut und dann zur höchsten Stufe ausgebaut werden soll. Das wäre dann eine PB_SulfurMine3.

    Jetzt kanns losgehen:
    Code:
    local quest = {
        AreaPos     = "posMine1",  -- Die Stelle an der die Mine gebaut werden soll
        AreaSize    = 2000,  -- Ein Toleranzwert (Radius) um die Position, denn genau darauf wird man sie nicht bauen können.
        EntityTypes = {
        {Entities.PB_SulfurMine3, 1} -- Die angegebene Mine soll gebaut werden
        },
        Callback = function(_quest)  --Diese Funktion wird aufgerufen, wenn die Mine gebaut wurde
            -- Hiermit bekommt man die Entity ID der Mine, damit man die Spieler ID ändern kann
            -- Die Funktion GetEntityIdInArea() muss man aber noch zusätzlich in das Script kopieren (siehe unten)
            local entityID = GetEntityIdInArea(1, _quest.EntityTypes[1][1], _quest.AreaPos, _quest.AreaSize)
            -- Jetzt kann man die ID der Mine ändern, bzw. die Mine übergeben:
            ChangePlayer(entityID, 4)
        end,
    }
    -- Quest starten:
    SetupEstablish(quest)
    Benötigter Comfort-Code:
    Die Funktion GetEntityIdInArea() liefert eine ID einer bestimmten Entity,
    welche in dem Radius _range um _position liegt und sieht so aus:
    Code:
    function GetEntityIdInArea(_playerID, _entity, _position, _range)
        local data = {Logic.GetPlayerEntitiesInArea(_playerID, _entity, _position.X, _position.Y, _range, 1)}
        
        if Logic.IsBuilding(data[2]) then
            if Logic.IsConstructionComplete(data[2]) == 1 then
                return data[2]
            else
                return false
            end
        end
        
        return data[2]
    end
    Das Ganze noch mal ohne Kommentare:
    Code:
    local quest = {
        AreaPos     = "posMine1",
        AreaSize    = 2000,
        EntityTypes = {
        {Entities.PB_SulfurMine3, 1}
        },
        Callback = function(_quest) 
        local entityID = GetEntityIdInArea(1, _quest.EntityTypes[1][1], _quest.AreaPos, _quest.AreaSize)
        ChangePlayer(entityID, 4)
        end,
    }
    SetupEstablish(quest)
    Benötigter Comfort-Code (Irgendwo ans Skriptende kopieren):
    Code:
    function GetEntityIdInArea(_playerID, _entity, _position, _range)
        local data = {Logic.GetPlayerEntitiesInArea(_playerID, _entity, _position.X, _position.Y, _range, 1)}
        
        if Logic.IsBuilding(data[2]) then
            if Logic.IsConstructionComplete(data[2]) == 1 then
                return data[2]
            else
                return false
            end
        end
        
        return data[2]
    end
    Ich hoffe, Dir hiermit helfen zu können.
    Gruss
    Flodder
    Geändert von Flodder (27.02.2011 um 01:52 Uhr)
    Sinnlos ist ein Leben ohne Sinn für nnisnU!

  8. #8
    Sägewerker Avatar von Flodder
    Registriert seit
    12.07.2006
    Ort
    Wilstedt (Niedersachsen)
    Beiträge
    180
    Downloads
    0
    Uploads
    0

    Standard AW: Problem bei Mine

    UPS...! Da war einer schneller (=Noigi)
    Na egal, doppelt hält besser und mit etwas Erklärung meinerseits sicher auch kein Fehler.
    Sinnlos ist ein Leben ohne Sinn für nnisnU!

  9. #9
    12 of 5 Avatar von FastBow
    Registriert seit
    23.02.2011
    Beiträge
    16
    Downloads
    0
    Uploads
    0

    Standard AW: Problem bei Mine

    Vielen Dank Noigi und vielen Dank Flodder

    Grüße
    FastBow

Aktive Benutzer

Aktive Benutzer

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

Ähnliche Themen

  1. Tor Problem
    Von Annosiedler im Forum Siedler 6 AeK Mapperecke
    Antworten: 5
    Letzter Beitrag: 22.03.2010, 14:13
  2. ? Problem
    Von Sylvia99 im Forum Technik Ecke
    Antworten: 39
    Letzter Beitrag: 02.03.2009, 09:37
  3. Diamant Mine
    Von sosica im Forum Spielhalle Minispiele
    Antworten: 2
    Letzter Beitrag: 09.12.2008, 09:30
  4. Problem mit MCD II
    Von Perikles im Forum Siedler 4 Allgemein
    Antworten: 2
    Letzter Beitrag: 28.06.2008, 18:33

Stichworte

Berechtigungen

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