文 件
簡介
平台概要
arcalet 平台是?
功能簡介
使用手冊
arcalet API
同步處理
事件處理
Callback
API Class
物件摘要
Error Code
參考手冊
ArcaletGame
Constructor
Method
Property
Event
ArcaletScene
Constructor
Method
Property
Event
ArcaletItem
Method
超級使用者
ArcaletScore
Method
超級使用者
ArcaletShop
Method
ArcaletSystem
Method
ArcaletThreadPool
Method
參考手冊ArcaletItem 》 Method

Method

public static void GetItemInstance(ArcaletGame game,OnCallCompletionWithData cb, object token)
game       登入的遊戲

取得玩家在該遊戲所擁有的物品,又稱為物品實例 ( instance )。
cb( code, obj ,token ) 的 obj 的型別為 List,List 的每一元素即為玩家所擁的物品之 instance ,以  Hashtable 記錄該物品的資料,共有六個 Key:

"iguid"      該物品的 iguid
"name"    該物品的名稱
"id"            該物品 instance 的 id
"now"       目前伺服器的系統時間,格式為  yyyy/mm/dd hh:mm:ss
"expire"	  該物品實例的到期時間,格式為 yyyy/mm/dd hh:mm:ss
"attr"         屬性。屬性資料為  key = value ,其中 key 是在開發者後台設定物品類別時
                  就已經指定好了,value 除了定義時的預設值外,其值是可以改變的。
由於屬性可以不只一個,因此此處也是以 List 來記錄, List 的元素型別為 Hashtable,當中有三個 Key:

"name"     屬性名稱,也就是 key。
"value"      屬性值
"stamp"    寫入此屬性值的時間

如果這個物品沒有設定屬性,則  Hashtable[“attr”] = null

void cb(int code, object obj)

 code    0                設定成功
             非 0            設定失敗

以下範例可將List中的元素一個一個取出:
C#
public static void GetItemInstance(ArcaletGame game,string iguid,OnCallCompletionWithData cb, object token)
game       登入的遊戲
iguid         指定要取得的物品的 iguid 

取得玩家在該遊戲所擁有的特定 iguid 之物品,又稱為物品實例 ( instance )。

cb( code, obj, token ) 的 obj 的型別為 List,List 的每一元素即為玩家所擁的物品之 instance,以 Hashtable 記錄該物品的資料,共有六個 Key:

"iguid"	    該物品的 iguid
"name"	    該物品的名稱
"id"	            該物品 instance 的 id
"now"	    目前伺服器的系統時間,格式為 yyyy/mm/dd hh:mm:ss
"expire"	    該物品實例的到期時間,格式為 yyyy/mm/dd hh:mm:ss
"attr"	    屬性。屬性資料為 key = value,其中 key 是在開發者後台設定物品類別時
                    就已經指定好了,value 除了定義時的預設值外,其值是可以改變的。

由於屬性可以不只一個,因此此處也是以 List 來記錄,List 的元素型別為 Hashtable,當中有三個 Key:
"name"	     屬性名稱,也就是 key。
"value"	     屬性值
"stamp"	     寫入此屬性值的時間

如果這個物品沒有設定屬性,則 Hashtable[“attr”] = null

void cb( int code, object obj, object token )

 code    0                設定成功
             非 0            設定失敗
public static void GetItemInstance(ArcaletGame game,string iguid, bool autonew,OnCallCompletionWithData cb, object token)
game	    登入的遊戲
iguid	    指定要取得的物品的 iguid
autonew	    true: 當玩家沒有此物品的實例 ( instance ) 時,則自動新增後傳回。

取得玩家在該遊戲所擁有的特定iguid之物品,又稱為物品實例 ( instance )。

cb(code,obj,token) 的 obj 的型別為 List,List 的每一元素即為玩家所擁的物品之 instance,以 Hashtable 記錄該物品的資料,共有六個 Key:

"iguid"	該物品的iguid
"name"	該物品的名稱
"id"	        該物品instance的id
"now"	目前伺服器的系統時間,格式為 yyyy/mm/dd hh:mm:ss
"expire"	物品效期,格式為 yyyy/mm/dd hh:mm:ss。物品效期必需在開發者後台的物品管理中設定,如果效期為「永久有效」,
                則傳回空字串。
