Gm_InputFunc_Handle["给"] <- function(SUser, CmdString) {
    local count = -1;
    local pos = 0;
    local handler = [];
    do {
        local start = pos;
        pos = CmdString.find(" ", pos + 1);
        if (pos != null) {
            handler.append(CmdString.slice(start + 1, pos));
        } else
            handler.append(CmdString.slice(start + 1));
        count = count + 1
    } while (pos != null)

    //得到空格数量
    if (count == 1) {
        local Ret = SUser.GiveItem(handler[1].tointeger(), 1);
        if (!Ret) SUser.SendNotiPacketMessage("发送失败背包是不是满了", 8);
    } else if (count == 2) {
        local Ret = SUser.GiveItem(handler[1].tointeger(), handler[2].tointeger());
        if (!Ret) SUser.SendNotiPacketMessage("发送失败背包是不是满了", 8);
    }
}

Gm_InputFunc_Handle["转职"] <- function(SUser, CmdString) {
    local count = -1;
    local pos = 0;
    local handler = [];
    do {
        local start = pos;
        pos = CmdString.find(" ", pos + 1);
        if (pos != null) {
            handler.append(CmdString.slice(start + 1, pos));
        } else
            handler.append(CmdString.slice(start + 1));
        count = count + 1
    } while (pos != null)

    //得到空格数量
    if (count == 1) {
        SUser.ChangeGrowType(handler[1].tointeger(), 0);
        SUser.SendNotiPacket(0, 2, 0);
        SUser.InitSkillW(handler[1].tointeger(), 0);
    } else if (count == 2) {
        SUser.ChangeGrowType(handler[1].tointeger(), handler[2].tointeger());
        SUser.SendNotiPacket(0, 2, 0);
        SUser.InitSkillW(handler[1].tointeger(), handler[2].tointeger());
    }
}


Gm_InputFunc_Handle["完成任务"] <- function(SUser, CmdString) {
    SUser.ClearQuest_Gm(674);
    SUser.ClearQuest_Gm(649);

    SUser.ClearQuest_Gm(675);
    SUser.ClearQuest_Gm(650);

    SUser.ClearQuest_Gm(4414);

    SUser.ClearQuest_Gm(2603);
    SUser.ClearQuest_Gm(2610);
    SUser.ClearQuest_Gm(2613);
    SUser.ClearQuest_Gm(2622);
    SUser.ClearQuest_Gm(4391);
    SUser.ClearQuest_Gm(4539);

    SUser.ClearQuest_Gm(220);
    SUser.ClearQuest_Gm(221);
}

Gm_InputFunc_Handle["升级"] <- function(SUser, CmdString) {
    local count = -1;
    local pos = 0;
    local handler = [];
    do {
        local start = pos;
        pos = CmdString.find(" ", pos + 1);
        if (pos != null) {
            handler.append(CmdString.slice(start + 1, pos));
        } else
            handler.append(CmdString.slice(start + 1));
        count = count + 1
    } while (pos != null)

    //得到空格数量
    if (count == 1) {
        SUser.SetCharacLevel(handler[1].tointeger());
    }
}

Gm_InputFunc_Handle["点券"] <- function(SUser, CmdString) {
    local count = -1;
    local pos = 0;
    local handler = [];
    do {
        local start = pos;
        pos = CmdString.find(" ", pos + 1);
        if (pos != null) {
            handler.append(CmdString.slice(start + 1, pos));
        } else
            handler.append(CmdString.slice(start + 1));
        count = count + 1
    } while (pos != null)

    //得到空格数量
    if (count == 1) {
        SUser.RechargeCera(handler[1].tointeger());
    }
}

Gm_InputFunc_Handle["test"] <- function(SUser, CmdString) {




}






Timer.SetTimeOut(function() {

    // // Sq_Rsa_GenerateKey();
    // local str = format("%08x010101010101010101010101010101010101010101010101010101010101010155914510010403030101", 1);
    // local Byte = Sq_Rsa_Private_Encrypt(str);
    // local EnStr = _base64_encode(Byte);
    // print(EnStr);

    // local passwd = "1";

    // Sq_WriteByteArr(S_Ptr("0x081E907E"), [0x90, 0x90, 0x90, 0x90, 0x90]);
    // Sq_WriteByteArr(S_Ptr("0x0081E9085"), [0x0F, 0x94, 0xC0]);

    // Sq_WriteByteArr(S_Ptr("0x81731F2"), Haker.AsmGenerateMcd(
    //     "mov eax,0",
    //     "ret" ));

}, 1);


// // //玩家新增道具时
// Cb_wdzsdfge_Enter_Func <- {};
// Cb_wdzsdfge_Leave_Func <- {};
// _Hook_Register_Currency_Func_("0x81731F2", ["pointer", "pointer", "pointer", "int"], Cb_wdzsdfge_Enter_Func, Cb_wdzsdfge_Leave_Func);



// Cb_wdzsdfge_Leave_Func["11"] <- function(args) {
//     print("登录请求： ");
//     print("args[0]: " + args[0]);
//     NativePointer(args[0]).Output(512);
//     print("args[1]: " + args[1]);
//     //NativePointer(args[1]).Output(512);
//     print("args[2]: " + args[2]);
//     NativePointer(args[2]).Output(512);
// }

