flagflag  
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")
 

Front page   Freeze Diff Backup Copy Rename Reload   New List of Pages Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom)
Counter: 2572, today: 2, yesterday: 0
Last-modified: 2012-11-26 (Mon) 11:01:00 (JST) (4169d) by iseki

Site Search

Login

Username:

Password:


Lost Password?
Register now!!

Sub Menu

mini Calendar

Last MonthApr 2024Next Month
Su Mo Tu We Th Fr Sa
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
Today

Who's Online

90 user(s) are online (9 user(s) are browsing xpwiki)

Members: 0
Guests: 90

more...

Access Counter

Today : 1497914979149791497914979
Yesterday : 1406514065140651406514065
Total : 2335600123356001233560012335600123356001233560012335600123356001
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com