Aller au contenu
News ticker
  • Bienvenue sur le nouveau forum VeryGames
  • Welcome to the new VeryGames forum
  • VeryNews

    Demande d'aide


    darky3697

    Messages recommandés

    Salut à tous,

     

    je post ici pour m'éclairer j'ai commencé un code permettant en étant térroriste de prendre les armes des autres avec une commande! xD

    Problème je n'y arrive pas donc je vous poste ici le petit bout de code peux être inutile . Et si possible de créer un timer (une barre de progréssion + timer avant de re use la commande ) désolé si j'en demande un peu trop mais libre à vous de me répondre ou pas.

     

     

    public Action:Command_pick(client, args) 
    { 
       if (IsClientInGame(client))
       {
           if (IsPlayerAlive(client)) 
           { 
               if (GetClientTeam(client) == 2)
               {
                   pick[client] = GetClientAimTarget(client, true);
    
                   if (pick[client] != -1)            
                   {
                       decl String:WeaponName[32];
                       Client_GetActiveWeaponName(client, WeaponName, sizeof(WeaponName));
    
                       new weapon = Client_GetActiveWeapon(client);
    
                       RemoveEdict(weapon);
    
                       GivePlayerItem(client, WeaponName);
    
                       CPrintToChat(client, "%s : Vous venez de voler l'arme de %N.", LOGO, pick[client]);
    
    
    

    Lien vers le commentaire
    Partager sur d’autres sites

    Tien j'ai codé cette connerie je sais même pas si c'est bon et m'en tape.

    J'ai pas la tête à codé, donne du feedback pour demain ou si quelqu'un veux s'en charger, hf.

     

    #include <sourcemod>
    #include <smlib>
    #include <sdktools>
    
    new bool:g_bUse[MAXPLAYERS+1] = false;
    
    public OnPluginStart()
    {
       RegConsoleCmd("sm_pickup", CMD_PickUp);
    }
    
    public OnClientPutInServer(client)
    {
       g_bUse[client] = true;
    }
    
    public Action:CMD_PickUp(client, args)
    {
       if(IsClientInGame(client))
       {
           if(GetClientTeam(client) == 2)
           {
               if(IsPlayerAlive(client))
               {
                   if(g_bUse[client])
                   {
                       new Target = GetClientAimTarget(client, true);
                       decl String:sWeapon[32];
                       Client_GetActiveWeaponName(Target, sWeapon, sizeof(sWeapon));
                       new Weapon = Client_GetActiveWeapon(Weapon);
    
                       RemovePlayerItem(Target, Weapon);
                       GivePlayerItem(client, sWeapon);
    
                       SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); 
                       SetEntProp(client, Prop_Send, "m_iProgressBarDuration", 10);
                       CreateTimer(10.0, UseTimer, client);
    
                       g_bUse[client] = false;
                   }
                   else
                   {
                       PrintToChat(client, "[sM] PickUP indisponnible");
                   }
               }
               else
               {
                   PrintToChat(client, "[sM] Vous devez être en vie");
               }
           }
           else
           {
               PrintToChat(client, "[sM] Vous devez être en terro");
           }
       }
    
       return Plugin_Handled;
    }
    
    public Action:UseTimer(Handle:timer, any:client)
    {
       g_bUse[client] = true;
       PrintToChat(client, "[sM] PickUP disponnible");
    }
    

     

    KriKri.

    Lien vers le commentaire
    Partager sur d’autres sites

    Test ça j'ai corriger mon code et j'ai fait plaisir a Marechoux T_T

     

    #include <sourcemod>
    #include <smlib>
    #include <sdktools>
    
    new bool:g_bUse[MAXPLAYERS+1] = false;
    
    public OnPluginStart()
    {
       RegConsoleCmd("sm_pickup", CMD_PickUp);
    }
    
    public OnClientPutInServer(client)
    {
       g_bUse[client] = true;
    }
    
    public Action:CMD_PickUp(client, args)
    {
       if(IsClientInGame(client))
       {
           if(GetClientTeam(client) == 2)
           {
               if(IsPlayerAlive(client))
               {
                   if(g_bUse[client])
                   {
                       new Target = GetClientAimTarget(client, true);
    
                       if(Target != -1)
                       {
                           decl String:sWeapon[32];
                           new Weapon = Client_GetActiveWeaponName(Target, sWeapon, sizeof(sWeapon));
    
                           RemovePlayerItem(Target, Weapon);
                           GivePlayerItem(client, sWeapon);
    
                           PrintToChat(client, "[sM] Vous avez voler l'arme de %N", Target);
                           PrintToChat(Target, "[sM] Le joueur %N vous à voler votre arme", client);
    
                           SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); 
                           SetEntProp(client, Prop_Send, "m_iProgressBarDuration", 10);
                           CreateTimer(10.0, UseTimer, client);
    
                           g_bUse[client] = false;
                       }
                       else
                       {
                           PrintToChat(client, "[sM] Vous ne visez personne");
                       }
                   }
                   else
                   {
                       PrintToChat(client, "[sM] PickUP indisponnible");
                   }
               }
               else
               {
                   PrintToChat(client, "[sM] Vous devez être en vie");
               }
           }
           else
           {
               PrintToChat(client, "[sM] Vous devez être en terro");
           }
       }
    
       return Plugin_Handled;
    }
    
    public Action:UseTimer(Handle:timer, any:client)
    {
       g_bUse[client] = true;
       PrintToChat(client, "[sM] PickUP disponnible");
    }  
    

    Lien vers le commentaire
    Partager sur d’autres sites

    Voilà et en prime je l'ai tester et j'ai filmer donc si tu dit que sa bug gare à toi ! :p

     

    #include <sourcemod>
    #include <smlib>
    #include <sdktools>
    
    new bool:g_bUse[MAXPLAYERS+1] = false;
    
    public OnPluginStart()
    {
       RegConsoleCmd("sm_pickup", CMD_PickUp);
    }
    
    public OnClientPutInServer(client)
    {
       g_bUse[client] = true;
    }
    
    public Action:CMD_PickUp(client, args)
    {
       if(IsClientInGame(client))
       {
           if(GetClientTeam(client) == 2)
           {
               if(IsPlayerAlive(client))
               {
                   if(g_bUse[client])
                   {
                       new Target = GetClientAimTarget(client, true);
    
                       if(Target != -1)
                       {
                           new Float:fTargetOrigin[3];
                           new Float:fClientOrigin[3];
                           GetEntPropVector(Target, Prop_Send, "m_vecOrigin", fTargetOrigin);
                           GetEntPropVector(client, Prop_Send, "m_vecOrigin", fClientOrigin);
                           new Float:fDistance = GetVectorDistance(fTargetOrigin, fClientOrigin);
    
                           if(fDistance <= 800)
                           {
                               decl String:sWeapon[32];
                               new Weapon = Client_GetActiveWeaponName(Target, sWeapon, sizeof(sWeapon));
    
                               RemovePlayerItem(Target, Weapon);
                               GivePlayerItem(client, sWeapon);
    
                               PrintToChat(client, "[sM] Vous avez voler l'arme de %N", Target);
                               PrintToChat(Target, "[sM] Le joueur %N vous à voler votre arme", client);
    
                               SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); 
                               SetEntProp(client, Prop_Send, "m_iProgressBarDuration", 10);
                               CreateTimer(10.0, UseTimer, client);
    
                               g_bUse[client] = false;
                           }
                           else
                           {
                               PrintToChat(client, "[sM] Vous êtes trop loins du joueur");
                           }
                       }
                       else
                       {
                           PrintToChat(client, "[sM] Vous ne visez personne");
                       }
                   }
                   else
                   {
                       PrintToChat(client, "[sM] PickUP indisponnible");
                   }
               }
               else
               {
                   PrintToChat(client, "[sM] Vous devez être en vie");
               }
           }
           else
           {
               PrintToChat(client, "[sM] Vous devez être en terro");
           }
       }
    
       return Plugin_Handled;
    }
    
    public Action:UseTimer(Handle:timer, any:client)
    {
       g_bUse[client] = true;
    
       SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); 
       SetEntProp(client, Prop_Send, "m_iProgressBarDuration", 0);
    
       PrintToChat(client, "[sM] PickUP disponnible");
    } 
    

    Modifié par Kriax
    ENCODAGE DE MERDE !
    Lien vers le commentaire
    Partager sur d’autres sites

    Merci khaox <3

     

    #include <sourcemod>
    #include <smlib>
    #include <sdktools>
    
    
    new bool:g_bUse[MAXPLAYERS+1] = false;
    
    
    public OnPluginStart()
    {
       RegConsoleCmd("sm_pickup", CMD_PickUp);
    }
    
    
    public OnClientPutInServer(client)
    {
       g_bUse[client] = true;
    }
    
    
    public Action:CMD_PickUp(client, args)
    {
       if(IsClientInGame(client))
       {
           if(GetClientTeam(client) == 2)
           {
               if(IsPlayerAlive(client))
               {
                   if(g_bUse[client])
                   {
                       new Target = GetClientAimTarget(client, true);
    
                       if(Target != -1)
                       {
                           new Float:fTargetOrigin[3];
                           new Float:fClientOrigin[3];
                           GetEntPropVector(Target, Prop_Send, "m_vecOrigin", fTargetOrigin);
                           GetEntPropVector(client, Prop_Send, "m_vecOrigin", fClientOrigin);
                           new Float:fDistance = GetVectorDistance(fTargetOrigin, fClientOrigin);
    
                           if(fDistance <= 800)
                           {
                               SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); 
                               SetEntProp(client, Prop_Send, "m_iProgressBarDuration", 10);
                               CreateTimer(10.0, UseTimer, client);
    
    
                               g_bUse[client] = false;
                           }
                           else
                           {
                               PrintToChat(client, "[sM] Vous êtes trop loins du joueur");
                           }
                       }
                       else
                       {
                           PrintToChat(client, "[sM] Vous ne visez personne");
                       }
                   }
                   else
                   {
                       PrintToChat(client, "[sM] PickUP indisponnible");
                   }
               }
               else
               {
                   PrintToChat(client, "[sM] Vous devez être en vie");
               }
           }
           else
           {
               PrintToChat(client, "[sM] Vous devez être en terro");
           }
       }
    
       return Plugin_Handled;
    }
    
    
    public Action:UseTimer(Handle:timer, any:client)
    {
       g_bUse[client] = true;
    new Target = GetClientAimTarget(client, true);
    decl String:sWeapon[32];
       new Weapon = Client_GetActiveWeaponName(Target, sWeapon, sizeof(sWeapon));
    
    
       RemovePlayerItem(Target, Weapon);
       GivePlayerItem(client, sWeapon);
    
    
       PrintToChat(client, "[sM] Vous avez voler l'arme de %N", Target);
       PrintToChat(Target, "[sM] Le joueur %N vous à voler votre arme", client);
    
    
       SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); 
       SetEntProp(client, Prop_Send, "m_iProgressBarDuration", 0);
    
    
       PrintToChat(client, "[sM] PickUP disponnible");
    }

     

    enfin je test

    Lien vers le commentaire
    Partager sur d’autres sites

    Voilà, logiquement ça devrais être bon :p

     

    #include <sourcemod>
    #include <smlib>
    #include <sdktools>
    
    new bool:g_bUse[MAXPLAYERS+1] = false;
    new g_PickUP[MAXPLAYERS+1];
    
    public OnPluginStart()
    {
       RegConsoleCmd("sm_pickup", CMD_PickUp);
    }
    
    public OnClientPutInServer(client)
    {
       g_bUse[client] = true;
    }
    
    public Action:CMD_PickUp(client, args)
    {
       if(IsClientInGame(client))
       {
           if(GetClientTeam(client) == 2)
           {
               if(IsPlayerAlive(client))
               {
                   if(g_bUse[client])
                   {
                       new Target = GetClientAimTarget(client, true);
    
                       if(Target != -1)
                       {
                           g_PickUP[client] = Target;
    
                           new Float:fTargetOrigin[3];
                           new Float:fClientOrigin[3];
                           GetEntPropVector(Target, Prop_Send, "m_vecOrigin", fTargetOrigin);
                           GetEntPropVector(client, Prop_Send, "m_vecOrigin", fClientOrigin);
                           new Float:fDistance = GetVectorDistance(fTargetOrigin, fClientOrigin);
    
                           if(fDistance <= 800)
                           {
                               SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); 
                               SetEntProp(client, Prop_Send, "m_iProgressBarDuration", 10);
    
                               CreateTimer(10.0, Timer_Weapon, client);
                               CreateTimer(15.0, Timer_Use, client);
    
                               g_bUse[client] = false;
                           }
                           else
                               PrintToChat(client, "[sM] Vous êtes trop loins du joueur");
                       }
                       else
                           PrintToChat(client, "[sM] Vous ne visez personne");
                   }
                   else
                       PrintToChat(client, "[sM] PickUP indisponnible");
               }
               else
                   PrintToChat(client, "[sM] Vous devez être en vie");
           }
           else
               PrintToChat(client, "[sM] Vous devez être en terro");
       }
    
       return Plugin_Handled;
    }
    
    public Action:Timer_Use(Handle:timer, any:client)
    {
       g_bUse[client] = true;
    
       PrintToChat(client, "[sM] PickUP disponnible");
    }
    
    public Action:Timer_Weapon(Handle:timer, any:client)
    {
       SetEntPropFloat(client, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); 
       SetEntProp(client, Prop_Send, "m_iProgressBarDuration", 0);
    
       decl String:sWeapon[32];
       new Weapon = Client_GetActiveWeaponName(g_PickUP[client], sWeapon, sizeof(sWeapon));
    
       RemovePlayerItem(g_PickUP[client], Weapon);
       GivePlayerItem(client, sWeapon);
    
       PrintToChat(client, "[sM] Vous avez voler l'arme de %N", g_PickUP[client]);
       PrintToChat(g_PickUP[client], "[sM] Le joueur %N vous à voler votre arme", client);
    }
    

     

    10 secondes : Barre de progression et give de l'arme

    15 secondes : Temps entre chaque utilisation de commande

     

    FeedBack le plus vite possible :p

     

    EDIT : Le code de Khaox fonctionneras pas car si le joueur ne regarde pas le joueur à voler il recevras pas l'arme ...

    Lien vers le commentaire
    Partager sur d’autres sites

    Rejoindre la conversation

    Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

    Invité
    Répondre à ce sujet…

    ×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

      Seulement 75 émoticônes maximum sont autorisées.

    ×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

    ×   Votre contenu précédent a été rétabli.   Vider l’éditeur

    ×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

    ×
    ×
    • Créer...