flagflag  If you want to see English page, please click "English" Button at Left.
Page Top

Events anchor.png

Page Top
MoneyTransferRequest anchor.png
  • 他のアバターへの直接的な支払い,ギフト (Gift: 5001)
  • event MoneyTransferRequest OnMoneyTransferRequest; (IClientAPI.cs)
  • MM.MoneyTransferRequest() は MoneyTransferArgs と Scene を生成して MM.MoneyTransferAction() を起動している.
MM.MoneyTransferRequest() -> MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")
  • オブジェクトを経由した,他のアバターへの間接的な支払い (PayObject: 5008)
  • LSL の money イベントが発生する
MM.MoneyTransferRequest() -> MM.MoneyTransferAction() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")
Page Top
EconomyDataRequest anchor.png
  • event EconomyDataRequest OnEconomyDataRequest; (IClientAPI.cs)
     
Page Top
MoneyBalanceRequest anchor.png
  • event MoneyBalanceRequest OnMoneyBalanceRequest; (IClientAPI.cs)
     
Page Top
ParcelBuy anchor.png
  • event ParcelBuy OnParcelBuy; (IClientAPI.cs)
     
Page Top
ParcelBuyPass anchor.png
  • event ParcelBuyPass OnParcelBuyPass; (IClientAPI.cs)
     
Page Top
RequestPayPrice anchor.png
  • event RequestPayPrice OnRequestPayPrice; (IClientAPI.cs)
     
Page Top
OnObjectBuy anchor.png
  • オブジェクト購入時に発生 (コピー,オリジナル,コンテンツ) (PayObject: 5008)
  • event ObjectBuy OnObjectBuy; (IClientAPI.cs)
  • ObjectBuy(), BuyObject() は Aurora/Modules/World/Entities/BuySell/Bu​ySellModule.cs で定義
ObjectBuy() -> MM.Transfer() => XML RPC to MS ("TransferMoney")
            -> BuyObject()
Page Top
BuyObjectInventory anchor.png
  • event BuyObjectInventory OnBuyObjectInventory; (IClientAPI.cs)
     
Page Top
LandBuy anchor.png
  • event LandBuy OnValidateBuyLan; (ISceneEntity.cs)
     
 
Page Top

Calling Sequence of Functions anchor.png

Page Top

LSL anchor.png

Page Top
llGiveMoney() anchor.png
  • Code: ObjectPays (5009)
MM.ObjectGiveMoney() -> MM.TransferMoney()      => XML RPC to MS ("TransferMoney")
                     -> MM.ForceTransferMoney() => XML RPC to MS ("ForceTransferMoney")
Page Top

Buy Money from System anchor.png

  • Code: BuyMoney (5010)
1. VW => XML RPC to helper SC ("getCurrencyQuote") => Response to VW 
2. VW => XML RPC to helper SC ("buyCurrency") -> SC.add_money() => XML RPC("AddBankerMoney") => MM => XML RPC("AddBankerMoney") => MS
                                              => Response to VW
Page Top

Buy Land anchor.png

  • Code: LandSale (5002)
  • OnParcelBuy event, ProcessParcelBuy() は Aurora の Land/ParcelManagementModule.cs で定義
1. VW => XML RPC to helper SC ("preflightBuyLandPrep") => Response to VW
2. OnParcelBuy event -> ProcessParcelBuy() -> MM.TransferMoney() => XML RPC to MS ("TransferMoney")
Page Top

Upload Inventory anchor.png

