thank you!
nine
nine
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menu
function AIIsPlayerCargoFull(playerID)
{
for (var i = 0; i < 1; i++) {
var totalSizeOfPlayerStorage = 0;
var initialQuantityOfItemsInPlayerStorage = 0;
var emptySpaceToRemovePlayer = 0;
var PlayerContainerID = items.GetGameObjectContainerId(playerID);
var itemsInCargoOfPlayer = items.GetItemsAndCargo(PlayerContainerID);
if (itemsInCargoOfPlayer != null) {
if (itemsInCargoOfPlayer.length > 0) {
if (itemsInCargoOfPlayer[0] != null) {
for (var i = 0; i < itemsInCargoOfPlayer.length; i++) {
initialQuantityOfItemsInPlayerStorage += itemsInCargoOfPlayer[i].quantity;
}
}
else {
initialQuantityOfItemsInPlayerStorage = 0;
}
}
else {
initialQuantityOfItemsInPlayerStorage = 0;
}
}
else {
initialQuantityOfItemsInPlayerStorage = 0;
}
items.AddItem(PlayerContainerID, "goods_emptyspace", 100000);
var itemsInCargoOfPlayerAfterAddingEmptySpace = items.GetItemsAndCargo(PlayerContainerID);
if (itemsInCargoOfPlayerAfterAddingEmptySpace != null) {
if (itemsInCargoOfPlayerAfterAddingEmptySpace.length > 0) {
if (itemsInCargoOfPlayerAfterAddingEmptySpace[0] != null) {
for (var i = 0; i < itemsInCargoOfPlayerAfterAddingEmptySpace.length; i++) {
totalSizeOfPlayerStorage += itemsInCargoOfPlayerAfterAddingEmptySpace[i].quantity;
}
}
else {
totalSizeOfPlayerStorage = 0;
}
}
else {
totalSizeOfPlayerStorage = 0;
}
}
else {
totalSizeOfPlayerStorage = 0;
}
var emptySpaceToRemovePlayer = totalSizeOfPlayerStorage - initialQuantityOfItemsInPlayerStorage;
items.RemoveCargo(PlayerContainerID, "goods_emptyspace", emptySpaceToRemovePlayer);
if (emptySpaceToRemovePlayer > 1) {
var someData = { swtc: 0, space: emptySpaceToRemovePlayer };
return someData;
}
else {
var someData = { swtc: 1, space: emptySpaceToRemovePlayer };
return someData;
}
}
}
function AIIsPlayerCargoFull(playerID)
{
var value = ship.GetTotalCargoAmount(playerID);
var somefinalcval = ship.GetFinalCacheValue(playerID, "cargo_capacity");
var emptyspace = somefinalcval - value;
if (value < somefinalcval)
{
var someData = { swtc: 0, space: emptyspace };
return someData;
}
else
{
var someData = { swtc: 1, space: emptyspace };
return someData;
}
}
Quote
/*
Script can contain following functions:
OnUpdateCache - called when device is equipped or initialized, or some values are changed
OnStart - called when device is activated (for all)
OnFrame - called every frame (only for "per frame" mode)
OnFinished - called when device effect should be applied (only for "per frame" and "on complete")
*/
QuoteAnother problem with global variables - we cannot serialize them easily and write into the savegame. So even if we had global variables (shared across all the scripts), it will be very easy to write bad code (which will prevent the game from properly saving the game state). So, we have storage scripting API instead. It's also very limited, but for the most cases, it was enough to get the things done.
using(npc);
using(console);
using(timer);
var SC_Salvage_Object_Storage =
{
AddSpaceObjectToStorage: function (system_id, SpaceObjectID, randomYieldToStartOff)
{
if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
{
var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");
var objectdata = { sys_id: system_id, id: SpaceObjectID, yield: randomYieldToStartOff, GameTime: timer.GetGameTime() };
toReceiveData.push(objectdata);
storage.SetGlobal("systemid_" + system_id + "_salvage", toReceiveData);
/*var someTest;
var toReceiveData = storage.GetGlobal("drone_mining_added_" + chosenPosition);
var droneData = { id: droneid, index: droneIndex };
toReceiveData[droneIndex] = droneData;
storage.SetGlobal("drone_mining_added_" + chosenPosition, toReceiveData);*/
}
else
{
var toSendData = [];
var objectdata = { sys_id: system_id, id: SpaceObjectID, yield: randomYieldToStartOff, GameTime: timer.GetGameTime()};
toSendData.push(objectdata);
storage.SetGlobal("systemid_" + system_id + "_salvage", toSendData);
}
},
GetSpaceObjectStorageLength: function (system_id)
{
if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
{
var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");
return toReceiveData.length;
}
else
{
return 0;
}
},
RemoveFromYield: function (system_id, SpaceObjectID, currentYieldMinus)
{
if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
{
var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");
for (var s = 0; s < toReceiveData.length;s++)
{
if (toReceiveData[s].id == SpaceObjectID)
{
toReceiveData[s].yield = toReceiveData[s].yield - currentYieldMinus;
break;
}
}
storage.SetGlobal("systemid_" + system_id + "_salvage", toReceiveData);
}
else
{
console.PrintError("the space object doesn't exist in the global array and this message is never supposed to print even with a console debug_reinit. If it prints, tell me. 0");
}
},
SetDepleted: function (system_id, SpaceObjectID)
{
if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
{
var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");
var s = 0
for (s = 0; s < toReceiveData.length; s++)
{
if (toReceiveData[s].id == SpaceObjectID)
{
toReceiveData[s] = null;
break;
}
}
toReceiveData.splice(s, 1);
storage.SetGlobal("systemid_" + system_id + "_salvage", toReceiveData);
}
else
{
console.PrintError("the space object doesn't exist in the global array and this message is never supposed to print even with a console debug_reinit. If it prints, tell me. 1");
}
},
GetSpaceObjectYield: function (system_id, SpaceObjectID)
{
if (storage.IsSetGlobal("systemid_" + system_id + "_salvage"))
{
var toReceiveData = storage.GetGlobal("systemid_" + system_id + "_salvage");
for (var s = 0; s < toReceiveData.length; s++)
{
if (toReceiveData[s].id == SpaceObjectID)
{
return toReceiveData[s].yield;
}
}
}
else
{
console.PrintError("the space object doesn't exist in the global array and this message is never supposed to print even with a console debug_reinit. If it prints, tell me. 2");
}
},
};
using(npc);
using(console);
using(timer);
var counterFrame = 0;
var counterDevice = 0;
var SC_Salvage_Object_Timer =
{
ClearCurrentDevice: function (sys_id, device_id, ship_id, slot_id) //IsWorking
{
game.IsShipPlayerControlled(ship_id);
var playerName = game.GetShipOwner(ship_id);
if (storage.IsSetGlobal("GlobalIndex_Player_" + playerName))
{
var someGlobalIndex = storage.GetGlobal("GlobalIndex_Player_" + playerName);
if (!storage.IsSetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id))
{
storage.SetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id, { swtch: 1, ship_id: ship_id, device_id: device_id, slot_id: slot_id, timer_id: null, reset: 1 });
}
else
{
var globalSalvageStorage = storage.GetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id);
if (globalSalvageStorage != null) {
if (globalSalvageStorage.timer_id != null)
{
//timer.AddOrUpdate("CustomOnFrame", null);
//timer.AddOrUpdate(0.25, "CustomOnFrame", null, 1); //
game.ShipStopSound(ship_id, "mining_process_" + slot_id);
visual.DeviceDeactivateEffect(ship_id, device_id, "mining_visual_effect");
timer.ClearTimer(globalSalvageStorage.timer_id);
var data = { swtch: 1, ship_id: ship_id, device_id: device_id, slot_id: slot_id, timer_id: null, reset: 0 };
storage.SetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id, data);
//console.PrintError("cleared device timer: " + globalSalvageStorage.timer_id);
return 1;
}
else
{
//console.PrintError("null timer0");
return 0;
}
}
else
{
//console.PrintError("null globalSalvageStorage");
return 0;
}
}
}
},
SetDevice: function (sys_id, device_id, ship_id, timer_id) //IsWorking
{
game.IsShipPlayerControlled(ship_id);
var playerName = game.GetShipOwner(ship_id);
if (storage.IsSetGlobal("GlobalIndex_Player_" + playerName))
{
var someGlobalIndex = storage.GetGlobal("GlobalIndex_Player_" + playerName);
}
},
AddDeviceID: function (sys_id, device_id, slot_id, ship_id, timer_id)
{
game.IsShipPlayerControlled(ship_id);
var playerName = game.GetShipOwner(ship_id);
if (storage.IsSetGlobal("GlobalIndex_Player_" + playerName))
{
var someGlobalIndex = storage.GetGlobal("GlobalIndex_Player_" + playerName);
//storage.GetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id); //, { swtch: 1, ship_id: ship_id, device_id: device_id, slot_id: slot_id, timer_id: timer_id}
var globalSalvageStorage = storage.GetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id);
if (globalSalvageStorage != null) {
if (globalSalvageStorage.timer_id != null)
{
timer.ClearTimer(globalSalvageStorage.timer_id);
//console.PrintError("cleared device timer: " + globalSalvageStorage.timer_id);
}
else {
//console.PrintError("null timer1");
}
}
else {
//console.PrintError("null globalSalvageStorage");
}
var data = { swtch: 1, ship_id: ship_id, device_id: device_id, slot_id: slot_id, timer_id: timer_id, reset: 0 };
storage.SetGlobal("systemid_" + sys_id + "_ship_" + ship_id + "_salvage_device_" + device_id, data );
}
var deviceArray = [];
if (deviceArray == null)
{
deviceArray = [];
}
var objectData = { sys_id: sys_id, device_id: device_id, ship_id: ship_id };
deviceArray.push(objectData);
var arrayData = { index: deviceArray.length - 1, length: deviceArray.length };
return arrayData;
},
AddCounterFrame: function ()
{
counterFrame++;
return counterFrame;
},
GetCounterFrame: function () {
return counterFrame;
},
ResetCounterFrame: function ()
{
counterFrame = 0;
return counterFrame;
},
AddCounterDevice: function () {
counterDevice++;
return counterDevice;
},
GetCounterDevice: function () {
return counterDevice;
},
ResetCounterDevice: function () {
counterDevice = 0;
return counterDevice;
}
};
Page created in 0.029 seconds with 12 queries.