"attr"	屬性。屬性資料為 key = value,其中key是在開發者後台設定物品類別時就已經指定好了,value除了定義時的預設值外,
                其值是可以改變的。

	由於屬性可以不只一個,因此此處也是以List來記錄,List的元素型別為Hashtable,當中有三個Key:

		"name"	屬性名稱,也就是key。
		"value"	屬性值
		"stamp"	寫入此屬性值的時間

	如果這個物品沒有設定屬性,則 Hashtable[“attr”] = null

void cb(int code, object obj, object token)

code    0                設定成功
             非 0            設定失敗
public static void GetItemInstance(ArcaletGame game,string[] iguidArray, OnCallCompletionWithData cb, object token)
game	        登入的遊戲
iguidArray	指定要取得的物品的 iguid 的字串陣列

取得玩家在該遊戲所擁有的特定 iguid 之物品,又稱為物品實例 ( instance ),此一 Overloading 傳遞 iguid 陣列,用來指定多個物品。

cb(code,obj,token) 的 obj 的型別為 List,List 的每一元素即為玩家所擁的物品之 instance,以 Hashtable 記錄該物品的資料,共有六個 Key:

"iguid"	該物品的 iguid
"name"	該物品的名稱
"id"		該物品 instance 的 id
"now"	目前伺服器的系統時間,格式為 yyyy/mm/dd hh:mm:ss
"expire"	物品效期,格式為 yyyy/mm/dd hh:mm:ss。物品效期必需在開發者後台的物品管理中設定,
                如果效期為「永久有效」,則傳回空字串。
"attr"	屬性。屬性資料為 key = value,其中 key 是在開發者後台設定物品類別時就已經指定好了, value 除了定義時的預設值外,
                其值是可以改變的。
	
由於屬性可以不只一個,因此此處也是以 List 來記錄,List的元素型別為 Hashtable,當中有三個 Key:

		"name"	屬性名稱,也就是 key。
		"value"	屬性值
		"stamp"	寫入此屬性值的時間

如果這個物品沒有設定屬性,則 Hashtable[“attr”] = null

void cb (int code, object obj, object token)

code    0                設定成功
             非 0            設定失敗

※ 請注意:如果參數 iguidArray 陣列中有任何一個 iguid 是錯誤的,就不會傳回任何錯誤,但是在傳回的 List 中就不會有此 iguid 的 instance 資料。
public static void GetItemClass(ArcaletGame game,int option, OnCallCompletionWithData cb, object token)
game	 登入的遊戲
option	 0	只取得在商城中沒有銷售的物品類別 ( 性質 )
                 1	只取得在商城中銷售的物品類別 ( 商品 )
                 2	全部的物品類別 ( 不含對玩家隱藏物品 ) ( 性質+商品 )
                 3	對玩家隱藏的物品 ( 資料 ) 

根據參數 option 的值,取得在開發者後台所定義的物品,又稱為物品類別。

cb( code, obj, token )的 obj 的型別為 List,List 的每一元素即為開發者所定義的物品,以 Hashtable 記錄該物品的資料,共有以下 Key:

"iguid"	  (string) 物品的 iguid
"name"	  (string) 物品的名稱
"desc"	  (string) 物品的描述
"type"	  (int) 物品類型,1: 商品,2: 性質,3: 資料
"price"	  (int) 價格
"image"    (string) 物品圖片之URL
"attr"	  屬性。屬性資料為 key = value。
	
由於屬性可以不只一個,因此此處也是以 List 來記錄,List 的元素型別為 Hashtable,當中有兩個 Key:
		
"name"	  屬性名稱,也就是 key。
"value"	  屬性值
	
如果這個物品沒有設定屬性,則 Hashtable[“attr”] = null

void cb( int code, object obj, object token )

 code    0                設定成功
             非 0            設定失敗

以下範例可將 List  中的元素一個一個取出:
C#
public static void GetItemClass(ArcaletGame game, string iguid,OnCallCompletionWithData cb, object token)
game        登入的遊戲
iguid          物品類別的 iguid 

