Difference between revisions of "User:Ath/WebAPI Examples"

From Team Fortress Wiki
Jump to: navigation, search
m (moved WebAPI/Examples to User:Ath/WebAPI Examples: An API document is not the place for this kind of example)
m (comment out category on user page)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{delete|We document the API, not provide tutorials for a language.}}
+
This page is intended as a quick reference for working with the [[WebAPI]]. As such, it is intended to provide a basic explanation of how to understand and work with certain fields, not act as a tutorial.
  
= [[../GetPlayerItems|GetPlayerItems]] Inventory Token =
+
==[[WebAPI/GetPlayerItems|GetPlayerItems]]==
  
== Extracting Item Position and Equipped Classes ==
+
===inventory===
 +
Contains a binary token encoded in denary form. The first 16 least significant bits denote an item's position within the backpack, the following 16 bits indicate which classes an item is currently equipped to. The first two most significant bits are currently unused.
  
=== C99/C++ ===
+
===contained_item===
 +
Contains a sub-array with the id, defindex and quality of a giftwrapped item.
  
#define CLASS_SCOUT    0
+
===attributes===
#define CLASS_SNIPER    1
+
Has a variable number of sub-arrays containing an attribute definition index and values. See the [[List_of_Item_Attributes|list]] for a complete overview of all attributes.
#define CLASS_SOLDIER  2
 
#define CLASS_DEMOMAN  3
 
#define CLASS_MEDIC    4
 
#define CLASS_HEAVY    5
 
#define CLASS_PYRO      6
 
#define CLASS_SPY      7
 
#define CLASS_ENGINEER  8
 
 
uint32 ExtractBackpackPosition( uint32 unInventoryToken )
 
{
 
  return unInventoryToken & 0xFFFF;
 
}
 
 
bool IsEquippedForClass( uint32 unInventoryToken, uint32 unClass )
 
{
 
  return 0 != unInventoryToken & ( 1 << ( unClass + 16 ) );
 
}
 
  
=== Lua ===
+
==[[WebAPI/GetSchema|GetSchema]]==
  
function extract_backpack_position(inventory_token)
+
===proper_name===
  return inventory_token % 2^16
+
If true, indicates the presence of a language-specific prefix, ignored when non-Unique quality is set.
end
 
 
function is_equipped_for_class(inventory_token, class)
 
  return inventory_token % 2^(class+17) >= 2^(class+16)
 
end
 
  
=== PHP ===
+
==Misc==
 
+
{| class="wikitable grid"
function is_equipped($inventory_token)
+
! class="header" | №
{
+
! class="header" | Color
  return ($inventory_token & 0x0FFF0000) ? true : false;
+
! class="header" | Quality Name
}
+
|-
 
+
! 0
function is_equipped_for_class($class, $inventory_token)
+
| style="background:#B2B2B2" | #B2B2B2
{
+
| [[#Normal Items|Normal]]
  return ($inventory_token & 0x80000000) && ($inventory_token & (0x00010000 << $class));
+
|-
}
+
! 1
 
+
| style="background:#4D7455" | #4D7455
function extract_backpack_position($inventory_token)
+
| [[#Genuine Items|Genuine]]
{
+
|-
  return $inventory_token & 0x0000FFFF;
+
! 2
}
+
| style="background:#8D834B" | #8D834B
 
+
| Rarity2
//Takes: Numeric Inventory Token (Non binary, eg. 2169962633)
+
|-
//Returns: Array of classes, the item is weared on. (Eg. array("Engineer","Scout"))
+
! 3
+
| style="background:#476291" | #476291
function getEqupped($invtok)
+
| [[#Vintage Items|Vintage]]
{
+
|-
    // The function is pretty messy :P
+
! 4
    $va = substr(base_convert($invtok,10,2),7,9);
+
| style="background:#CF6A32" | #CF6A32
    $res = array();
+
| Rarity3
    if(substr($va,0,1))
+
|-
    {
+
! 5
    array_push($res,"Engineer");
+
| style="background:#8650AC" | #8650AC
    }
+
| [[#Unusual Items|Unusual]]
    if(substr($va,1,1))
+
|-
    {
+
! 6
    array_push($res,"Spy");
+
| style="background:#FFD700" | #FFD700
    }
+
| [[#Unique Items|Unique]]
    if(substr($va,2,1))
+
|-
    {
+
! 7
      array_push($res,"Pyro");
+
| style="background:#70B04A" | #70B04A
    }
+
| [[#Community Items|Community]]
    if(substr($va,3,1))
+
|-
    {
+
! 8
      array_push($res,"Heavy");
+
| style="background:#A50F79" | #A50F79
    }
+
| [[#Valve Weapons|Developer]]
    if(substr($va,4,1))
+
|-
    {
+
! 9
    array_push($res,"Medic");
+
| style="background:#70B04A" | #70B04A
    }
+
| [[#Self-made Items|Self-Made]]
    if(substr($va,5,1))
+
|-
    {
+
! 10
    array_push($res,"Demoman");
+
| style="background:#476291" | #476291
    }
+
| Customized
    if(substr($va,6,1))
+
|-
    {
+
|}
    array_push($res,"Soldier");
+
<!-- [[Category:WebAPI|Examples]] -->
    }
 
    if(substr($va,7,1))
 
    {
 
    array_push($res,"Sniper");
 
    }
 
    if(substr($va,8,1))
 
    {
 
    array_push($res,"Scout");
 
    }
 
    return $res;
 
}
 
 
 
[[Category:WebAPI|Examples]]
 

Latest revision as of 03:50, 30 November 2011

This page is intended as a quick reference for working with the WebAPI. As such, it is intended to provide a basic explanation of how to understand and work with certain fields, not act as a tutorial.

GetPlayerItems

inventory

Contains a binary token encoded in denary form. The first 16 least significant bits denote an item's position within the backpack, the following 16 bits indicate which classes an item is currently equipped to. The first two most significant bits are currently unused.

contained_item

Contains a sub-array with the id, defindex and quality of a giftwrapped item.

attributes

Has a variable number of sub-arrays containing an attribute definition index and values. See the list for a complete overview of all attributes.

GetSchema

proper_name

If true, indicates the presence of a language-specific prefix, ignored when non-Unique quality is set.

Misc

Color Quality Name
0 #B2B2B2 Normal
1 #4D7455 Genuine
2 #8D834B Rarity2
3 #476291 Vintage
4 #CF6A32 Rarity3
5 #8650AC Unusual
6 #FFD700 Unique
7 #70B04A Community
8 #A50F79 Developer
9 #70B04A Self-Made
10 #476291 Customized