/** * Copyright (c)2000-2002 Sony Online Entertainment Inc. * All Rights Reserved * * Title: actor.script * Description: temp actor script for handling pay transactions * @author $Author:$ * @version $Revision:$ */ /***** INCLUDES ********************************************************/ include library.money; include library.utils; include library.prose; /***** CONSTANTS *******************************************************/ const string HANDLER_DETACH_ME = "handleDetachMe"; /***** TRIGGERS *************************************************/ trigger OnInitialize() { detachScript(self, money.SCRIPT_PAY_ACTOR); return SCRIPT_CONTINUE; } /***** MESSAGEHANDLERS *************************************************/ messageHandler handleDetachMe() { detachScript(self, money.SCRIPT_PAY_ACTOR); return SCRIPT_CONTINUE; } messageHandler handlePayDeposit() { //debugSpeakMsg(self, "handlePayDeposit - " + params.toString()); //debugSpeakMsg(self, "handlePayDeposit: entering"); if ( (params == null) || (params.isEmpty()) ) { messageTo(self, HANDLER_DETACH_ME, null, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; } obj_id target = params.getObjId(money.DICT_TARGET_ID); int total = params.getInt(money.DICT_TOTAL); string returnHandler = params.getString(money.DICT_PAY_HANDLER); if ( total < 1 ) { //debugSpeakMsg(self, "handlePayDeposit: passed invalid args in params"); messageTo(self, HANDLER_DETACH_ME, null, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; } int retCode = money.getReturnCode(params); switch (retCode) { case money.RET_SUCCESS: //debugSpeakMsg(self, "handlePayDeposit: ret code = SUCCESS"); if ( (target == null) || (target == obj_id.NULL_ID) ) { string acct = params.getString(money.DICT_ACCT_NAME); //debugSpeakMsg(self, "handlePayDeposit: target = " + target + " acct = " + acct); if ( (acct == null) || (acct.equals("")) ) { messageTo(self, HANDLER_DETACH_ME, null, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; } else { transferBankCreditsToNamedAccount(self, acct, total, money.HANDLER_PAY_PASS, money.HANDLER_PAY_FAIL, params); utils.moneyOutMetric(self, acct, total); } } else { transferBankCreditsTo(self, target, total, money.HANDLER_PAY_PASS, money.HANDLER_PAY_FAIL, params); } return SCRIPT_CONTINUE; default: //debugSpeakMsg(self, "handlePayDeposit: ret code = NOT success"); if ( (target == null) || (target == obj_id.NULL_ID) ) { string acct = params.getString(money.DICT_ACCT_NAME); if ( (acct == null) || (acct.equals("")) ) { messageTo(self, HANDLER_DETACH_ME, null, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; } else { prose_package pp = prose.getPackage(money.PROSE_PAY_FAIL, acct, total); sendSystemMessageProse(self, pp); messageTo(self, returnHandler, params, 0, true); } } else { string targetName = params.getString(money.DICT_TARGET_NAME); if ( targetName != null && !targetName.equals("") ) { prose_package pp = prose.getPackage(money.PROSE_PAY_FAIL, self,null,null, target,targetName,null, null,null,null, total, 0f); sendSystemMessageProse(self, pp); } else { prose_package pp = prose.getPackage(money.PROSE_PAY_FAIL, self, target, total); sendSystemMessageProse(self, pp); } messageTo(target, returnHandler, params, 0, isObjectPersisted(target)); } messageTo(self, HANDLER_DETACH_ME, null, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; } } messageHandler handlePayPass() { //debugSpeakMsg(self, "handlePayPass: payment success!"); if ( (params == null) || (params.isEmpty()) ) { messageTo(self, HANDLER_DETACH_ME, null, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; } int retCode = money.getReturnCode(params); switch (retCode) { case -1: params.put(money.DICT_CODE, money.RET_SUCCESS); break; case money.RET_FAIL: messageTo(self, money.HANDLER_PAY_FAIL, params, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; } obj_id target = params.getObjId(money.DICT_TARGET_ID); int total = params.getInt(money.DICT_TOTAL); boolean notify = params.getBoolean(money.DICT_NOTIFY); if ( notify ) { if ( (target == null) || (target == obj_id.NULL_ID) ) { string acct = params.getString(money.DICT_ACCT_NAME); if ( (acct == null) || (acct.equals("")) ) { } else { string_id sid_acct = new string_id(money.STF_ACCT_N, toLower(acct)); if ( sid_acct != null ) { prose_package ppSidAcct = prose.getPackage(money.PROSE_PAY_ACCT_SUCCESS, sid_acct, total); sendSystemMessageProse(self, ppSidAcct); } else { prose_package ppAcct = prose.getPackage(money.PROSE_PAY_ACCT_SUCCESS, acct, total); sendSystemMessageProse(self, ppAcct); } } } else { string targetName = params.getString(money.DICT_TARGET_NAME); if ( targetName != null && !targetName.equals("") ) { prose_package pp = prose.getPackage(money.PROSE_PAY_SUCCESS, self,null,null, target,targetName,null, null,null,null, total, 0f); sendSystemMessageProse(self, pp); } else { prose_package pp = prose.getPackage(money.PROSE_PAY_SUCCESS, self, target, total); sendSystemMessageProse(self, pp); } } } string returnHandler = params.getString(money.DICT_PAY_HANDLER); int msgPayer = params.getInt(money.DICT_MSG_PAYER); if ( (target != null) && (target != obj_id.NULL_ID) && (msgPayer == 0) ) { messageTo(target, returnHandler, params, 0, isObjectPersisted(target)); } else { messageTo(self, returnHandler, params, 0, true); } messageTo(self, HANDLER_DETACH_ME, null, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; } messageHandler handlePayFail() { //debugSpeakMsg(self, "handlePayFail: payment failed!"); if ( (params == null) || (params.isEmpty()) ) { messageTo(self, HANDLER_DETACH_ME, null, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; } params.put(money.DICT_CODE, money.RET_FAIL); string returnHandler = params.getString(money.DICT_PAY_HANDLER); obj_id target = params.getObjId(money.DICT_TARGET_ID); if ( (target == null) || (target == obj_id.NULL_ID) ) { messageTo(self, returnHandler, params, 0, true); } else { messageTo(target, returnHandler, params, 0, isObjectPersisted(target)); } messageTo(self, HANDLER_DETACH_ME, null, 0, isObjectPersisted(self)); return SCRIPT_CONTINUE; }