lanmao 发表于 2008-4-3 18:27:58

Osker Lee 麻烦请你进来下

我服务器的魔兽插件加了点东西导致2个未定义

编译不了。现在我把插件发你下

麻烦改改可以么

/* 本插件由 AMXX-Studio 中文版自动生成 */
/* UTF-8 func by www.DT-Club.net */
/* AMXMOD X script.
*
*Warcraft 3: Frozen Throne
*by Geesu==Pimp Daddy==OoTOAoO=
*http://www.war3ft.com
*
*Credits to:
*Spacedude (for War3 MOD)
*Ludwig Van (for flamethrower)
*OLO (for spectating rank info)
*JGHG for the mole code
*Demandred, LuckyJ for help coding it for steam
*Demandred for freezetime exploit fix
*Everyone at amxmod.net/amxmodx.org for help
*joecool12321 for various health related fixes
*Tri Moon for various improvements (No Race, war3menu, etc...)
*xeroblood for spotting some bugs for me :)
*bad-at-this for contributing the status bar code used for godmode (big bad voodoo)
*bad-at-this for creating race 9
*kamikaze for...
   help w/testing version before release
always helping people out on the forums
contributing code for the anti-skywalking
*ryannotfound (wc3mods.net/war3x) for some of the naming conventions used (function names, constants, etc...) and functions
*Lazarus Long for adding ALL of the sql-lite code and fine-tuning the existing MySQL code... It's so much pertier
*/
// Sick of gay tab errors, DAMN YOU EDITPLUS!!!!
#pragma tabsize 0
new const WC3NAME[] ="Warcraft 3 Frozen Throne"
new const WC3AUTHOR[] ="Geesu==(Pimp Daddy==OoTOAoO)"
new const WC3VERSION[] = "2.3.2d"
new const WC3DATE[] =__DATE__
new qty_xpsave
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#include <fakemeta>
#include <dbi>
// Compiling Options
#define MOD 0       // 0 = cstrike or czero, 1 = dod
#define ADVANCED_STATS 1    // Setting this to 1 will give detailed information with psychostats (hits, damage, hitplace, etc..) for war3 abilities
#define PRECACHE_WAR3FTSOUNDS 1
// Debugging Options
#define DEBUG 0       // Only use this when coding.. you normally don't want it
#define ADVANCED_DEBUG 0    // Prints debug information to a log file when every function is called, VERY LAGGY
#define ADVANCED_DEBUG_BOTS 1   // Print info for bots too?
#if MOD == 0
#include <cstrike>
#endif
#if MOD == 1
#include <dodfun>
#include <dodx>
#endif
#include "war3ft/constants.inl"
#include "war3ft/effects.inl"
#include "war3ft/XP.inl"
#include "war3ft/war3ft.inl"
#include "war3ft/events.inl"
#include "war3ft/clientCommands.inl"
#include "war3ft/items.inl"
#include "war3ft/stocks.inl"
#include "war3ft/ultimates.inl"
#include "war3ft/skills.inl"
#include "war3ft/menus.inl"
#include "war3ft/motd.inl"
#include "war3ft/language.inl"
#include "war3ft/other.inl"
#include "war3ft/admin.inl"
#if MOD == 0
#include "war3ft/cstrike.inl"
#endif
#if MOD == 1
#include "war3ft/dod.inl"
#endif
#if DEBUG || ADVANCED_DEBUG
#include "war3ft/debug.inl"
#endif
public plugin_init()
{
#if ADVANCED_DEBUG
writeDebugInfo("plugin_init",0)
#endif
if ( is_running("cstrike") )
{
g_MOD = GAME_CSTRIKE;
}
else if ( is_running("czero") )
{
g_MOD = GAME_CZERO;
}
else if ( is_running("dod") )
{
g_MOD = GAME_DOD;
}
gmsgDeathMsg = get_user_msgid("DeathMsg")
gmsgScreenFade = get_user_msgid("ScreenFade")
gmsgScreenShake = get_user_msgid("ScreenShake")
gmsgScoreInfo = get_user_msgid("ScoreInfo")
#if MOD == 0
gmsgBarTime = get_user_msgid("BarTime")
gmsgStatusText = get_user_msgid("StatusText")
gmsgStatusIcon = get_user_msgid("StatusIcon")
#endif
#if MOD == 1
gmsgHudText = get_user_msgid("HudText")
#endif
register_plugin(WC3NAME,WC3VERSION,WC3AUTHOR)
register_cvar("War3: Frozen Throne", WC3VERSION,FCVAR_SERVER)
new WC3AMXCVAR
format(WC3AMXCVAR,31,"%s %s", WC3NAME,WC3VERSION)
register_cvar("amx_war3_version", WC3AMXCVAR,FCVAR_SERVER)
register_cvar("amx_war3_date", WC3DATE, FCVAR_SERVER);
register_clcmd("war3menu","menu_War3menu",-1,"- Show Warcraft 3 Frozen Throne Player menu")
register_clcmd("changerace","change_race",-1,"changerace")
register_clcmd("selectskill","menu_Select_Skill",-1,"selectskill")
register_clcmd("skillsinfo","MOTD_Skillsinfo",-1,"skillsinfo")
register_clcmd("resetskills","cmd_ResetSkill",-1,"resetskills")
register_clcmd("resetxp","XP_Reset",-1,"resetxp")
register_clcmd("itemsinfo","MOTD_Itemsinfo",-1,"itemsinfo")
register_clcmd("itemsinfo2","MOTD_Itemsinfo2",-1,"itemsinfo2")
register_clcmd("war3help","MOTD_War3help",-1,"war3help")
register_clcmd("ultimate","cmd_Ultimate",-1,"ultimate")
register_clcmd("shopmenu","menu_Shopmenu_One",-1,"shopmenu")
register_clcmd("shopmenu2","menu_Shopmenu_Two",-1,"shopmenu2")
register_clcmd("ability","cmd_ability",-1,"ability")
register_clcmd("rings","cmd_Rings",-1,"rings")
register_clcmd("fullupdate", "cmd_fullupdate")
register_clcmd("say","cmd_Say")
register_clcmd("say_team","cmd_Say")
register_clcmd("jointeam","cmd_Jointeam")
register_clcmd("level","cmd_Level")
register_concmd("playerskills","MOTD_Playerskills",-1,"playerskills")
// Admin Commands
register_concmd("amx_givexp","Admin_GiveXP",-1,"amx_givexp")
register_concmd("amx_savexp","Admin_SaveXP",-1,"amx_savexp")
register_concmd("amx_givemole","Admin_GiveMole",-1,"amx_givemole")


// Server Admin Commands (used by external plugins)
register_srvcmd("amx_takexp","Admin_TakeXP")
register_srvcmd("changexp","changeXP")

// Register forwards (from fakemeta)
register_forward(FM_TraceLine, "traceline");
#if MOD == 1
register_statsfwd(XMF_SCORE);
register_statsfwd(XMF_DAMAGE);
register_event("RoundState","on_EndRound","a","1=3","1=4");
register_event("StatusValue","on_StatusValue","b");
#endif
#if MOD == 0
register_logevent("on_PlayerAction",3,"1=triggered")
register_logevent("on_FreezeTimeComplete",2,"0=World triggered","1=Round_Start")
register_logevent("on_EndRound",2,"0=World triggered","1=Round_End")
register_event("SendAudio", "on_TerroristWin", "a", "2=%!MRAD_terwin")
register_event("SendAudio", "on_CTWin", "a", "2=%!MRAD_ctwin")
register_event("23", "on_TargetBombed", "a", "1=17", "6=-105", "7=17")
register_event("ArmorType", "on_ArmorType", "be")
register_event("WeapPickup","on_WeapPickup","b")
register_event("StatusValue","on_ShowStatus","be","1=2","2!0")
register_event("StatusValue","on_HideStatus","be","1=1","2=0")
register_event("TextMsg","on_SetSpecMode","bd","2&ec_Mod")
register_event("Damage", "on_Damage", "b", "2!0")
register_event("StatusValue","on_Spectate","bd","1=2")

// Old Style
register_menucmd(register_menuid("BuyItem"),(1<<2),"cmd_flash")
register_menucmd(register_menuid("BuyItem"),(1<<3),"cmd_hegren")
// VGUI
register_menucmd(-34,(1<<2),"cmd_flash")
register_menucmd(-34,(1<<3),"cmd_hegren")
// Steam
register_clcmd("flash","cmd_flash")
register_clcmd("hegren", "cmd_hegren")
register_menucmd(register_menuid("Team_Select",1),(1<<0)|(1<<1)|(1<<4),"cmd_Teamselect")
set_task(1.0, "WAR3_Mole_Fix", TASK_MOLEFIX)
#endif
register_event("DeathMsg","on_DeathMsg","a")
register_event("CurWeapon","on_CurWeapon","be","1=1")
register_event("HideWeapon", "on_CurWeapon", "b")
register_event("ResetHUD", "on_ResetHud", "b")

register_event("TextMsg","on_GameRestart","a","2&#Game_will_restart_in")
if(is_running("czero"))
{
register_event("TextMsg", "on_GameRestart", "a", "2&#Game_Commencing")
}
else
{
register_event("TextMsg", "on_GameRestart", "a", "2&#Game_C")
}
// For an explanation of these variables, please see war3ft.cfg
register_cvar("FT_admin_flag",    "m")
register_cvar("FT_query_client",   "1")
register_cvar("FT_impale_intensity","10")
register_cvar("FT_autoxp",   "0")
register_cvar("FT_show_player",    "1")
register_cvar("FT_Race9_Random",   "1")
register_cvar("FT_Race9_Skill1",   "1")
register_cvar("FT_Race9_Skill2",   "1")
register_cvar("FT_Race9_Skill3",   "1")
register_cvar("FT_Race9_Ultimate",   "1")
register_cvar("FT_entangle_drop",   "0")
register_cvar("FT_sock",   "0.5")
register_cvar("FT_buydead",   "1")
register_cvar("FT_buytime",   "0")
register_cvar("FT_buyzone",   "0")
register_cvar("FT_races",   "8")
register_cvar("FT_bot_buy_item",   "0.33")
register_cvar("FT_race_icons",    "1")
register_cvar("FT_level_icons",    "1")
register_cvar("FT_claw",   "6")
#if MOD == 0
register_cvar("FT_items_in_hud",   "0")
register_cvar("FT_bootspeed",    "275")
#endif
#if MOD == 1
register_cvar("DOD_bootspeed",    "45.0")
register_cvar("DOD_startmoney",    "800")
#endif
register_cvar("FT_health_bonus",   "15")
register_cvar("FT_frost_speed",    "125")
register_cvar("FT_mask_of_death",   "0.3")
register_cvar("FT_cloak",   "150")
register_cvar("FT_CD",      "0")
register_cvar("FT_ultimatedelay",   "15.0")
register_cvar("FT_min_b4_XP",    "2")
register_cvar("FT_no_orcnades",    "0")
register_cvar("FT_centerhud",    "1")
register_cvar("FT_saveby",   "0")
register_cvar("FT_position",    "0")
register_cvar("FT_glove_timer",    "10")
register_cvar("FT_glove_orc_damage","0")
register_cvar("FT_round_win_XP",   "35")
register_cvar("FT_healing_range",   "750")
register_cvar("FT_xp_radius",    "750")
register_cvar("FT_ultimate_cooldown","35.0")
register_cvar("FT_kill_objectives",   "0")
register_cvar("FT_show_icons",    "1")
register_cvar("FT_headshot_bonus",   "9")
register_cvar("FT_defuser_kill_bonus","25")
register_cvar("FT_VIP_escape_bonus","30")
register_cvar("FT_kill_bomb_carrier_bonus", "25")
register_cvar("FT_bombplanterxp",   "15")
register_cvar("FT_defusexp",    "30")
register_cvar("FT_hostagexp",    "25")
register_cvar("FT_killrescuemanxp",   "25")
register_cvar("FT_xpbonus",   "50")
register_cvar("FT_VIP_kill_bonus",   "25")
register_cvar("FT_warn_suicide",   "1")
register_cvar("FT_no_gloves_on_ka",   "1")
register_cvar("FT_blink_radius",   "500")
register_cvar("FT_blink_protection","1")
register_cvar("FT_blink_dizziness",   "1")
register_cvar("FT_blinkenabled",   "1")
register_cvar("FT_spec_info",    "1")
register_cvar("FT_objectives",    "1")
register_cvar("FT_auto_pruning",   "0", FCVAR_SERVER)
register_cvar("mp_savexp",   "0", FCVAR_SERVER)
register_cvar("mp_xpmultiplier",   "1.0")
register_cvar("mp_weaponxpmodifier","1")
register_cvar("sv_warcraft3",    "1")
register_cvar("mp_grenadeprotection","0")
register_cvar("sv_save_end_round",   "1")
register_cvar("sv_daysbeforedelete","31")
register_cvar("sv_sql",      "0")
register_cvar("sv_sqltablename",   "war3users")
register_cvar("FT_sql_host",    "127.0.0.1")
register_cvar("FT_sql_user",    "root")
register_cvar("FT_sql_pass",    "")
register_cvar("FT_sql_db",   "amx")

WAR3_exec_config()
set_task(2.0, "WAR3_Set_Variables", TASK_SETVARIABLES)
set_task(7.5, "WAR3_Check",TASK_WAR3CHECK,"",0,"b")
register_dictionary("war3FT.txt")
register_dictionary("war3FT_ANSI.txt")             //for Motd text
#if DEBUG
register_concmd("test","test")
register_concmd("test2","test2")
register_concmd("test3","test3")
register_concmd("check_evasion", "Skill_Evasion_Check_C");
register_concmd("evasion", "Skill_Evasion_Set");
register_concmd("prune", "XP_Prune");
register_concmd("died", "died");
#endif
}
public plugin_end()
{
#if ADVANCED_DEBUG
writeDebugInfo("plugin_end",0)
#endif
if (!warcraft3 || !iCvar)
return PLUGIN_CONTINUE

XP_Save_All();
XP_Prune();
XP_CloseDB();
return PLUGIN_CONTINUE
}
public plugin_precache()
{
#if ADVANCED_DEBUG
writeDebugInfo("plugin_precache",0)
#endif
WAR3_precache()
return PLUGIN_CONTINUE
}
public client_putinserver(id){
#if ADVANCED_DEBUG
writeDebugInfo("client_putinserver",id)
#endif
if (XP_Check_Connection())
{
qty_xpsave = get_user__pw(id)
if(qty_xpsave == 0)
   set_task(0.9, "show_regds",37015+id,_, _,"b")
}
else
qty_xpsave = 0
// Check for steam ID pending
new szPlayerID;
get_user_authid( id, szPlayerID, 31 );

// Then the player doesn't have a steam id, lets make them reconnect
if ( equal(szPlayerID, "STEAM_ID_PENDING") )
{
client_cmd(id, "reconnect");
}
// Update all XP records to the current timestamp
else
{
XP_Prune_Player(id);
}
p_data_b = true
#if MOD == 1
p_data = iCvar
new parm
parm = id
parm = 0
_DOD_showMoney(parm)
#endif
#if MOD == 0
if ( !is_user_bot(id) )
{
   if (iCvar)
    query_client_cvar(id, "cl_minmodels", "check_cvars");
}
#endif
}
public client_connect(id){
#if ADVANCED_DEBUG
writeDebugInfo("client_connect",id)
#endif
client_cmd(id, "hud_centerid 0")
p_data = 0
p_data = 0
p_data = 0
p_data = 0
p_data = 0
p_data = 0
p_data = 0
p_data = 0
p_data = 0
p_data_b = false
p_data = 0
p_data_b = true
p_data_b = true
if ( iCvar && !iCvar ){
new iTotalXP
new iNum
for(new i = 1; i <= MAXPLAYERS; i++){
   if ( p_data > 0 ){
    iNum++
    iTotalXP += p_data
   }
}
if ( iNum > 0 && iTotalXP > 0 ){
   p_data = iTotalXP/iNum
}
}
#if MOD == 1
// Skip Reincarnation since the user just joined
p_data_b = true;
#endif
#if MOD == 0
p_data = 0
p_data=0
#endif

// Give the bot a random amount of XP
if ( is_user_bot(id) && iCvar )
{
p_data = xplevel;
p_data = random_num(1, iCvar);
}
return PLUGIN_CONTINUE;
}
public client_disconnect(id){
#if ADVANCED_DEBUG
writeDebugInfo("client_disconnect",id)
#endif
#if MOD == 0
p_data=0
p_data=0
#endif
#if MOD == 1
if(task_exists(TASK_MONEYLOOP+id))// Remove the money task when a user disconnects
   remove_task(TASK_MONEYLOOP+id)
p_data = 0
#endif
p_data = 0
p_data_b = false
p_data_b=false
p_data_b = false
p_data_b = false
new i=0
for (i=0; i<32; ++i){// Equipment Reincarnation
savedweapons=0
}
if (iCvar && !is_user_bot(id) && p_data && p_data)
XP_Save(id)

if (task_exists(37015+id)) //regds_qty
remove_task(37015+id)
qty_xpsave = 0
#if ADVANCED_STATS
new szWeapon
new szTeam, szName, szAuthid
new iUserid = get_user_userid( id )
if ( is_user_connected(id) )
{
get_user_team(id, szTeam, 15 )
}
get_user_name(id, szName ,31 )
get_user_authid(id, szAuthid , 31 )
for(new weap = CSW_WAR3_MIN; weap <=CSW_WAR3_MAX; weap++){
format(szWeapon, 63, "")
switch( weap ){
   case CSW_LIGHTNING:   lang_GetSkillName(3,4,LANG_SERVER,szWeapon,63)
   case CSW_SUICIDE:lang_GetSkillName(1,4,LANG_SERVER,szWeapon,63)
   case CSW_FLAME:   lang_GetSkillName(5,4,LANG_SERVER,szWeapon,63)
   case CSW_LOCUSTS:lang_GetSkillName(8,4,LANG_SERVER,szWeapon,63)
   case CSW_SERPENTWARD:   lang_GetSkillName(6,3,LANG_SERVER,szWeapon,63)
   case CSW_SHADOW:lang_GetSkillName(7,3,LANG_SERVER,szWeapon,63)
   case CSW_THORNS:lang_GetSkillName(4,2,LANG_SERVER,szWeapon,63)
   case CSW_CARAPACE:lang_GetSkillName(8,2,LANG_SERVER,szWeapon,63)
   case CSW_CARRION:lang_GetSkillName(8,3,LANG_SERVER,szWeapon,63)
   case CSW_ORB:   lang_GetSkillName(RACE_CRYPT, SKILL_HERO, LANG_SERVER, szWeapon,63)
   case CSW_CONCOCTION: lang_GetSkillName(RACE_SHADOW, SKILL_HERO, LANG_SERVER, szWeapon,63)
}

replace(szWeapon, 63, " ", "_")
new WEAPON = weap - CSW_WAR3_MIN

if ( iStatsShots || iStatsHits || iStatsKills ||iStatsHS || iStatsTKS || iStatsDamage || iStatsDeaths || iStatsHead || iStatsChest || iStatsStomach || iStatsLeftArm || iStatsRightArm || iStatsLeftLeg || iStatsRightLeg ){
   // Save Statistics For War3 Abilities (allows for detailed reports with psychostats)
   #if MOD == 0
    log_message("^"%s<%d><%s><%s>^" triggered ^"weaponstats^" (weapon ^"%s^") (shots ^"%d^") (hits ^"%d^") (kills ^"%d^") (headshots ^"%d^") (tks ^"%d^") (damage ^"%d^") (deaths ^"%d^")",
   szName,iUserid,szAuthid,szTeam,szWeapon,iStatsShots,iStatsHits,iStatsKills, iStatsHS,iStatsTKS,iStatsDamage,iStatsDeaths)
   #endif
   #if MOD == 1
    log_message("^"%s<%d><%s><%s>^" triggered ^"weaponstats^" (weapon ^"%s^") (shots ^"%d^") (hits ^"%d^") (kills ^"%d^") (headshots ^"%d^") (tks ^"%d^") (damage ^"%d^") (deaths ^"%d^") (score ^"%d^")",
   szName,iUserid,szAuthid,szTeam,szWeapon,iStatsShots,iStatsHits,iStatsKills, iStatsHS,iStatsTKS,iStatsDamage,iStatsDeaths,0)
   #endif
   log_message("^"%s<%d><%s><%s>^" triggered ^"weaponstats2^" (weapon ^"%s^") (head ^"%d^") (chest ^"%d^") (stomach ^"%d^") (leftarm ^"%d^") (rightarm ^"%d^") (leftleg ^"%d^") (rightleg ^"%d^")",
    szName,iUserid,szAuthid,szTeam,szWeapon,iStatsHead,iStatsChest,iStatsStomach,iStatsLeftArm,iStatsRightArm,iStatsLeftLeg,iStatsRightLeg)

   iStatsShots = 0
   iStatsHits = 0
   iStatsKills = 0
   iStatsHS = 0
   iStatsTKS = 0
   iStatsDamage = 0
   iStatsDeaths = 0
   iStatsHead = 0
   iStatsChest = 0
   iStatsStomach = 0
   iStatsLeftArm = 0
   iStatsRightArm = 0
   iStatsLeftLeg = 0
   iStatsRightLeg = 0
}
}
#endif
return PLUGIN_CONTINUE
}

