Script v1_7_1_0
- AI
- Animals
- Collections
- Contracts
- Debug
- Economy
- Elements
- EnvironmentalScore
- Errors
- Events
- AdditionalFieldBuyInfoEve...
- AIConveyorBeltSetAngleEve...
- AIFieldWorkerStateEvent
- AIJobSkipTaskEvent
- AIJobStartEvent
- AIJobStartRequestEvent
- AIJobStopEvent
- AIJobVehicleStateEvent
- AITaskStartEvent
- AITaskStopEvent
- AIVehicleIsBlockedEvent
- AnimalCleanEvent
- AnimalHusbandryNoMorePall...
- AnimalNameEvent
- AnimalRidingEvent
- AnimatedVehicleStartEvent
- AnimatedVehicleStopEvent
- BaleLoaderStateEvent
- BaleOpenEvent
- BalerAutomaticDropEvent
- BalerBaleTypeEvent
- BalerCreateBaleEvent
- BalerDropFromPlatformEven...
- BalerSetBaleTimeEvent
- BalerSetIsUnloadingBaleEv...
- BaleUnpackEvent
- BaleWrapperAutomaticDropE...
- BaleWrapperStateEvent
- BunkerSiloCloseEvent
- BunkerSiloOpenEvent
- ChainsawCutEvent
- ChainsawDelimbEvent
- ChainsawStateEvent
- CombineStrawEnableEvent
- CropSensorStateEvent
- DogFetchItemEvent
- DogFollowEvent
- DogPetEvent
- DrivableToggleLowerAllEve...
- EnvironmentalScoreEvent
- ExtendedSowingMachineRate...
- ExtendedSprayerAmountEven...
- ExtendedSprayerDefaultFru...
- FarmlandStatisticsEvent
- FarmlandStatisticsResetEv...
- FillUnitUnloadEvent
- FoldableSetFoldDirectionE...
- HonkEvent
- HPWLanceStateEvent
- InlineBaleOpenEvent
- InlineWrapperPushOffEvent
- JumpEvent
- LocomotiveStateEvent
- MixerWagonBaleNotAccepted...
- MotorGearShiftEvent
- MowerToggleWindrowDropEve...
- PickupSetStateEvent
- PlaceableFenceAddGateEven...
- PlaceableFenceAddSegmentE...
- PlaceableFenceRemoveSegme...
- PlaceableHighPressureWash...
- PlaceableLightsStateEvent
- PlaceableTrainSystemRentE...
- PlaceableTrainSystemSellE...
- PlantLimitToFieldEvent
- PlayerPermissionsEvent
- PlayerPickUpObjectEvent
- PlayerRequestStyleEvent
- PlayerSetFarmAnswerEvent
- PlayerSetFarmEvent
- PlayerSetHandToolEvent
- PlayerSetNicknameEvent
- PlayerSetStyleEvent
- PlayerSwitchedFarmEvent
- PlayerTeleportEvent
- PlayerThrowObjectEvent
- PlayerToggleLightEvent
- PlowLimitToFieldEvent
- PlowPackerStateEvent
- PlowRotationEvent
- ProductionPointOutputMode...
- ProductionPointProduction...
- ProductionPointProduction...
- PurchaseSoilMapsEvent
- ReceivingHopperSetCreateB...
- RequestEnvironmentalScore...
- RequestFarmlandStatistics...
- RequestFieldBuyInfoEvent
- ResetYieldMapEvent
- ReverseDrivingSetStateEve...
- RideableStableNotificatio...
- RidgeMarkerSetStateEvent
- SetCoverStateEvent
- SetCrabSteeringEvent
- SetCruiseControlSpeedEven...
- SetCruiseControlStateEven...
- SetDischargeStateEvent
- SetFillUnitCapacityEvent
- SetFillUnitIsFillingEvent
- SetMotorTurnedOnEvent
- SetPipeDischargeToGroundE...
- SetPipeStateEvent
- SetSeedIndexEvent
- SetTurnedOnEvent
- SetWorkModeEvent
- SoilSamplerSendEvent
- SoilSamplerStartEvent
- SprayerDoubledAmountEvent
- TensionBeltsEvent
- TensionBeltsRefreshEvent
- TrailerToggleManualDoorEv...
- TrailerToggleManualTipEve...
- TrailerToggleTipSideEvent
- TreePlanterLoadPalletEven...
- VariableWorkWidthStateEve...
- VehicleAttachEvent
- VehicleAttachRequestEvent
- VehicleBrokenEvent
- VehicleBundleAttachEvent
- VehicleDetachEvent
- VehicleEnterRequestEvent
- VehicleEnterResponseEvent
- VehicleLeaveEvent
- VehicleLowerImplementEven...
- VehiclePlayerStyleChanged...
- VehicleSetBeaconLightEven...
- VehicleSetIsReconfigurati...
- VehicleSetLightEvent
- VehicleSettingsChangeEven...
- VehicleSetTurnLightEvent
- WaterTrailerSetIsFillingE...
- WearableRepaintEvent
- WearableRepairEvent
- WoodHarvesterCutTreeEvent
- WoodHarvesterOnCutTreeEve...
- WoodHarvesterOnDelimbTree...
- GUI
- Handtools
- Hud
- I3d
- Input
- Jobs
- Maps
- Materials
- Misc
- Objects
- Parameters
- Placeables
- Placement
- Player
- Shop
- Sounds
- Specialization
- Specializations
- StateMachine
- Statistics
- Tasks
- Triggers
- Utils
- Vehicles
Engine v1_7_1_0
- AI
- Animation
- Camera
- Entity
- Fillplanes
- general
- General
- I3D
- Input
- Lighting
- Math
- Network
- Node
- NoteNode
- Overlays
- Particle System
- Physics
- Rendering
- Scenegraph
- Shape
- Sound
- Spline
- String
- Terrain Detail
- Text Rendering
- Tire Track
- VoiceChat
- XML
Foundation Reference
PlayerSetFarmEvent
ParentEventFunctions
emptyNew
DescriptionCreate an empty instanceDefinition
emptyNew()Return Values
table | instance | Instance of object |
13 | function PlayerSetFarmEvent.emptyNew() |
14 | local self = Event.new(PlayerSetFarmEvent_mt) |
15 | return self |
16 | end |
new
DescriptionCreate an instanceDefinition
new(table player, integer toolId)Arguments
table | player | player instance |
integer | toolId | tool identification |
table | instance | Instance of object |
23 | function PlayerSetFarmEvent.new(player, farmId, password) |
24 | local self = PlayerSetFarmEvent.emptyNew() |
25 | |
26 | self.player = player |
27 | self.farmId = farmId |
28 | self.password = password |
29 | |
30 | return self |
31 | end |
readStream
DescriptionReads network streamDefinition
readStream(integer streamId, table connection)Arguments
integer | streamId | network stream identification |
table | connection | connection information |
53 | function PlayerSetFarmEvent:readStream(streamId, connection) |
54 | self.player = NetworkUtil.readNodeObject(streamId) |
55 | self.farmId = streamReadUIntN(streamId, FarmManager.FARM_ID_SEND_NUM_BITS) |
56 | |
57 | if streamReadBool(streamId) then |
58 | self.password = streamReadString(streamId) |
59 | end |
60 | |
61 | self:run(connection) |
62 | end |
run
DescriptionRun eventDefinition
run(table connection)Arguments
table | connection | connection information |
67 | function PlayerSetFarmEvent:run(connection) |
68 | if not connection:getIsServer() then --server side |
69 | local oldFarmId = self.player.farmId |
70 | local oldFarm = g_farmManager:getFarmById(oldFarmId) |
71 | |
72 | local farm = g_farmManager:getFarmById(self.farmId) |
73 | |
74 | if farm ~= nil then |
75 | local user = g_currentMission.userManager:getUserByUserId(self.player.userId) |
76 | |
77 | -- admins can always join any farm, otherwise the password must be empty or correctly given |
78 | if user:getIsMasterUser() or farm.password == nil or farm.password == self.password then |
79 | oldFarm:removeUser(user:getId()) |
80 | self.player:setFarm(self.farmId) |
81 | farm:addUser(user:getId(), user:getUniqueUserId(), user:getIsMasterUser()) |
82 | |
83 | self.player:onFarmChange() |
84 | |
85 | -- publish message about farm change |
86 | g_messageCenter:publish(MessageType.PLAYER_FARM_CHANGED, self.player) |
87 | |
88 | -- Force an update of the finance history |
89 | user:setFinancesVersionCounter(0) |
90 | |
91 | -- Finish handshake, lets the client record the password for the farm |
92 | connection:sendEvent(PlayerSetFarmAnswerEvent.new(PlayerSetFarmAnswerEvent.STATE.OK, self.farmId, self.password)) |
93 | |
94 | -- Tell all players that a player has switched |
95 | g_server:broadcastEvent(PlayerSwitchedFarmEvent.new(oldFarmId, self.farmId, user:getId())) |
96 | else |
97 | -- let the client know that the correct password is required |
98 | connection:sendEvent(PlayerSetFarmAnswerEvent.new(PlayerSetFarmAnswerEvent.STATE.PASSWORD_REQUIRED, self.farmId)) |
99 | end |
100 | end |
101 | else -- client side |
102 | self.player.farmId = self.farmId |
103 | self.player:onFarmChange() |
104 | |
105 | g_messageCenter:publish(MessageType.PLAYER_FARM_CHANGED, self.player) |
106 | end |
107 | end |
sendEvent
DescriptionCreate an instanceDefinition
sendEvent(table player, integer farmId, bool noEventSend)Arguments
table | player | player instance |
integer | farmId | farm identification |
bool | noEventSend | if false will send the event |
114 | function PlayerSetFarmEvent.sendEvent(player, farmId, noEventSend) |
115 | if noEventSend == nil or noEventSend == false then |
116 | if g_server ~= nil then |
117 | g_server:broadcastEvent(PlayerSetFarmEvent.new(player, farmId), nil, nil, player) |
118 | else |
119 | g_client:getServerConnection():sendEvent(PlayerSetFarmEvent.new(player, farmId)) |
120 | end |
121 | end |
122 | end |
writeStream
DescriptionWrites network streamDefinition
writeStream(integer streamId, table connection)Arguments
integer | streamId | network stream identification |
table | connection | connection information |
37 | function PlayerSetFarmEvent:writeStream(streamId, connection) |
38 | NetworkUtil.writeNodeObject(streamId, self.player) |
39 | streamWriteUIntN(streamId, self.farmId, FarmManager.FARM_ID_SEND_NUM_BITS) |
40 | |
41 | if self.password ~= nil then |
42 | streamWriteBool(streamId, true) |
43 | streamWriteString(streamId, self.password) |
44 | else |
45 | streamWriteBool(streamId, false) |
46 | end |
47 | end |