1. event -> AS.NewAgentInventoryRequest() -> AS.RequestUploadCovered() => XML RPC to RS ("UploadCovered")
2. event -> AS.UploadCompleteHandler() -> AS.RequestUploadCharge() => XML RPC to RS ("UploadCharge")
  • TCP: OpenSim/Services/CapsService/CAPModules/​InventoryCAPS.cs: NewAgentInventoryRequest()
  • TCP: OpenSim/Services/CapsService/CAPModules/​InventoryCAPS.cs: UploadCompleteHandler()
  • UDP: OpenSim/Region/CoreModules/Agent/AssetTr​ansaction/AssetTransactionModule.cs: HandleUDPUploadRequest()
  • OpenSim/Services/CapsService/CAPModules/​InventoryCAPS.cs: NewAgentInventoryRequest()
  • OpenSim/Services/CapsService/CAPModules/​InventoryCAPS.cs: HandleInventoryItemCreate()
     

  • Aurora-Sim では seed_capability として Robust サーバ(Aurora.Server)が指定される( OpenSim では Regionサーバ)
  • 従って,Uoload では Regionサーバでイベントが発生せず,Robustサーバ(Aurora.Server) でイベントが発生する.
  1. Robust サーバ(Aurora.Server) に MoneyModule をロードする.
    • 通常のモジュールの読み込みとしては?
    • OpenSim/Services/XXX/ にプログラムを作って,サービスとしてロードさせる.サービスは AuroraServerConfig/Main.ini の [Handlers]セクションで指定.
    • 詳細不明で断念.
  2. seed_capability を強制的に Regionサーバにする.
    • OpenSim/Services/LLLoginService/LLLoginR​​esponse.cs での LLLoginResponseクラスのコンストラクタ LLLoginResponse(...) で SeedCapability = destination.ServerURI + CapsUtil.GetCapsSeedPath(aCircuit.CapsPa​​th); を追加する.
    • 上記の手法により,seed_capability を強制的に Regionサーバにすることは可能.
    • この場合,OpenSim/Region/CoreModules/Agent/AssetTr​ansaction/AssetTransactionModule.cs: HandleUDPUploadRequest() がトリガーされる.
    • ただし,Regionサーバで Capabilityが定義されないため,Assetの Uploadの通信が UDPとなる(遅い!!)-> 断念.
    • 因みに,OpenSim ではこの部分には FillOutSeedCap() という関数が使用されている.
      FillOutSeedCap(aCircuit, destination, clientIP);
      
      private void FillOutSeedCap(AgentCircuitData aCircuit, GridRegion destination, IPEndPoint ipepClient)
      {
          SeedCapability =  destination.ServerURI + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath);
      }
  3. Robust サーバ(Aurora.Server) から Regionサーバの MoneyModule を呼び出す.
    • penSim/Services/CapsService/CAPModules/I​nventoryCAPS.cs 内でトリガーされる関数から XML RPCを使用して Regionサーバにアクセス.
    • この手法を採用!!
       
Page Top

Create Group anchor.png

event -> CreateGroup() -> MM.AmountCharge()
                       -> MM.ApplyCharge() -> MM.PayMoneyCharge() => XML RPC to MS ("PayMoneyCharge")
  • OpenSim/Region/CoreModules/Avatar/Groups​/GroupsModule.cs: CreateGroup()
     
Page Top

XML RPC (from MoneyServer): anchor.png

XML RPC from MS ("OnMoneyTransfered") => MM.OnMoneyTransferedHandler() -> money() event
XML RPC from MS ("UpdateBalance") => MM.BalanceUpdateHandler() => Notify to VW
 
Page Top

XML RPC (from external script) anchor.png

XML RPC from SC ("UpdateBalance") => MM.BalanceUpdateHandler() => Notify to VW
XML RPC from SC ("GetBalance") => MM.GetBalanceHandler() => XML RPC to MS ("GetBalance")
                                                         => Response to SC
XML RPC from SC ("UserAlert") => MM.UserAlertHandler() => Message to VW
  • SC.AddBankerMoney: Transaction Type is BuyMoney (5010)
  • SC.SendMoney: Transaction Type is ReferBonus (5003)
XML RPC from SC ("AddBankerMoney") => MM.AddBankerMoneyHandler() -> MM.AddBankerMoney() => XML RPC to MS ("AddBankerMoney") => MS.handleAddBankerMoney()
XML RPC from SC ("SendMoney") => MM.SendMoneyHandler() -> MM.SendMoney() => XML RPC to MS ("SendMoney")
 
Page Top

XML RPC (from Aurora.Server) anchor.png

XML RPC from AS ("UploadCovered") => MM.UploadCoveredHandler() => XML RPC to MS ("GetBalance") 
XML RPC from AS ("UploadCharge") => MM.UploadChargeHandler()  => XML RPC to MS ("PayMoneyCharge")
 

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom
Counter: 2570, today: 1, yesterday: 0
最終更新: 2012-11-26 (月) 11:01:00 (JST) (4167d) by iseki

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 4月翌月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
<今日>

オンライン状況

67 人のユーザが現在オンラインです。 (8 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 67

もっと...

アクセスカウンタ

今日 : 6426642664266426
昨日 : 6596659665966596
総計 : 2332392623323926233239262332392623323926233239262332392623323926
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com