247140593 发表于 2010-5-16 17:57:09

重金请Amxx高手帮忙合成这几个源代码,谢谢!

请下载贴子附件原码插件!这些代码转amxx有错误,请高手帮忙纠正一下,谢谢
结合下面几种插件,我希望能做出一个具有注册保存功能的HP等级升级插件,希望对各位有帮助!
当然如果与我分享当然感谢万分了!

//==========================储存数据

//这里是关于玩家连接服务器的相关函数
//我们可以用这个函数定义
//当玩家进入服务器时,读取玩家的经验,等级等等相关数据

public client_connect(id)
{
    // 如果是保存经验,才会读取数据
    if(get_pcvar_num(SaveXP) == 1)
    {
      // 读取玩家的数据
      LoadData(id)
    }

//这个是玩家离开了服务器的相关函数

public SaveData(id)
{
    // 获取玩家的steam ID,我们将要用steam ID来记录数据
    new AuthID get_user_authid(id,AuthID,34)
    new vaultkey,vaultdata
    // 设计当进行本模式时候的vault文件
    format(vaultkey,63,"%s-Mod",AuthID)
    format(vaultdata,255,"%i#%i#",PlayerXP,PlayerLevel)
    // 保存数据
    nvault_set(g_vault,vaultkey,vaultdata)
    return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
// 当保存经验开启的时候
   if(get_pcvar_num(SaveXP) == 1)
   {
          // 保存经验
          SaveData(id)
   }
}

//===========================

public LoadData(id)
{
    new AuthID get_user_authid(id,AuthID,34)
    new vaultkey,vaultdata
    // 查找玩家的数据
    format(vaultkey,63,"%s-Mod",AuthID)
    format(vaultdata,255,"%i#%i#",PlayerXP,PlayerLevel)
    // 读取数据
    nvault_get(g_vault,vaultkey,vaultdata,255)
    replace_all(vaultdata, 255, "#", " ")
    new playerxp, playerlevel
    parse(vaultdata, playerxp, 31, playerlevel, 31)
    PlayerXP = str_to_num(playerxp)
    PlayerLevel = str_to_num(playerlevel)
    return PLUGIN_CONTINUE


// =============================================

public plugin_init()
{
        register_plugin("earn_health_mod","1.0","amok为 微波炉汉化增强版为 by lai为 xiwan")
        register_event("DeathMsg","event_deathmsg","a")
        register_event("RoundTime", "eNewRound", "bc")
}

public ChangeClass(id)
{
    new menu = menu_create("Class Menu" , "Class_Handle");
    menu_additem(menu ,"Dog", "1" , 0);
    menu_additem(menu ,"Cat", "2" , 0);
    menu_additem(menu ,"Horse", "3" , 0);
    menu_additem(menu ,"Cow", "4" , 0);
    menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
    menu_display(id , menu , 0);
    return PLUGIN_CONTINUE;
}

public Class_Handle(id , menu , item)
{
    if(item == MENU_EXIT)
    {
      menu_destroy(menu);
    }
    new szCommand , szName; new access , callback;
    menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
    new i = str_to_num(szCommand)
    if(PlayerClass != i)
    {
      PlayerClass = i client_print(id,print_chat,"You are now a %s",CLASSES)
    }
    else
    {
      client_print(id,print_chat,"You are alredy a %s",CLASSES)
    }
    menu_destroy(menu);
    return PLUGIN_CONTINUE
}
//这里是关于玩家连接服务器的相关函数
//我们可以用这个函数定义
//当玩家进入服务器时,读取玩家的经验,等级等等相关数据

public client_connect(id)
{
    // 如果是保存经验,才会读取数据
    if(get_pcvar_num(SaveXP) == 1)
    {
      // 读取玩家的数据
      LoadData(id)
    }
}

//=============================
这里是显示HUD的函数
这里是用来显示等级,经验,种类的...

public ShowHud(id)
{
    set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0)
    show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s",PlayerLevel,PlayerXP,CLASSES])
}

hanyq 发表于 2010-5-16 20:32:57

看看什么东西

yesterday 发表于 2010-6-2 10:43:02

学习下保存经验的方法~
页: [1]
查看完整版本: 重金请Amxx高手帮忙合成这几个源代码,谢谢!