====== Actor Class ======
Class For Actor Interface
[[developer_center:developer_editor:script|Return To Previous Page]]
------
==== How to Write Event =====
ScriptSupportEvent:registerEvent([[EventName]],callbackFunctionName)
==== Example ====
function Dies (event)
local ActorDie , ActorCause , Actorid = event.eventobjid , event.toobjid , event.actorid
end
ScriptSupportEvent:registerEvent([[Actor.Die]],Dies)
===== Event List =====
^ EventName ^ Parameters ^ Description ^
| Actor.AddBuff | eventobjid, actorid, buffid, bufflvl | Creatures gain status effects |
| Actor.AreaIn | eventobjid, areaid | Creatures enter the area |
| Actor.AreaOut | eventobjid, areaid | Creature leaves area |
| Actor.AttackHit | eventobjid, toobjid, actorid, targetactorid | Attack hit |
| Actor.Attack | eventobjid, toobjid, actorid, targetactorid | Attack |
| Actor.BeHurt | eventobjid, toobjid, hurtlv, actorid | Hurt |
| Actor.Beat | eventobjid, toobjid, actorid, targetactorid | Mob beats player/mob |
| Actor.ChangeAttr | eventobjid, actorid, actorattr, actorattrval | Attribute change |
| Actor.ChangeMotion | eventobjid, areaid, actormotion | Creature behavior state changed to [n] |
| Actor.Collide | eventobjid, toobjid, actorid, targetactorid | Collides with player/mob |
| Actor.Create | eventobjid, actorid | Was created |
| Actor.Damage | eventobjid, toobjid, hurtlv, actorid, targetactorid | Cause some damages |
| Actor.Die | eventobjid, toobjid, actorid | Die |
| Actor.Projectile.Hit | eventobjid, toobjid, itemid, targetactorid, x, y, z, helper objid | Throwing hits |
| Actor.RemoveBuff | eventobjid, actorid, buffid, bufflvl | Creatures lose status effects |
===== API list =====
^ Class:apiName(parameters) ^ Return ^ Description ^
| Actor:isPlayer(objid:number) | ErrorCode.OK is the player | Detect whether it is a player |
| Actor:isMob(objid:number) | ErrorCode.OK is a monster | Detect whether it is a monster |
| Actor:getObjType(objid:number) | ErrorCode.OK objtype:number | Get the object type (player, creature, throwing object, falling object, etc.) |
| Actor:isInAir(object:number) | ErrorCode.OK | Whether in the air |
| Actor:getPosition(objid:number) | ErrorCode.OK x,y,z:number | Get actor position |
| Actor:jump(object:number) | ErrorCode.OK | Jump |
| Actor:killSelf(object:number) | ErrorCode.OK | Kill yourself |
| Actor:getCurPlaceDir(object:number) | ErrorCode.OK dir:number | Get the current orientation |
| Actor:tryMoveToActor(self_objid:number, target_objid:number, speed:number) | ErrorCode.OK | Moving to the target actor |
| Actor:tryMoveToPos(object:number, x:number, y:number, z:number, speed:number) | ErrorCode.OK | Move to the target position |
| Actor:addHP(object:number, hp:number) | ErrorCode.OK | Increase the current life |
| Actor:getHP(object:number) | ErrorCode.OK value:number | Get the current amount of life |
| Actor:getMaxHP(object:number) | ErrorCode.OK value:number | Get the maximum amount of life |
| Actor:addOxygen(object:number, oxygen:number) | ErrorCode.OK | Increase the current oxygen value |
| Actor:getOxygen(object:number) | ErrorCode.OK value:number | Get the current oxygen value |
| Actor:addEnchant(object:number, slot:number, enchantId:number, enchantLevel:number) | ErrorCode.OK | Increase equipment enchantment |
| Actor:removeEnchant(object:number, slot:number, enchantId:number) | ErrorCode.OK | Remove equipment enchant |
| Actor:findNearestBlock(object:number, blockid:number, blockRange: number) | ErrorCode.OK x,y,z:number | Find nearby squares |
| Actor:setFaceYaw(object:number, yaw:number) | ErrorCode.OK | Set the actor's in-situ rotation offset angle |
| Actor:getFaceYaw(object:number) | ErrorCode.OK yaw:number | Get the actor's in-situ rotation offset angle |
| Actor:turnFaceYaw(object:number, offset:number) | ErrorCode.OK | Rotate the actor's lateral offset angle |
| Actor:setFacePitch(object:number, pitch:number) | ErrorCode.OK | Set the actor's viewing angle to look up |
| Actor:getFacePitch(object:number) | ErrorCode.OK pitch:number | Get the angle of view of the actor |
| Actor:turnFacePitch(object:number, offset:number) | ErrorCode.OK | Turn the actor to look up at the offset angle |
| Actor:playBodyEffect(object:number, type:number) | ErrorCode.OK | Play special effects |
| Actor:stopBodyEffect(object:number, type:number) | ErrorCode.OK | Stop special effects |
| Actor:playBodyEffectByFile(object:number, filename:string, sync:bool) | ErrorCode.OK | Playing file effects |
| Actor:stopBodyEffectByFile(object:number, filename:string) | ErrorCode.OK | Stop file effects |
| Actor:playSound(object:number, name:string, volume:number, pitch:number, flag:number) | ErrorCode.OK | Play sound |
| Actor:playSoundSpecial(object:number, name:string, type:number) | ErrorCode.OK | Play sound (specific type) |
| Actor:clearActorWithId(actor:number, bkill:boolean) | ErrorCode.OK | Clear the creature whose creature ID is actorid |
| Actor:setAttackType(object:number, attacktype:number) | ErrorCode.OK | Set the damage type |
| Actor:setImmuneType(object:number, immunetype:number, isadd:bool) | ErrorCode.OK | Set immune damage type |
| Actor:mountActor(object:number, mountobjid:number, posindex:number) | ErrorCode.OK | Boarding and disengaging the vehicle |
| Actor:setActionAttrState(object:number, actionattr:number, switch:boolean) | ErrorCode.OK | Set the biological behavior attribute status |
| Actor:getActionAttrState(object:number, actionattr:number) | ErrorCode.OK switch:boolean | To obtain the state of the special attribute of the creature |
| Actor:tryNavigationToPos(object:number, x:number, y:number, z:number, cancontrol:boolean, bshowtip:boolean) | ErrorCode.OK | Find the way to the target location |
| Actor:randomActorID() | ErrorCode.OK | Randomly create a creature in the resource library |
| Actor:getRidingActorObjId(object:number) | ErrorCode.OK | Get the objid of the riding creature |
| Actor:playBodyEffectById(object:number, particleId:number, scale:number) | ErrorCode.OK | Play special effects on the specified player |
| Actor:stopBodyEffectById(object:number, particleId:number) | ErrorCode.OK | Stop the special effects on the specified player |
| Actor:setBodyEffectScale(object:number, particleId:number, scale:number) | ErrorCode.OK | Set the size of the special effect on the specified player |
| Actor:playSoundEffectById(object:number, soundId:number, volume:number, pitch:number, isLoop:bool) | ErrorCode.OK | Play sound effects on the specified Actor |
| Actor:stopSoundEffectById(object:number, soundId:number) | ErrorCode.OK | Stop the sound effect on the specified Actor |
| Actor:appendSpeed(playerid:number, x:number, y:number, z:number) | ErrorCode.OK | Attach a speed to the actor |
| Actor:getFaceDirection(object:number) | ErrorCode.OK | Get actor orientation |
| Actor:calcDirectionByDirection(object:number, vx:number, vy:number, vz:number) | ErrorCode.OK dir:table{x=number, y=number, z=number} | Calculate the absolute direction through the local coordinate direction |
| Actor:calcDirectionByAngle(object:number, yaw:number, pitch:number) | ErrorCode.OK dir:table{x=number, y=number, z=number} | Calculate the absolute direction through the local spherical coordinate direction |
| Actor:calcDirectionByYawDirection(object:number, vx:number, vy:number, vz:number) | ErrorCode.OK dir:table{x=number, y=number, z=number} | Calculate the absolute positive direction through the local coordinate direction (ignoring the viewing angle elevation angle) |
| Actor:calcDirectionByYawAngle(object:number, yaw:number, pitch:number) | ErrorCode.OK dir:table{x=number, y=number, z=number} | Calculate the absolute positive direction through the local spherical coordinate direction (ignoring the viewing angle elevation angle) |
| Actor:getEyeHeight(object:number) | ErrorCode.OK height:number | Get the eye height |
| Actor:getEyePosition(object:number) | ErrorCode.OK x,y,z:number | Get the eye position |
| Actor:getBodySize(object:number) | ErrorCode.OK w:number, h:number | Get body size |
| Actor:playAct(object:number, actid:number) | ErrorCode.OK | Play action |
| Actor:shownickname(object:number, bshow:boolean) | ErrorCode.OK | Set nickname display |
| Actor:setnickname(object:number, nickname:string) | ErrorCode.OK | Set the nickname |
| Actor:getActorFacade(object:number) | ErrorCode.OK name:string | Get the appearance of Actor |
| Actor:changeCustomModel(object:number, modelName:string) | ErrorCode.OK | Change the appearance of Actor |
| Actor:recoverinitialModel(object:number) | ErrorCode.OK | Restore the appearance of the creature |
| Actor:addBuff(object:number, buffid:number, bufflv:number, customticks:number) | ErrorCode.OK | Increase the specified BUFF |
| Actor:hasBuff(object:number, buffid:number) | ErrorCode.OK ret:boolean | Whether there is already a specified BUFF |
| Actor:removeBuff(object:number, buffid:number) | ErrorCode.OK | Remove the specified BUFF |
| Actor:clearAllBuff(object:number) | ErrorCode.OK | Clear all BUFF |
| Actor:clearAllBadBuff(object:number) | ErrorCode.OK | Clear all debuff BUFF |
| Actor:getBuffList(object:number) | ErrorCode.OK num:number, array:table(buffid array) | Get the existing BUFF |
| Actor:getBuffLeftTick(object:number, buffid:number) | ErrorCode.OK ticks:number | Get the remaining ticks of BUFF |
| Actor:randomFacadeID() | ErrorCode.OK facadeid:string | Obtain a random appearance id string |
| Actor:playerHurt(objectA:number, object:number, hp:number, attackType:number) | ErrorCode.OK | The main effect of this method |
| Actor:playerHurtArea(objectA:number, plow:number, hp:number, attackType:number) | ErrorCode.OK | The main effect of this method |
| Actor:actorHurt(objectA:number, object:number, hp:number, attackType:number) | ErrorCode.OK | The main effect of this method |
| Actor:actorHurtArea(objectA:number, plow:number, hp:number, attackType:number) | ErrorCode.OK | The main effect of this method |
| Actor:getPositionV2(objid:number) | ErrorCode.OK code:number, pos:table{x:number, y:number, z:number} | Get actor position |
| Actor:setFaceDirection(objid:number, x:number, y:number, z:number) | ErrorCode.OK code:number | Set the orientation of the object |