====== 服务器PHP代码模块示例 ======
===== 初始化角色/返回结构/Redis =====
//get my character
global $my_character_id;
global $final_result_array;
global $redismanager_proto;
===== 读取角色数据 =====
一般来说character info不需要判断是否存在
其他某些返回需要判断返回的count
//get character info from database
$character_info=game_get_character_ref_info("character_info","*",$my_character_id,false)[0];
===== 读取Redis =====
is_numeric是必要的保护,如果$redismanager_proto->getinfo 第二个参数送 “” 返回全部数据
获取一个array也是可以的,可以进行遍历
//get config from redis
$package_setting = json_decode($redismanager_proto->getinfo("package_setting"));
$item_config = json_decode($redismanager_proto->getinfo("$item_config", $item_id));
if(is_numeric($item_config))
{
SendToClient_ErrorCode(4299);//add error code desc
return;
}
$award_by_level_configs = $redismanager_proto->getinfo_array("award_by_level_config");
foreach($award_by_level_configs as $award)
{
break;
}
===== 执行Condition/Cost/Income =====
//do condition/income/cost
$condition_str = "(1002,5)";
$cost_str = "(1*50)";
$income_str = "(200102*1),(2*10)";
if(!C_condition::handle_all($my_character_id,$condition_str,$cost_str,$income_str,0))
{
SendToClient_Array($final_result_array);
return false;
}
===== 更新数据 =====
//do update to database
$tablename="character_statistic_info";
$update_fields = "bagslot_num=$final_size,bag_expand=$times";
$update_condition = "id=$my_character_id";
game_update_character_into($tablename,$update_fields,$update_condition,false);
===== 插入数据 =====
要注意数据库设置 联合主键的情况
//log 任务完成
$parameters_arr=array();
$parameters_arr["character_id"]=$my_character_id;
$parameters_arr["task_id"]=$task_id;
$parameters_arr["commit_time"]="now()";
$parameters_arr["status"]=$task_config_obj->type;
$append="ON DUPLICATE KEY UPDATE commit_time=now()";
sql_insert_value("task_info",$parameters_arr,$append);
===== 删除数据 =====
//删除此道具
$tablename="item_info";
$delete_condition = "character_id=$my_character_id and id=$item_ins_id";
game_delete_character_into($tablename,$delete_condition,false);
===== 返回数据 =====
$final_result_array["item_info"]=UT_json_encode(game_get_character_ref_info("item_info","*",$my_character_id,false));
SendToClient_Array($final_result_array);