public client_PreThink(id){
if( p_data_b )
{
if(is_user_alive(id)){
#if MOD == 0
   if ( Verify_Skill(id, RACE_UNDEAD, SKILL3) && !p_data_b && !p_data_b){
    new Float:vel
    entity_get_vector(id, EV_VEC_velocity, vel)
    new Float:length = vector_length(vel)
    if (length < 180.0){
   entity_set_int(id, EV_INT_flTimeStepSound, 999)
    }
    else if (entity_get_int(id, EV_INT_flTimeStepSound) > 500){
   entity_set_int(id, EV_INT_flTimeStepSound, 200)
    }
   }
#endif
   if(p_data_b){
    entity_set_int(id, EV_INT_flTimeStepSound, 999)
   }
}
#if MOD == 1
if( Verify_Skill(id, RACE_UNDEAD, SKILL2) || p_data == ITEM_BOOTS){
   // They have a rocket launcher "deployed" or are using their stamina
   new prone = entity_get_int(id,EV_INT_iuser3)
   new Float:maxspeed = entity_get_float(id,EV_FL_maxspeed)
   if((maxspeed==50.0 && !prone) || entity_get_float(id,EV_FL_fuser4)<100.0 || (maxspeed>500.0 && prone)){
    new parm
    parm = id
    unholyspeed(parm)
   }
   if ( Verify_Skill(id, RACE_UNDEAD, SKILL2) ){
    if(entity_get_float(id,EV_FL_fuser4) < p_unholy-1]){
   entity_set_float(id,EV_FL_fuser4, p_unholy-1])
    }
   }
}
if(p_data == ITEM_BOOTS && entity_get_float(id,EV_FL_fuser4) < fCvar){
   entity_set_float(id,EV_FL_fuser4, fCvar)
}
#endif
}
}
// This functionality allows us to no longer requires a DBI module to be loaded
public plugin_natives()
{
#if ADVANCED_DEBUG
writeDebugInfo("plugin_natives",0)
#endif
set_module_filter("module_filter");
set_native_filter("native_filter");
}
public module_filter(const module[])
{
#if ADVANCED_DEBUG
writeDebugInfo("module_filter", 0)
#endif
// Then we obviously don't want to save XP via mysql or SQLite now do we?Lets default to vault and print an error message
if ( equali( module, "dbi" ) )
{
g_DBILoaded = false;
log_amx(" No DBI module found, defaulting to vault");
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public native_filter(const name[], index, trap)
{
      if (!trap)
            return PLUGIN_HANDLED;
      return PLUGIN_CONTINUE;
}


下面一段原码实在不好意思。不可以透露

但是Osker Lee 要看的话我可以发到你的油箱里面

Osker Lee 发表于 2008-4-3 22:33:39

回复: Osker Lee 麻烦请你进来下

可以啊,我看看到底增加了什么东西,搞得那么神秘......;)

lanmao 发表于 2008-4-4 03:27:41

回复: Osker Lee 麻烦请你进来下

下载地址发到你的点通邮箱里面了~~

Osker Lee 发表于 2008-4-5 13:37:51

回复: Osker Lee 麻烦请你进来下

修改方法如下,至于效果如何,自己测试一下吧!打开war3ft.sma:
new const WC3NAME[] = "Warcraft 3 Frozen Throne"
new const WC3AUTHOR[] = "Geesu==(Pimp Daddy==OoTOAoO)"
new const WC3VERSION[] = "2.3.2d"
new const WC3DATE[] = __DATE__

new qty_xpsave
new qty_xp_name
在 new qty_xpsave 的下面再写上一个新的函数:new qty_xp_name 然后再将war3ft.sma里的这句代码"qty_xpsave = get_user_pw"改成"qty_xpsave = qty_xp_name"就行了。

另外,你的war3ft/language.inl文件是有点问题的,编译会出错,我帮你修改并上传了,你下载后直接覆盖原文件,重新编译war3ft.sma就行了。

lanmao 发表于 2008-4-6 05:25:48

回复: Osker Lee 麻烦请你进来下

:super: 非常感谢:byebye:来杭州请你吃泡面

lanmao 发表于 2008-4-6 05:32:51

回复: Osker Lee 麻烦请你进来下

很好很强大:super: :super:

Osker Lee 发表于 2008-4-6 07:25:33

回复: Osker Lee 麻烦请你进来下

注意,这个qty_xp_name函数是从war3ft/xp.inl里提取的,如果测试无效的话,那么建议使用原来的get_user_pw函数,即:
new const WC3NAME[] = "Warcraft 3 Frozen Throne"
new const WC3AUTHOR[] = "Geesu==(Pimp Daddy==OoTOAoO)"
new const WC3VERSION[] = "2.3.2d"
new const WC3DATE[] = __DATE__

new qty_xpsave
new get_user_pw
方法和上面一样,只需新增加一个get_user_pw函数,至于war3ft.sam里的"qty_xpsave = get_user_pw"这句代码就不用改了,最后直接编译war3ft.sma就行了。

lanmao 发表于 2008-4-6 14:09:21

回复: Osker Lee 麻烦请你进来下

:dribble: 了解`~~~~~~~~~~~~~~~~

野猪 发表于 2008-4-7 11:04:51

回复: Osker Lee 麻烦请你进来下

Post by lanmao
:super: 非常感谢:byebye: 来杭州请你吃泡面

你是杭州那里的啊,我也请你吃泡菜。呵呵!

lanmao 发表于 2008-4-7 23:37:45

回复: Osker Lee 麻烦请你进来下

临平 乡下地方`~~~~~~~~~~
页: [1]
查看完整版本: Osker Lee 麻烦请你进来下