1

我目前正在为现已关闭的迪士尼服务器开发私人服务器,但是每当我的客户端抛出一个馅饼时,它就会崩溃并给我这个错误。

File "toontown\toon\Toon.py", line 3029, in getTossPieInterval
    endPos=Point3(0, dist, 0), duration=time)
TypeError: __init__() got an unexpected keyword argument 'startPos'
Press any key to continue . . .

这是破坏的代码

def getTossPieInterval(self, x, y, z, h, power, throwType, beginFlyIval = Sequence()):
    from toontown.toonbase import ToontownBattleGlobals
    from toontown.battle import BattleProps
    pie = self.getPieModel()
    flyPie = pie.copyTo(NodePath('a'))
    pieName = ToontownBattleGlobals.pieNames[self.pieType]
    pieType = BattleProps.globalPropPool.getPropType(pieName)
    animPie = Sequence()
    if pieType == 'actor':
        animPie = ActorInterval(pie, pieName, startFrame=48)
    sound = loader.loadSfx('phase_3.5/audio/sfx/AA_pie_throw_only.ogg')
    if throwType == ToontownGlobals.PieThrowArc:
        t = power / 100.0
        dist = 100 - 70 * t
        time = 1 + 0.5 * t
        proj = ProjectileInterval(None, startPos=Point3(0, 0, 0),
                                  endPos=Point3(0, dist, 0), duration=time)
        relVel = proj.startVel
    elif throwType == ToontownGlobals.PieThrowLinear:
        magnitude = power / 2. + 25

        relVel = Vec3(0, 1, 0.25)
        relVel.normalize()
        relVel *= magnitude

    def getVelocity(toon = self, relVel = relVel):
        return render.getRelativeVector(toon, relVel)

    toss = Track((0, Sequence(Func(self.setPosHpr, x, y, z, h, 0, 0), Func(pie.reparentTo, self.rightHand), Func(pie.setPosHpr, 0, 0, 0, 0, 0, 0), Parallel(ActorInterval(self, 'throw', startFrame=48), animPie), Func(self.loop, 'neutral'))), (16.0 / 24.0, Func(pie.detachNode)))
    fly = Track((14.0 / 24.0, SoundInterval(sound, node=self)), (16.0 / 24.0, Sequence(Func(flyPie.reparentTo, render), Func(flyPie.setScale, self.pieScale), Func(flyPie.setPosHpr, self, 0.52, 0.97, 2.24, 89.42, -10.56, 87.94), beginFlyIval, ProjectileInterval(flyPie, startVel=getVelocity, duration=3), Func(flyPie.detachNode))))
    return (toss, fly, flyPie)
4

2 回答 2

1

我不熟悉此服务器或您正在使用的库,但该错误暗示 ProjectileInterval 构造函数不需要 startPos 关键字参数。如果您有该代码的源代码或文档,请仔细检查它期望的参数。

于 2014-06-23T03:36:44.193 回答
-1

它与panda3d。由于某种原因,它无法识别 ProjectileInterval 参数。如果需要,可以使用 LerpPosInterval 更改某些内容,但是,由于它使用 Velocity arg,因此 LerpPosInterval 将不起作用。也许尝试在 toon.py 的init中定义 args,我不确定这会起作用,但它可能会起作用。

于 2014-06-23T20:17:04.097 回答