package effect import ( "blazing/logic/service/fight/input" "blazing/logic/service/fight/node" ) func init() { //技能使用成功时,m%自身XX等级+/-n input.InitSkillEffect(4, NewEffectStat(false)) //技能使用成功时,m%对方XX等级+/-n input.InitSkillEffect(5, NewEffectStat(true)) } func NewEffectStat(b bool) input.Effect { return &EffectStat{ node.EffectNode{}, b, } } type EffectStat struct { node.EffectNode etype bool } // func (this *EffectStat) GetPet() { // ff := this.EffectNode.GetOwnerPet() // offsetC := unsafe.Offsetof(ff.Atk) // c字段的偏移量(通常为4+16=20) // // 2. 将结构体指针转换为原始内存地址(uintptr) // baseAddr := uintptr(unsafe.Pointer(&offsetC)) // // 3. 计算字段地址并赋值 // // 给a字段赋值(通过偏移量) // addrA := unsafe.Pointer(baseAddr + 4) //根据攻击算其他字段 // *(*uint32)(addrA) = 100 // } func (this *EffectStat) SkillUseEnd() { if !this.etype { //自身 } else { //对方 } }