-=[Les Panthères Noires]=-
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Soyez le bienvenue, Invité, dans la tanière des redoutables Panthères Noires sur Mohaa !

-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

[Script] StG 44 semi-auto

Aller en bas  Message [Page 1 sur 1]

1[Script] StG 44 semi-auto Empty [Script] StG 44 semi-auto Lun 14 Nov - 1:16

Feho

Feho
Admin
Admin

Un peu plus compliqué... le mod récemment ajouté à la fameuse StG 44 Razz

Code:
main local.fire:

   if (self.useheld == 1)
      end
      
   self weaponcommand dual targetname getme
   local.weapon = $getme
   local.weapon.targetname = ""
   
   if (local.weapon.model=="models/weapons/mp44.tik")
   {
      if (local.fire)
      {
         self thread fire local.weapon
         end
      }

      if (local.weapon.semiauto != NIL)
      {
         local.weapon.semiauto--
         if (local.weapon.semiauto == -1)
         {
            local.weapon.semiauto = 1
            self iprint "StG 44 : semi-auto"
            self weaponcommand dual dmfiredelay 0.2
         }
         if (local.weapon.semiauto == 0)
         {
            self iprint "StG 44 : automatic"
            self weaponcommand dual dmfiredelay 0.086
         }
      }
      
      if (local.weapon.semiauto == NIL)
      {
         local.weapon.semiauto = 1
         self iprint "StG 44 : semi-auto"
      }
      
      local.weapon playsound mp44_snd_noammo
   }
end

fire local.weapon:

   if (local.weapon.semiauto == 1)
   {
      self stufftext("-attackprimary")
   }

end

Explications (je mettrai plus de détails plus tard, mon lit m'appelle !) :

Le script est exécuté à chaque fois qu'un joueur tire ou fait un clic droit avec une MG (BAR ou StG 44)

Code:
main local.fire: // la variable local.fire est définie seulement si c'est un clic gauche (quand le joueur tire quoi...)

   if (self.useheld == 1) // self représente le joueur qui porte l'arme. Si il est en train d'appuyer sur UTILISER, on met directement fin au script (j'ai mis ça pour pouvoir balancer des voix allemandes (utiliser + clic) sans que ça change le mode de tir de la StG 44)
      end
      
   self weaponcommand dual targetname getme
   local.weapon = $getme
   local.weapon.targetname = "" // Bon là en gros on a récupéré l'arme du joueur dans la variable local.weapon
   
   if (local.weapon.model=="models/weapons/mp44.tik") // Si c'est la StG 44 (aussi appellée MP44...)
   {
      if (local.fire) // si la variable local.fire contient une valeur (si le joueur a tiré)
      {
         self thread fire local.weapon // on passe au thread "fire" et on termine le script
         end
      }

      if (local.weapon.semiauto != NIL) // si la varibale local.weapon.semiauto a une valeur (différente de nulle)
      {
         local.weapon.semiauto-- // on diminue de 1 sa valeur (revient à faire local.weapon.semiauto = local.weapon.semiauto - 1)
         if (local.weapon.semiauto == -1)
         {
            local.weapon.semiauto = 1
            self iprint "StG 44 : semi-auto" // ici on affiche en jaune sur l'écran du joueur qu'il est en semi-auto
            self weaponcommand dual dmfiredelay 0.2 // on règle l'arme du joueur a une cadence de tir de 0.2 seconde entre chaque balle (pour qu'on ne puisse pas tirer aussi rapidement qu'en automatique en cliquant vite sur la souris...)
         }
         if (local.weapon.semiauto == 0)
         {
            self iprint "StG 44 : automatic"
            self weaponcommand dual dmfiredelay 0.086 // retour à la cadence par défaut de l'arme
         }
      }
      
      if (local.weapon.semiauto == NIL) // si la StG n'a pas encore de valeur à sa variable "semiauto"
      {
         local.weapon.semiauto = 1 // on lui attribue la valeur 1
         self iprint "StG 44 : semi-auto"
      }
      
      local.weapon playsound mp44_snd_noammo // le son joué lors du changement de mode de tir
   }
end

fire local.weapon: // un nouveau thread appellé "fire" et qui reçoit la variable local.weapon en entrée (sinon on ne pourrait pas utiliser cette variable à l'intérieur du thread)

   if (local.weapon.semiauto == 1)
   {
      self stufftext("-attackprimary") // la commande stufftext appliquée au joueur permet de lancer des commandes dans sa console. Ici "-attackprimary" stoppe le tir du joueur (en gros dès qu'il clique pour tirer, la commande d'arrêt de tir se lance juste après, ce qui ne fait sortir qu'une balle (ou 2-3 suivant le ping du joueur...)
   }

end

Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum