-- BaleDestroyerTrigger2 class
--
-- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved.
--
-- Geaender von: Dimer24
-- 03.01.2017
print ("")
print (" [ 09] -> ***** BaleDestroyerTrigger2 *****")
print (" [ 10] -> Script wird gestarte")
print ("")
BaleDestroyerTrigger2 = {};
print ("")
print (" [ 14] -> BaleDestroyerTrigger2 Tabelle wurde erstellt")
print (" [ 15] ---> Ausgabe der Tabelle -- BaleDestroyerTrigger2")
DebugUtil.printTableRecursively(BaleDestroyerTrigger2," --",0,5)
print ("")
print ("")
print (" [ 20] -> Ausgabe der Tabelle -- BaleDestroyerTrigger2_mt")
BaleDestroyerTrigger2_mt = Class(BaleDestroyerTrigger2);
print (" [ 22] -> BaleDestroyerTrigger2_mt Tabelle wurde erstellt")
print (" [ 23] ---> Ausgabe der Tabelle -- BaleDestroyerTrigger2")
DebugUtil.printTableRecursively(BaleDestroyerTrigger2," --",0,5)
print ("")
print (" [ 26] ---> Ausgabe der Tabelle -- BaleDestroyerTrigger2_mt")
DebugUtil.printTableRecursively(BaleDestroyerTrigger2_mt," --",0,5)
print ("")
InitObjectClass(BaleDestroyerTrigger2, "BaleDestroyerTrigger2");
function BaleDestroyerTrigger2.onCreate(id)
g_currentMission:addNonUpdateable(BaleDestroyerTrigger2:new(id));
end;
function BaleDestroyerTrigger2:new(id)
print (" -->>> new (id): ".. id)
DebugUtil.printTableRecursively(g_currentMission, "." , 0, 2);
local self = {};
setmetatable(self, BaleDestroyerTrigger2_mt);
self.triggerId = id;
addTrigger(self.triggerId, "TriggerCallback", self);
self.isBaleDestroyerTrigger2 = true;
self.isEnabled = true;
self.appearsOnPDA = Utils.getNoNil(getUserAttribute(id, "appearsOnPDA"), true)
if self.appearsOnPDA then
local mapPosition = id
local mapPositionIndex = getUserAttribute(id, "mapPositionIndex")
if mapPositionIndex ~= nil then
mapPosition = Utils.indexToObject(id, mapPositionIndex)
if mapPosition == nil then
mapPosition = id
end
end
local x, _, z = getWorldTranslation(mapPosition)
self.mapHotspot = g_currentMission.ingameMap:createMapHotspot("baleSellTrigger", "", nil, getNormalizedUVs({8, 520, 240, 240}), {1,1,1,1}, x, z, nil, nil, false, false, false, 0, nil, MapHotspot.CATEGORY_TRIGGER)
end
return self;
end;
function BaleDestroyerTrigger2:delete()
removeTrigger(self.triggerId);
if self.mapHotspot ~= nil then
g_currentMission.ingameMap:deleteMapHotspot(self.mapHotspot)
end
end;
function BaleDestroyerTrigger2:deleteMap()
end;
-- da wir das Script mit Mapstart gestartet haben, löschen wir das Script auch beim Beenden der Map
function BaleDestroyerTrigger2:keyEvent()
end;
-- diese Funktion registriert Tastatureingaben, wir benötigen sie zwar nicht, müssen sie aber hier mit einfügen, Erklärung folgt ***
function BaleDestroyerTrigger2:mouseEvent()
end;
-- diese Funktion registriert Mausbewegungen und -eingaben. Hier gilt das gleiche wie mit der oberen Funktion ***
function BaleDestroyerTrigger2:update()
end;
function BaleDestroyerTrigger2:draw()
-- string = "Ein Text zum Probeausgeben";
-- die Variable "string" enthält den Text, den wir auf dem Bildschirm ausgeben möchten
-- renderText(0,0.05,0.02,string);
end;
g_onCreateUtil.addOnCreateFunction("BaleDestroyerTrigger2", BaleDestroyerTrigger2.onCreate);
function BaleDestroyerTrigger2:TriggerCallback(triggerId, otherActorId, onEnter, onLeave, onStay, otherShapeId)
if self.isEnabled then
if onEnter then
-- this happens if a compound child of a deleted compound is entering
if otherActorId ~= 0 then
local object = g_currentMission:getNodeObject(otherActorId);
if object ~= nil then
if object:isa(Bale) and object:getCanBeSold() then
playSample(g_currentMission.cashRegistrySound, 1, 1, 0);
-- TODO: display a particle effect
if g_currentMission:getIsServer() then
local difficultyMultiplier = g_currentMission.missionInfo.sellPriceMultiplier;
local baseValue = object:getValue();
g_currentMission:addSharedMoney(baseValue * difficultyMultiplier * 1.8, "soldBales");
g_currentMission:addMoneyChange(baseValue * difficultyMultiplier * 1.8, FSBaseMission.MONEY_TYPE_SINGLE, true, g_i18n:getText("finance_soldBales"));
object:delete();
end;
end;
else
if g_currentMission.nodeToVehicle[otherActorId] == nil then
-- there is nothing that could end up here, since physics objects are an object, thus this could only introduce bugs
-- delete(otherActorId);
end;
end;
end;
end;
end
end;