依據物品的 iguid,取得該物品在開發者後台所定義的類別。

cb( code, obj, token )的 obj 的型別為 List,List 的元素即為開發者所定義的物品,由於此函只會傳回一個物品類別,因此傳回的 List 只會有一個元素;List 的元素 Hashtable 記錄該物品的資料,共有以下 Key:

"iguid"	     (string) 物品的 iguid
"name"	     (string) 物品的名稱
"desc"	     (string) 物品的描述
"type"	     (int) 物品類型,1: 商品,2: 性質,3: 資料
"price"	     (int) 價格
"image"	     (string) 物品圖片之 URL
"attr"	     屬性。屬性資料為 key = value。
	
由於屬性可以不只一個,因此此處也是以 List 來記錄,List 的元素型別為 Hashtable,當中有兩個 Key:

"name"	      屬性名稱,也就是 key。
"value"	      屬性值

如果這個物品沒有設定屬性,則 Hashtable[“attr”] = null

code    0                設定成功
             非 0            設定失敗
public static void GetItemClass(ArcaletGame game, string[] iguidArray,OnCallCompletionWithData cb, object token)
game	        登入的遊戲
iguidArray	欲取的的多個物品類別的iguid陣列

依據物品的 iguid,取得該物品在開發者後台所定義的類別。

cb(code,obj,token) 的 obj 的型別為 List,List 的元素即為開發者所定義的物品,由於此函只會傳回一個物品類別,因此傳回的 List 只會有一個元素;List 的元素 Hashtable 記錄該物品的資料,共有以下 Key:

"iguid"	(string) 物品的 iguid
"name"	(string) 物品的名稱
"desc"	(string) 物品的描述
"type"	(int) 物品類型,1: 商品,2: 性質,3: 資料
"price"	(int) 價格
"image"	(string) 物品圖片之 URL
"attr"	屬性。屬性資料為 key = value。
	
由於屬性可以不只一個,因此此處也是以 List 來記錄,List 的元素型別為 Hashtable,當中有兩個 Key:

"name"	屬性名稱,也就是 key。
"value"	屬性值
	
如果這個物品沒有設定屬性,則 Hashtable[“attr”] = null

void cb(int code, object obj, object token)

code    0                設定成功
             非 0            設定失敗

※ 請注意:如果參數 iguidArray 陣列中有任何一個 iguid 是錯誤的,就不會傳回任何錯誤,但是在傳回的 List 中就不會有此 iguid 的 instance 資料。
public static void NewItemInstance(ArcaletGame game,string iguid,OnCallCompletionWithData cb, object token)
game          登入的遊戲
iguid            物品類別的 iguid 

新增物品 instance。

當遊戲進行時,玩家因故取得物件,就可以使用此 method 新增一個物品的實例。

void cb( int code, object id, object token )

code	0	       新增物品成功
	       非 0	       新增物品失敗

id	當新增物品成功,此處所傳回的 id 為新增的物品實例之 instance id,請將此參數改型 ( cast ) 為 int。
		
※ 請注意:所新增的物品若在管理後台設定為「合併屬性值且不建立新的物品」,則回傳 itemid=0。
public static void SetItemInstanceAttribute(ArcaletGame game,string iguid,int id,string[] attrNameArray,string attrValueArray,OnCallCompletion cb, object token)
game	登入的遊戲
iguid	物品類別的iguid
id	        玩家所擁有,且要設定屬性的物品實例之instance id
attrNameArray	要設定的屬性名稱
attrValueArray	要設定的屬性值

設定玩家在遊戲中的物件實例的屬性值。

void cb(int code, object token)
	
code    0                設定成功
             非 0            設定失敗
public static void SetItemInstanceAttribute(ArcaletGame game,string iguid,int id,string attrName,string[] attrValue,OnCallCompletion cb, object token)
game	登入的遊戲
iguid	物品類別的 iguid
id	        玩家所擁有,且要設定屬性的物品實例之 instance id
attrName	要設定的屬性名稱之陣列字串
attrValue	要設定的屬性值之陣列字串

設定玩家在遊戲中的物件實例的屬性值。

void cb(int code, object token)

code    0                設定成功
             非 0            設定失敗
