Avant toute chose , je dois dire que c'est une requete d'une personne.
Je vais vous dire comment forcée les critiques a 100% sur n'importe quelle attaque d'une arme avec le ressource tool en modifiant les .lua de S4 League.
C'est super simple mais je vais faire attention de mettre asser de detail.
Pour commencer je vais prendre exemple sur le dual magnum donc je recupere le fichier weapon_dualgun.lua avec le ressource tool (il est dans resources -> script).
Bon par exemple , j'ai envie de modifier l'attaque de roulade du perso pour que ça critique a chaque coups donc je regarde le bon code , ici c'est ça :
il faut s'avoir que tout qui commence par des " -- " sont des commentaire donc ils ne changent en rien du tout le code.
Quelques fois ils donnent des information plus ou moin interresante.
Si vous regardez bien on peut voir que il y a deja une "condition" de critical dans cette arme :
et
il n'y a pas toutes les armes qui ont ça alors n'y pensez pas si vous ne trouver pas , vous pourrez quand meme changer les critiques.
Deja pour commencer , il faut s'avoir que chaque tir de chaque attaque peux etre changer , comme vous pouvez le voir , dans cette attaque il y a "Attack1" et "Attack2" donc si on veux modifier toute l'attaque en roulade il faut changer les deux.
Pour faire des critical a 100% il faut utiliser ceci :
Donc pour le premier tir de la roulade on change :
par
et pour le deuxieme c'est la meme chose , on change :
par
Le code final dois etre comme ça:
Si vous avez pas le :SetCritical( X, X² ); vous devez rajouter les deux ligne et pas remplacer.
Par exemple si je veux faire des critique avec le premier click gauche du mettalic fist qui n'a pas de "condition" de critique, je dois changer ce code:
par ça :
BONUS
Si vous avez remarquer il y a cette ligne la :
qui veux simplement dire le nombre balle que utilise ce coup la , si vous changez le 1 par un 0 vous n'utiliserez pas de balle avec cette attaque ;)
Je vais vous dire comment forcée les critiques a 100% sur n'importe quelle attaque d'une arme avec le ressource tool en modifiant les .lua de S4 League.
C'est super simple mais je vais faire attention de mettre asser de detail.
Pour commencer je vais prendre exemple sur le dual magnum donc je recupere le fichier weapon_dualgun.lua avec le ressource tool (il est dans resources -> script).
Bon par exemple , j'ai envie de modifier l'attaque de roulade du perso pour que ça critique a chaque coups donc je regarde le bon code , ici c'est ça :
Code:
---- ---- ---- ---- ---- ---- ----
-- Dual Magnum Rolling Shot --
---- ---- ---- ---- ---- ---- ----
function RenewalDualMagnum_ROLLING_SHOT( OneShotTime, Power, Accuracy, AdditionalPower )
STATE:InitLua( 700, 0 , 1, "Resources/Sound/smg_dry_fire.ogg" );
STATE:SetCameraRayOffset( 0.0, 0.0, 0.0 );
ACTORSTATE:SetGunSpreadType( 2 );
ACTORSTATE:SetInnerAccuracyVary( 10, 1, 0.3, 1 );
ACTORSTATE:SetOuterAccuracyVary( 15, 1, 0.5, 3 );
-- ¹«ºê ¹Ú½º »ç¿ëÇÒ²¨¾ß?
STATE:SetUseMoveBox( true );
STATE:SetMoveBoxMultiplier( 1.8 );
STATE:SetSpendSp( 10 );
Attack1 = CreateCAttack();
Attack1:InitAttack1( WEAPONTYPE_DUAL_GUN, ATTACKATTRIB_DUAL_GUN_ATTACK3, 100, (Power*0.265)+AdditionalPower, AddtionalPower );
Attack1:InitAttack2( MAKETHICKRAY( MAKEVECTOR3(0,0,0), MAKEVECTOR3(0,0,-1), 50, RayDistanceLimit ), 1, 1, false );
-- °Å¸®º° µ¥¹ÌÁö - Ray¸¦ ÀÌ¿ëÇÑ Å¸ÀÔ¿¡¼* »ç¿ëÇÒ °Å¸®º° µ¥¹ÌÁö
-- 0:ÀϹÝ, 1:±×·¹³×À̵å¿ë, 2: Æø¹ßÇü°Å¸®º°µ¥¹ÌÁö, 3:Ãѱâ·ù °Å¸®º° µ¥¹ÌÁö( Ray, ThickRay )
Attack1:SetDamageApplyType( 3 );
-- ±âÁذŸ®¸¦ ¼ÂÆÃ
Attack1:SetDistanceDamageLength( 5000 );
Attack1:SetCheckBodyPartsByThickray( false );
Attack1:SetCollisionRangeAdjust( false, false );
Attack1:AddPushCondition( 75, 2000.0, -5000.0 );
Attack1:SetConsumeAmmo( 1 );
Attack1:SetCameraShakeEnable( true, true, 0 );
Attack1:SetCameraShakeSetFactor1( 50, 25, 5 );
Attack1:SetCameraShakeSetFactor2( 1.0, 1.0, 1000.0, 1000.0 );
Attack1:SetCameraShakeRandomDir( true );
Attack1:SetCritical( 2, 10 );
AddAttack( ATTACKS, Attack1 );
Attack2 = CreateCAttack();
Attack2:InitAttack1( WEAPONTYPE_DUAL_GUN, ATTACKATTRIB_DUAL_GUN_ATTACK3, 100, (Power*0.265)+AdditionalPower, AddtionalPower );
Attack2:InitAttack2( MAKETHICKRAY( MAKEVECTOR3(0,0,0), MAKEVECTOR3(0,0,-1), 50, RayDistanceLimit ), 1, 1, false );
-- °Å¸®º° µ¥¹ÌÁö - Ray¸¦ ÀÌ¿ëÇÑ Å¸ÀÔ¿¡¼* »ç¿ëÇÒ °Å¸®º° µ¥¹ÌÁö
-- 0:ÀϹÝ, 1:±×·¹³×À̵å¿ë, 2: Æø¹ßÇü°Å¸®º°µ¥¹ÌÁö, 3:Ãѱâ·ù °Å¸®º° µ¥¹ÌÁö( Ray, ThickRay )
Attack1:SetDamageApplyType( 3 );
-- ±âÁذŸ®¸¦ ¼ÂÆÃ
Attack2:SetDistanceDamageLength( 5000 );
Attack2:SetCheckBodyPartsByThickray( false );
Attack2:SetCollisionRangeAdjust( false, false );
Attack2:AddPushCondition( 75, 2000.0, -5000.0 );
Attack2:SetConsumeAmmo( 1 );
Attack2:SetCameraShakeEnable( true, true, 0 );
Attack2:SetCameraShakeSetFactor1( 50, 25, 5 );
Attack2:SetCameraShakeSetFactor2( 1.0, 1.0, 1000.0, 1000.0 );
Attack2:SetCameraShakeRandomDir( true );
Attack2:SetCritical( 2, 10 );
AddAttack( ATTACKS, Attack2 );
end
il faut s'avoir que tout qui commence par des " -- " sont des commentaire donc ils ne changent en rien du tout le code.
Quelques fois ils donnent des information plus ou moin interresante.
Si vous regardez bien on peut voir que il y a deja une "condition" de critical dans cette arme :
Code:
Attack1:SetCritical( 2, 10 );
Code:
Attack2:SetCritical( 2, 10 );
Deja pour commencer , il faut s'avoir que chaque tir de chaque attaque peux etre changer , comme vous pouvez le voir , dans cette attaque il y a "Attack1" et "Attack2" donc si on veux modifier toute l'attaque en roulade il faut changer les deux.
Pour faire des critical a 100% il faut utiliser ceci :
Code:
:SetAlwaysCritical( true );
:SetCheckBodyPartsByThickray( false );
Donc pour le premier tir de la roulade on change :
Code:
Attack1:SetCritical( 2, 10 );
Code:
Attack1:SetAlwaysCritical( true );
Attack1:SetCheckBodyPartsByThickray( false );
Code:
Attack2:SetCritical( 2, 10 );
Code:
Attack2:SetAlwaysCritical( true );
Attack2:SetCheckBodyPartsByThickray( false );
Le code final dois etre comme ça:
Code:
---- ---- ---- ---- ---- ---- ----
-- Dual Magnum Rolling Shot --
---- ---- ---- ---- ---- ---- ----
function RenewalDualMagnum_ROLLING_SHOT( OneShotTime, Power, Accuracy, AdditionalPower )
STATE:InitLua( 700, 0 , 1, "Resources/Sound/smg_dry_fire.ogg" );
STATE:SetCameraRayOffset( 0.0, 0.0, 0.0 );
ACTORSTATE:SetGunSpreadType( 2 );
ACTORSTATE:SetInnerAccuracyVary( 10, 1, 0.3, 1 );
ACTORSTATE:SetOuterAccuracyVary( 15, 1, 0.5, 3 );
-- ¹«ºê ¹Ú½º »ç¿ëÇÒ²¨¾ß?
STATE:SetUseMoveBox( true );
STATE:SetMoveBoxMultiplier( 1.8 );
STATE:SetSpendSp( 10 );
Attack1 = CreateCAttack();
Attack1:InitAttack1( WEAPONTYPE_DUAL_GUN, ATTACKATTRIB_DUAL_GUN_ATTACK3, 100, (Power*0.265)+AdditionalPower, AddtionalPower );
Attack1:InitAttack2( MAKETHICKRAY( MAKEVECTOR3(0,0,0), MAKEVECTOR3(0,0,-1), 50, RayDistanceLimit ), 1, 1, false );
-- °Å¸®º° µ¥¹ÌÁö - Ray¸¦ ÀÌ¿ëÇÑ Å¸ÀÔ¿¡¼* »ç¿ëÇÒ °Å¸®º° µ¥¹ÌÁö
-- 0:ÀϹÝ, 1:±×·¹³×À̵å¿ë, 2: Æø¹ßÇü°Å¸®º°µ¥¹ÌÁö, 3:Ãѱâ·ù °Å¸®º° µ¥¹ÌÁö( Ray, ThickRay )
Attack1:SetDamageApplyType( 3 );
-- ±âÁذŸ®¸¦ ¼ÂÆÃ
Attack1:SetDistanceDamageLength( 5000 );
Attack1:SetCheckBodyPartsByThickray( false );
Attack1:SetCollisionRangeAdjust( false, false );
Attack1:AddPushCondition( 75, 2000.0, -5000.0 );
Attack1:SetConsumeAmmo( 1 );
Attack1:SetCameraShakeEnable( true, true, 0 );
Attack1:SetCameraShakeSetFactor1( 50, 25, 5 );
Attack1:SetCameraShakeSetFactor2( 1.0, 1.0, 1000.0, 1000.0 );
Attack1:SetCameraShakeRandomDir( true );
Attack1:SetAlwaysCritical( true );
Attack1:SetCheckBodyPartsByThickray( false );
AddAttack( ATTACKS, Attack1 );
Attack2 = CreateCAttack();
Attack2:InitAttack1( WEAPONTYPE_DUAL_GUN, ATTACKATTRIB_DUAL_GUN_ATTACK3, 100, (Power*0.265)+AdditionalPower, AddtionalPower );
Attack2:InitAttack2( MAKETHICKRAY( MAKEVECTOR3(0,0,0), MAKEVECTOR3(0,0,-1), 50, RayDistanceLimit ), 1, 1, false );
-- °Å¸®º° µ¥¹ÌÁö - Ray¸¦ ÀÌ¿ëÇÑ Å¸ÀÔ¿¡¼* »ç¿ëÇÒ °Å¸®º° µ¥¹ÌÁö
-- 0:ÀϹÝ, 1:±×·¹³×À̵å¿ë, 2: Æø¹ßÇü°Å¸®º°µ¥¹ÌÁö, 3:Ãѱâ·ù °Å¸®º° µ¥¹ÌÁö( Ray, ThickRay )
Attack1:SetDamageApplyType( 3 );
-- ±âÁذŸ®¸¦ ¼ÂÆÃ
Attack2:SetDistanceDamageLength( 5000 );
Attack2:SetCheckBodyPartsByThickray( false );
Attack2:SetCollisionRangeAdjust( false, false );
Attack2:AddPushCondition( 75, 2000.0, -5000.0 );
Attack2:SetConsumeAmmo( 1 );
Attack2:SetCameraShakeEnable( true, true, 0 );
Attack2:SetCameraShakeSetFactor1( 50, 25, 5 );
Attack2:SetCameraShakeSetFactor2( 1.0, 1.0, 1000.0, 1000.0 );
Attack2:SetCameraShakeRandomDir( true );
Attack2:SetAlwaysCritical( true );
Attack2:SetCheckBodyPartsByThickray( false );
AddAttack( ATTACKS, Attack2 );
end
Si vous avez pas le :SetCritical( X, X² ); vous devez rajouter les deux ligne et pas remplacer.
Par exemple si je veux faire des critique avec le premier click gauche du mettalic fist qui n'a pas de "condition" de critique, je dois changer ce code:
Code:
-------------------------------------------------------------------------------------------------------------
-- ¾à°ø°Ý 1 °ø°Ý ¼³Á¤.
-------------------------------------------------------------------------------------------------------------
function LeftAttack_DemonicKnuckle( OneShotTime, Power, Accuracy, AdditionalPower )
-- STATE -> CAttackMovingState
STATE:SetMoveBoxMultiplier( 2.0 );
STATE:SetStealthCancel( true );
STATE:SetMoveStopWhenDamage( false);
STATE:SetMoveSpeedRate( 1.2 );
STATE:InitLua( 800, 50, 0, false );
local range = WEAPON:GetRange();
Attack1 = CreateCAttack();
Attack1:InitAttack1( WEAPONTYPE_DEMONIC_KNUCKLE, ATTACKATTRIB_DEMONIC_KNUCKLE_LEFT_ATTACK, 240, (Power*0.9), AddtionalPower );
Attack1:InitAttack2( MAKEBOX( MAKEVECTOR3(0,200,-50), MAKEVECTOR3(0,0,-1), range*1.0, range*0.8, range*1.0 ), 1, 1, false );
Attack1:SetCameraShakeEnable( true, true, 0 );
Attack1:SetCameraShakeSetFactor1( 200, 50, 5 );
Attack1:SetCameraShakeSetFactor2( 0, 20, 2000.0, 3000.0 );
Attack1:SetCameraShakeWhenSuccess( true );
AddAttack( ATTACKS, Attack1 );
end
Code:
-------------------------------------------------------------------------------------------------------------
-- ¾à°ø°Ý 1 °ø°Ý ¼³Á¤.
-------------------------------------------------------------------------------------------------------------
function LeftAttack_DemonicKnuckle( OneShotTime, Power, Accuracy, AdditionalPower )
-- STATE -> CAttackMovingState
STATE:SetMoveBoxMultiplier( 2.0 );
STATE:SetStealthCancel( true );
STATE:SetMoveStopWhenDamage( false);
STATE:SetMoveSpeedRate( 1.2 );
STATE:InitLua( 800, 50, 0, false );
local range = WEAPON:GetRange();
Attack1 = CreateCAttack();
Attack1:InitAttack1( WEAPONTYPE_DEMONIC_KNUCKLE, ATTACKATTRIB_DEMONIC_KNUCKLE_LEFT_ATTACK, 240, (Power*0.9), AddtionalPower );
Attack1:InitAttack2( MAKEBOX( MAKEVECTOR3(0,200,-50), MAKEVECTOR3(0,0,-1), range*1.0, range*0.8, range*1.0 ), 1, 1, false );
Attack1:SetCameraShakeEnable( true, true, 0 );
Attack1:SetCameraShakeSetFactor1( 200, 50, 5 );
Attack1:SetCameraShakeSetFactor2( 0, 20, 2000.0, 3000.0 );
Attack1:SetCameraShakeWhenSuccess( true );
Attack1:SetAlwaysCritical( true );
Attack1:SetCheckBodyPartsByThickray( false );
AddAttack( ATTACKS, Attack1 );
end
BONUS
Si vous avez remarquer il y a cette ligne la :
Code:
Attack1:SetConsumeAmmo( 1 );
Last edited: