茶服加密更新

This commit is contained in:
2025-11-17 19:38:44 +08:00
parent 2439632d3f
commit e5bf2ba59c
11 changed files with 431 additions and 176 deletions

View File

@@ -3,6 +3,46 @@ function onKeyFrameFlag_po_priest_bykk(obj, flagIndex)
{
if(!obj) return true;
local job = obj.getVar("job").getInt(0);
if(flagIndex == 1000 && job == 0){
local height = sq_GetZPos(obj);
print("height = "+height);
if(height > 5000){
switch(height){
case 6000://球手
local sqrChr = sq_GetCNRDObjectToSQRCharacter(obj.getTopCharacter());
local apdPath = "character/common/ap_equ.nut";
if(!CNSquirrelAppendage.sq_IsAppendAppendage(sqrChr, apdPath)){
local AddAppendage = CNSquirrelAppendage.sq_AppendAppendage(sqrChr, sqrChr, -1, false, apdPath, true);
AddAppendage.sq_SetValidTime(60000);
AddAppendage.getVar("custom").setInt(17, 20);
AddAppendage.getVar("custom").setInt(18, 20);
AddAppendage.getVar("custom").setInt(19, 25);
AddAppendage.getVar("custom").setInt(9, 40);
AddAppendage.getVar("custom").setInt(10, 40);
AddAppendage.getVar("custom").setInt(11, 40);
AddAppendage.getVar("custom").setInt(12, 40);
}
sq_SendDestroyPacketPassiveObject(obj);
return true;
break;
case 6001:
local sqrChr = sq_GetCNRDObjectToSQRCharacter(obj.getTopCharacter());
local apdPath = "character/common/ap_youbishenshou.nut";
local objectManager = sqrChr.getObjectManager();//得到對象管理器
for (local i = 0; i < objectManager.getCollisionObjectNumber(); i++){
local object = objectManager.getCollisionObject(i);//得到控制類對象
if (object && object.getState() != STATE_DIE && object.isObjectType(OBJECTTYPE_CHARACTER) && !sqrChr.isEnemy(object)){
local chrObj = sq_GetCNRDObjectToSQRCharacter(object);
if(!CNSquirrelAppendage.sq_IsAppendAppendage(sqrChr, apdPath)){
local AddAppendage = CNSquirrelAppendage.sq_AppendAppendage(chrObj, sqrChr, -1, false, apdPath, true);
AddAppendage.sq_SetValidTime(10000);
}
}
}
break;
}
}
}
local skillIndex = obj.getVar("skillIndex").getInt(0);
local subtype = obj.getVar("subtype").getInt(0);
local state = obj.getVar("state").getInt(0);
@@ -18,6 +58,26 @@ function onKeyFrameFlag_po_priest_bykk(obj, flagIndex)
sq_SetCurrentAttackBonusRate(sq_GetCurrentAttackInfo(obj), totalDamage);
sq_SetAddWeaponDamage(sq_GetCurrentAttackInfo(obj), true);
break;
case 28:
switch(flagIndex){
case 100:
local currentAni = obj.getCurrentAnimation();
currentAni.setCurrentFrameWithChildLayer(2);
break;
case 101:
local targetObj = obj.getVar("tar").get_obj_vector(0);
if(targetObj){
local activeObj = sq_GetCNRDObjectToActiveObject(targetObj);
sq_setCurrentAxisPos(obj, 0, sq_GetDistancePos(sq_GetXPos(activeObj), sq_GetDirection(activeObj), 30));
sq_setCurrentAxisPos(obj, 1, sq_GetYPos(activeObj));
}
local speedRate = obj.getVar("custom").getInt(5);
local speed = 15 * speedRate / 100;
if(sq_GetDirection(obj) == ENUM_DIRECTION_RIGHT) sq_SetVelocity(obj, 0, speed.tofloat());
else sq_SetVelocity(obj, 0, -speed.tofloat());
break;
}
break;
}
break;
case 2:
@@ -180,6 +240,7 @@ function onKeyFrameFlag_po_priest_bykk(obj, flagIndex)
return true;
}
function onAttack_po_priest_bykk(obj, damager, boundingBox, isStuck)
{
if(!obj) return;
@@ -413,7 +474,7 @@ function procAppend_po_priest_bykk(obj)
switch(state){
case 21:
if(obj.getVar("bool").getBool(0)) return;
if(obj.getVar("custom").getInt(6) > 0) return;
// if(obj.getVar("custom").getInt(6) > 0) return;
local timer = obj.getVar().get_ct_vector(0);
if(timer){
local currentT = timer.Get();