白天模式 收藏本站

手机短信,快捷登录

QQ登录

只需一步,快速开始

搜索
热搜: 地图 汉化 ORPG
查看: 1326|回复: 0

ParanormalRPG v 5.1击杀星界生命任务剖析

[复制链接]

64

主题

187

回帖

1464

积分

版主

积分
1464

汉化达人推广达人宣传达人

发表于 2016-9-11 15:30:25 | 显示全部楼层 |阅读模式
本帖最后由 会飞的羊 于 2016-9-12 21:26 编辑

以下是整个J文件编号9的J语言文本。
function GCv takes nothing returns nothing
call AddSpecialEffectTargetUnitBJ("overhead",oS,"Abilities\\Spells\\Other\\TalkToMe\\TalkToMe.mdl")
set be[9]=bj_lastCreatedEffect
endfunction
function GDv takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_HERO))!=null
endfunction
function Gfv takes nothing returns boolean
return(RectContainsUnit(fV,GroupPickRandomUnit(Zu(fV,Condition(function GDv)))))
endfunction
function GFv takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
call DestroyEffect(be[9])
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"|c008E156DПриветствую тебя, герой. Дивное существо обитает в наших землях. Мне бы очень хотелось заполучить в качестве трофея его материю. Если у тебя получится это сделать, то я тебя отблагодарю как полагается.")
call QuestMessageBJ(bj_FORCE_ALL_PLAYERS,0,"|c008E156DУбить Астральное Существо.")
call CreateQuestBJ(0,"Убить Пространственного","TRIGSTR_3093","ReplaceableTextures\\CommandButtons\\BTNRune.blp")
set ue[9]=bj_lastCreatedQuest
call CreateQuestItemBJ(bj_lastCreatedQuest,"Принести материю астрала.")
call SetUnitInvulnerable(pQ,false)
call CreateItemLoc('I0AF',GetRectCenter(vO))
call EnableTrigger(vh)
endfunction
function GGv takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
call AddSpecialEffectTargetUnitBJ("overhead",oS,"Abilities\\Spells\\Other\\TalkToMe\\TalkToMe.mdl")
set be[9]=bj_lastCreatedEffect
call CreateItemLoc('I03N',GetRectCenter(An))
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"Астральный Дух пал. Вернитесь к загробному духу за наградой.")
call EnableTrigger(eh)
endfunction
function GHv takes nothing returns boolean
return(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I03N'))
endfunction
function Gjv takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
call RemoveItem(GetItemOfTypeFromUnitBJ(GetTriggerUnit(),'I03N'))
call DestroyEffect(be[9])
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"|c008E156DА вот и мой трофей. Спасибо тебе, странник. Как и было оговорено, вот твоя награда.")
call QuestSetCompleted(ue[9],true)
call TriggerSleepAction(3.)
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"|c008E156DВы получили 7.500 золота
")
call AdjustPlayerStateBJ(7500,Player(0),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(1),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(2),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(3),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(4),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(5),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(6),PLAYER_STATE_RESOURCE_GOLD)
call CreateItemLoc('I00C',GetRectCenter(vO))
call QuestMessageBJ(bj_FORCE_ALL_PLAYERS,2,"|c008E156DЗадание выполнено.
")
endfunction

下面我们来对照完整的剖析下。我也是现学现卖。
function GCv takes nothing returns nothing
call AddSpecialEffectTargetUnitBJ("overhead",oS,"Abilities\\Spells\\Other\\TalkToMe\\TalkToMe.mdl")
call是调用函数,AddSpecialEffectTargetUnitBJ是对oS这个单位创造一个TalkToMe的特殊效果。TalkToMe的效果根据游戏经验应该就是NPC头顶的感叹号消失,这里我们节约时间就不证实了。那么oS是什么单位呢?这时我们就要回到J文件里去找。最后我锁定了如下一条信息:
set oS=CreateUnit(p,'u002',-13742.5,15018.3,359.75)
大意是:在地图坐标X=-13742.5Y=15018.3高度=359.75的地方创建一个编号u002的单位。很好,这里有编号了,我们就能通过编号在单位编辑器里找到这个单位的样子。如下:
名字为:Загробный 模型为:亡灵的阴影


set be[9]=bj_lastCreatedEffect
表达式语句赋值
endfunction
function GDv takes nothing returns boolean
return(IsUnitType(GetFilterUnit(),UNIT_TYPE_HERO))!=null
检查单位 分类(匹配的单位(),单位类型-英雄))
endfunction
function Gfv takes nothing returns boolean
return(RectContainsUnit(fV,GroupPickRandomUnit(Zu(fV,Condition(function GDv)))))
(单位在区域(fV,单位组里的随机单位(Zu(fV,限制条件为(function GDv)))))
endfunction
function GFv takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
关掉触发器(当前触发器())
call DestroyEffect(be[9])
删除特殊效果
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"|c008E156DПриветствую тебя, герой. Дивное существо обитает в наших землях. Мне бы очень хотелось заполучить в качестве трофея его материю. Если у тебя получится это сделать, то я тебя отблагодарю как полагается.")
文本消息(显示10秒) 你好,英雄。在我们的土地上生活着各种奇妙的生物。我很想得到一个他母亲的奖杯。如果你帮助我,我会感激你的,真的。
call QuestMessageBJ(bj_FORCE_ALL_PLAYERS,0,"|c008E156DУбить Астральное Существо.")
任务消息 击杀星界生命
call CreateQuestBJ(0,"Убить Пространственного","TRIGSTR_3093","ReplaceableTextures\\CommandButtons\\BTNRune.blp")
创建任务 击杀Пространственного
这里的TRIGSTR_3093是引用warmap.wts的语句。这个只要在warmap.wts里翻译就行。