public static void GetItemInstanceAttribute(ArcaletGame game,string iguid,int id,string attrName,OnCallCompletionWithData cb, object token)
game	        登入的遊戲
iguid	        物品類別的 iguid
id	                玩家所擁有,且要設定屬性的物品實例之 instance id
attrName	要取值的屬性名稱

取得玩家在遊戲中的物件實例的屬性值。

cb( code, obj, token ) 的 obj 的型別為 Hashtable,共有以下 Key:

"name"	       屬性名稱,也就是參數 attrName
"value"	       屬性值
"stamp"	       寫入此屬性值的時間
"now"	       目前伺服器的系統時間,格式為 yyyy/mm/dd hh:mm:ss

void cb( int code, object obj, object token )

code	0	     設定成功
	       非 0	     設定失敗
public static void GetItemInstanceAttribute(ArcaletGame game,string iguid,int id,string[] attrNameArray,OnCallCompletionWithData cb, object token)
game	登入的遊戲
iguid	物品類別的 iguid
id	        玩家所擁有,且要設定屬性的物品實例之 instance id
attrNameArray	要取值的屬性名稱之陣列

取得玩家在遊戲中的物件實例的屬性值。

cb(code,obj,token) 的 obj 的型別為 List,List 中的每個 Hasthtable 元素就是傳回的屬性資料,Hasthtable 共有以下 Key:

"name"	屬性名稱,也就是參數 attrName
"value"	屬性值
"stamp"	寫入此屬性值的時間
"now"	目前伺服器的系統時間,格式為 yyyy/mm/dd hh:mm:ss

void cb(int code, object obj, object token)

code	0	     設定成功
	       非 0	     設定失敗

※ 請注意:如果指定的 attrNameArray 陣列中有任何一個屬性名稱是錯誤或不存在的,並不會傳回任何錯誤,但是傳回的 List 資料中不會有這個錯誤屬性的資料。
public static void DeleteItemInstance(ArcaletGame game,string iguid,int id,OnCallCompletion cb, object token)
game	   登入的遊戲
iguid	   物品類別的 iguid
id	           玩家擁有的物品實例之 instance id  

刪除物品 instance。

void cb( int code, object token )

code	0	     設定成功
		非 0	     設定失敗
public static void GetMallURL(ArcaletGame game, int type,string iguid,OnCallCompletionWithData cb, object token)
game	      登入的遊戲
type	web      頁面版本,0: 行動版頁面,1: 一般頁面
iguid	      物品類別的 iguid,如果傳空字串,則 URL 為該遊戲的商城頁面

cb( code, obj, token ) obj 的型別為 string,傳回遊戲 Item 商城 URL,分為行動版與一般網頁版

void cb( int code, object obj, object token )

code	0	     設定成功
		非 0	     設定失敗
public static void GetItemInstanceNumber(ArcaletGame game, string iguid, OnCallCompletionWithData cb, object token)
game	登入的遊戲
iguid	物品類別的 iguid

取得某物品類別已經建立的物品實例個數,透過 callback cb() 的參數 obj 傳回。

cb(code, obj, token)	obj 的型別為 int,傳回物品實例個數。

void cb(int code, object obj, object token)
	
code	0	    設定成功
		非0	    設定失敗

obj	物品實例個數,必須改型 ( cast ) 為 int。
public static void ResetMallItemStatus(ArcaletGame game, string iguid, OnCallCompletion cb, object token)
game	登入的遊戲
iguid	物品類別的 iguid

重置指定 iguid 的商品在商城中的狀態,商品狀態分為三種,正常、隱藏、鎖住,重置後將變成「正常的狀態」 。

void cb(int code, object token)

code	0	    重置成功
		非0	    重置失敗
public static void ChangeMallItemStatus(ArcaletGame game, string iguid, int status,OnCallCompletion cb, object token)
game	登入的遊戲
iguid	物品類別的 iguid
status	商品狀態。
	0:	正常
	1:	隱藏
	2:	鎖住

依照參數 status 的值,改變指定 iguid 的商品在商城中的狀態。

void cb(int code, object token)
	
code	0	    設定成功
		非0	    設定失敗
Was this page helpful?
Yes No