Platzierbare Nachfülltanks Triggerpreise ändern

TheAlf1993
Beiträge: 2
Registriert: Mi Nov 09, 2016 8:02 pm

Platzierbare Nachfülltanks Triggerpreise ändern

Beitragvon TheAlf1993 » Mi Nov 09, 2016 8:44 pm

Hallo zusammen,
ich bin eigentlich was programmieren angeht, kein unbeschriebenes Blatt, aber mit Giants Editor und LS-Mods habe ich bisher keine Erfahrung ;)
Ich habe oben angegebenen Mod auf meinem SP-Spielstand und würde gerne die Preise anpassen. Wenn ich den Dünger aus dem Silo nachfülle, ist das für mein Verständnis viel zu teuer im Vergleich zu BigBags. Ich habe aber keine Variable im Mod gefunden, wo der Preis eingegeben wurde oder das Verhältnis zum Standardpreis eingetragen wird.
Kann einer von euch mir da einen Tipp geben, wo ich diese Änderung eintragen muss?
LG Alfred

Benutzeravatar
modelleicher
Schwabenleiter
Schwabenleiter
Beiträge: 2371
Registriert: Mo Jun 28, 2010 2:04 pm

Re: Platzierbare Nachfülltanks Triggerpreise ändern

Beitragvon modelleicher » Mi Nov 09, 2016 10:07 pm

Hallo,

Auch die platzierbaren verwenden die Filltrigger.lua
https://gdn.giants-software.com/documen ... class=1520

Der Preis wird in Zeile 143 bestimmt:
https://gdn.giants-software.com/documen ... #fill21271

Es wird einfach der PricePerLiter für den jeweiligen Filltype verwendet.

Also entweder den pricePerLiter für den gesamten FillType umschreiben, oder die fill Funktion überschreiben mit deiner eigenen in der du den Preis anpasst ;)


LG

TheAlf1993
Beiträge: 2
Registriert: Mi Nov 09, 2016 8:02 pm

Re: Platzierbare Nachfülltanks Triggerpreise ändern

Beitragvon TheAlf1993 » Mi Nov 09, 2016 11:11 pm

Ich hab gerade nochmal nachgeguckt, in dem Mod gibt es eine PlaceableFillTrigger.lua

Code: Alles auswählen

-- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved.

PlaceableFillTrigger = {};

PlaceableFillTrigger_mt = Class(PlaceableFillTrigger, Placeable);

InitObjectClass(PlaceableFillTrigger, "PlaceableFillTrigger");

function PlaceableFillTrigger:new(isServer, isClient, customMt)
    local mt = customMt;
    if mt == nil then
        mt = PlaceableFillTrigger_mt;
    end;

    local self = Placeable:new(isServer, isClient, mt);

    registerObjectClassName(self, "PlaceableFillTrigger");

    return self;
end;

function PlaceableFillTrigger:delete()
    unregisterObjectClassName(self);
    if self.trigger ~= nil then
        self.trigger:delete();
    end;

    PlaceableFillTrigger:superClass().delete(self);
end;

function PlaceableFillTrigger:load(xmlFilename, x,y,z, rx,ry,rz, initRandom)
    if not PlaceableFillTrigger:superClass().load(self, xmlFilename, x,y,z, rx,ry,rz, initRandom) then
        return false;
    end;

    local xmlFile = loadXMLFile("TempXML", xmlFilename);
    if xmlFile == 0 then
        return false;
    end;

    self.triggerId = Utils.indexToObject(self.nodeId, getXMLString(xmlFile, "placeable.fillTrigger#index"))

    local fillType = nil;
    local fillTypeStr = getXMLString(xmlFile, "placeable.fillTrigger#fillType");
    if fillTypeStr ~= nil then
        local desc = FillUtil.fillTypeNameToDesc[fillTypeStr];
        if desc ~= nil then
            fillType = desc.index;
        end;
    end;

    self.trigger = FillTrigger:new();
    if self.trigger:load(self.triggerId, fillType) then
        g_currentMission:addNonUpdateable(self.trigger);
    else
        self.trigger:delete();
    end

    return true;
end;

registerPlaceableType("placeableFillTrigger", PlaceableFillTrigger);

Da wird der FillTrigger erstellt, geladen und gelöscht, die Syntax sieht der im GDN sehr ähnlich.
Außerdem gibt's die FertilizerRefillTank.xml, wo der Trigger geladen wird:

Code: Alles auswählen

<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<placeable>
    <storeData>
        <name>$l10n_shopItem_fertilizerRefillTank</name>
        <image>store_fertilizerRefillTank.png</image>
        <price>8500</price>
        <dailyUpkeep>0</dailyUpkeep>
        <specs>
            <fillTypes>fertilizer</fillTypes>
        </specs>
        <functions>
            <function>$l10n_function_fertilizerRefillTank</function>
        </functions>
        <lifetime>1000</lifetime>
        <rotation>0</rotation>
        <brand>LIZARD</brand>
        <species>placeable</species>
        <category>placeables</category>
        <vertexBufferMemoryUsage>44496</vertexBufferMemoryUsage>
        <indexBufferMemoryUsage>8064</indexBufferMemoryUsage>
        <textureMemoryUsage>9087800</textureMemoryUsage>
        <instanceVertexBufferMemoryUsage>0</instanceVertexBufferMemoryUsage>
        <instanceIndexBufferMemoryUsage>0</instanceIndexBufferMemoryUsage>
    </storeData>

    <placeableType>placeableFillTrigger</placeableType>
    <filename>fertilizerRefillTank.i3d</filename>
    <placement testSizeX="4" testSizeZ="4" sizeX="2" sizeZ="2" useRandomYRotation="false" useManualYRotation="true" />
    <tipOcclusionUpdateArea sizeX="5" sizeZ="5" />
    <fillTrigger index="0>3" fillType="fertilizer"/>

    <clearAreas>
        <clearArea startIndex="0>1|0" widthIndex="0>1|1" heightIndex="0>1|2"/>
    </clearAreas>
</placeable>

Hat jemand da eine Idee, wo der Preis versteckt sein könnte? Ich finde gerade nichts mehr.
Gute Nacht ;)

Benutzeravatar
modelleicher
Schwabenleiter
Schwabenleiter
Beiträge: 2371
Registriert: Mo Jun 28, 2010 2:04 pm

Re: Platzierbare Nachfülltanks Triggerpreise ändern

Beitragvon modelleicher » Mi Nov 09, 2016 11:41 pm

Wie gesagt.. FillTrigger.lua

Bei der PlaceableFillTrigger.lua in Zeile 52 wird die FillTrigger.lua aufgerufen bzw. die new() Funktion darin. Der Trigger wird also damit erstellt.. Läuft dann darüber ;)

Der Preis ist in Zeile 143 der FillTrigger.lua versteckt..

EDIT: Die FillTrigger.lua aus dem GDN ist gemeint.. Die ist im dataS2.gar Archiv des LS, also kann man nicht direkt ändern. Du kannst aber z.b. die fill() Funktion überschreiben mit einer eigenen..




LG


Zurück zu „Fragen und Probleme rund ums Modding“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast