Krafties Scripting API

From Krafties
Revision as of 00:28, 21 January 2013 by Admin (talk | contribs)
Jump to navigation Jump to search

Creature/Pet API

The Krafties Scripting API is a feature which allows you to get data from your Kraftie Creature for your own scripted third party addons.

Currently this is read only although gives access to a wide range of possibilities.

This API relies on listening to 1 minute pings on channel -748382747 from inworld Krafties Creatures.

Creatures will communicate on this channel once on_rez and then every 60 seconds during battle.


Message format is a string delimited by "|" containing every prim UUID. (16 Prims)

prim1UUID|prim2UUID|prim3UUID|prim4UUID|prim5UUID|prim6UUID|prim7UUID|prim8UUID|prim9UUID|prim10UUID|prim11UUID|prim12UUID|prim13UUID|prim14UUID|prim15UUID|prim16UUID


Parsing this string to a list you can get the prims data from the description using llGetObjectDetails (PRIM_DESC)


PRIM DESCRIPTION FORMATS

Prim 1 Description: "Bonded "+(string)species+ " - "+(string)elementType

Prim 2 Description: (string)creatureID()+";"+(string)elementType+";"+(integer)unixTimeCaught+";"+(string)elementAffinity

Prim 3 Description: (string)battleStyle

Prim 4 Description: (integer)hitpoints

Prim 5 Description: (string)volumeString+";"+(float)volumeFloat

Prim 6 Description: (integer)attackBonusLevels+","+(integer)attackBonusLevels+","+(integer)strengthBonusLevels+","+(integer)defenseBonusLevels+","+(integer)hitpointsBonusLevels+","+(integer)craftingBonusLevels+";"+(integer)intellectBonusLevels+";"+(integer)focusBonusLevels+";"+(integer)fortitudeBonusLevels+";"+(float)attackBonusMult+","+(float)strengthBonusMult+","+(float)defenseBonusMult+","+(float)hitpointsBonusMult+","+(float)craftingBonusMult+","+(float)intellectBonusMult+","+(float)focusBonusMult+","+(float)fortitudeBonusMult

Prim 7 Description: (float)attackNaturalMult+","+(float)attackNaturalMult+","+(float)strengthNaturalMult+","+(float)defenseNaturalMult+","+(float)hitpointsNaturalMult+","+(float)intellectNaturalMult+","+(float)focusNaturalMult+","+(float)fortitudeNaturalMult

Prim 8 Description: (integer)recentAttackExp+","+(integer)recentAttackExp+","+(integer)recentStrengthExp+","+(integer)recentDefenseExp+","+(integer)recentHitpointsExp+","+(integer)recentCraftingExp+","+(integer)recentIntellectExp+","+(integer)recentFocusExp+","+(integer)recentFortitudeExp+","+(key)expEarnerPlayerKey

Prim 9 Description: (integer)isInPvp+";"+(integer)isInCrafting+";"+(integer)isHovertextOn

Prim 10 Description: UNUSED

Prim 11 Description: (integer)getAffinity

Prim 12 Description: UNUSED

Prim 13 Description: (integer)silverMembershipExpiryUnixTime+";"+(integer)goldMembershipExpiryUnixTime

Prim 14 Description: UNUSED

Prim 15 Description: (integer)isPetDisabled

Prim 16 Description: (integer)attackLevel+","+(integer)strengthLevel+","+(integer)defenseLevel+","+(integer)hitpointsLevel+","+(integer)craftingLevel+","+(integer)intellectLevel+","+(integer)focusLevel+","+(integer)fortitudeLevel+";"+(integer)attackExp+","+(integer)strengthExp+","+(integer)defenseExp+","+(integer)hitpointsExp+","+(integer)craftingExp+","+(integer)intellectExp+","+(integer)focusExp+","+(integer)fortitudeExp


Battles API

The Krafties Battle Scripting API is a feature which allows you to get data from your battles for your own scripted third party addons such as scoreboards, contest/tournament boards or other assisting objects.

Currently this is read only although gives access to a wide range of possibilities.

This API relies on listening on channel -74838278 from inworld Battle temples.


Battle temples will communicate on different events:

Battle Start

Battle End

Player Eliminated


These messages will be send on the corresponding event. There are 2 lists delimited by "," & "|" into a string.

By matching matchID you will be able to link temples for successful battles.


list playersData = [playerKey, petKey, petID, petLevel, manaLeft, energyLeft, lastPingTime, playerKey, petKey, petID, petLevel, manaLeft, energyLeft, lastPingTime]; // 2 players strided by 7

list eliminatedPlayersData = [playerKey, petKey, petID, petLevel, manaLeft, energyLeft, lastPingTime, playerKey, petKey, petID, petLevel, manaLeft, energyLeft, lastPingTime, playerKey, petKey, petID, petLevel, manaLeft, energyLeft, lastPingTime]; // 3 players strided by 7

"PLAYER_ELIMINATED|"+(string)matchID+"|"+(string)playerKey+"|"+llDumpList2String(playersData, ",")+"|"+llDumpList2String(eliminatedPlayersData, ","));

"BATTLE_ENDED|"+(string)matchID+"|"+(string)win+"|"+llDumpList2String(playersData, ",")+"|"+llDumpList2String(eliminatedPlayersData, ","));

"BATTLE_STARTED|"+(string)matchID+"|"+battleMode+"|"+llDumpList2String(playersData, ",") );