大意是:击杀空间野兽?请前往星芒野兽的,并从找到我的奖杯。但首先要获得三个钥匙打开门。如获得密钥碎片你需要这本书。

set ue[9]=bj_lastCreatedQuest
call CreateQuestItemBJ(bj_lastCreatedQuest,"Принести материю астрала.")
创建任务完成条件 带来星界之事
call SetUnitInvulnerable(pQ,false)
移除单位pQ的无敌/可攻击
pQ是什么呢?经查:
set pQ=CreateUnit(p,'n010',-10503.9,2842.7,279.34),那么pQ的编号就是n010
我们再查细一点,boss名字:
|c0000FCFFПространственный Странник
空间漫游者
模型:






call CreateItemLoc('I0AF',GetRectCenter(vO))
CreateItemLoc是创造物品,创造一个编号为I0AF的物品在编号为vO的区域中心
那么编号I0AF是什么物品呢?
答:SecretBook,Вещь для квеста(任务物品)


编号为vO的区域又在哪呢
答:set vO=Rect(-13664.,15072.,-13632.,15104.)。知道这个坐标其实我们也没什么鸟用。
call EnableTrigger(vh)
打开vh的触发器
endfunction
function GGv takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
关掉触发器(当前触发器())
call AddSpecialEffectTargetUnitBJ("overhead",oS,"Abilities\\Spells\\Other\\TalkToMe\\TalkToMe.mdl")
对单位oS加上TalkToMe的特殊效果
set be[9]=bj_lastCreatedEffect
call CreateItemLoc('I03N',GetRectCenter(An))
创造一个编号为I03N的物品在编号为An的区域中心
编号为I03N的物品名称:Астральная Материя(星芒物质)
编号为I03N的物品描述:Вещь для квеста(任务物品)
编号为I03N的物品图标:



call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"Астральный Дух пал. Вернитесь к загробному духу за наградой.")
文本消息(显示10秒) 星芒灵降。回到来世精神领取奖励?
call EnableTrigger(eh)
打开编号eh的触发器
endfunction
function GHv takes nothing returns boolean
return(UnitHasItemOfTypeBJ(GetTriggerUnit(),'I03N'))
英雄已有 物品 - 类型(触发单位()
endfunction
function Gjv takes nothing returns nothing
call DisableTrigger(GetTriggeringTrigger())
call RemoveItem(GetItemOfTypeFromUnitBJ(GetTriggerUnit(),'I03N'))
删除物品(英雄携带的物品类型(触发单位(),'I03N'))
call DestroyEffect(be[9])
删除特殊效果
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"|c008E156DА вот и мой трофей. Спасибо тебе, странник. Как и было оговорено, вот твоя награда.")
文本消息(显示10秒) 这确实是我的奖杯。谢谢你陌生人。正如我说的,这是你的奖励。
call QuestSetCompleted(ue[9],true)
任务完成
call TriggerSleepAction(3.)
等待3秒
call DisplayTimedTextToForce(bj_FORCE_ALL_PLAYERS,10.,"|c008E156DВы получили 7.500 золота
")
文本消息(显示10秒)你获得了7500金币。
call AdjustPlayerStateBJ(7500,Player(0),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(1),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(2),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(3),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(4),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(5),PLAYER_STATE_RESOURCE_GOLD)
call AdjustPlayerStateBJ(7500,Player(6),PLAYER_STATE_RESOURCE_GOLD)
系统动作增加玩家属性值 给每个玩家7500金。
call CreateItemLoc('I00C',GetRectCenter(vO))
创造编号为I00C的物品
|c00E7131DКлинок лунного света(月光之刃)
|c00E7131D Этим клинком был убит сам Дрогнар.Повелитель теней и холода.+ 900 урона + 50 ловкости + 80 брони.|c00F183F4 Нужен 75 лвл(+900点伤害,+50点敏捷,+80点护甲。等级:75)


call QuestMessageBJ(bj_FORCE_ALL_PLAYERS,2,"|c008E156DЗадание выполнено.
")
任务消息 任务完成
endfunction



魔兽争霸肥羊QQ群:208820667
非免费承接地图汉化~除非你自己愿意翻译文本~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.5|© 2001-2024 Discuz! Team.

Archiver|手机版|小黑屋|魔兽地图汉化社区 WC3CNG | GMT+8, 2024-5-6 02:30 , Processed in 0.515625 second(s), 5 queries , Redis On.

快速回复 返回顶部 返回列表