Raised This Month: $ Target: $400
 0% 

Questions


  
 
 
Thread Tools Display Modes
Author Message
Kidev
Veteran Member
Join Date: Jun 2010
Location: France
Old 04-20-2011 , 03:28   Questions
#1

Salut, j'aurais plusieurs petites questions:

1) Comment hooker toutes les armes dans le register:
PHP Code:
RegisterHam(Ham_Weapon_SecondaryAttack "?""Ham_Block_Attack"); 
J'ai essayé à tout hasard de remplacer "?" par _ mais il n'y a pas de valeur par défaut...

2) Comment donner une seule balle (au lieu de 7) dans le Deagle d'un client qui remplit une condition (ici un bool)?

3) Pour bloquer les commandes telles que "say /shop" ou "+drop" est-ce une bonne technique ceci (pour bloquer et prendre l'id du client)?
PHP Code:
#include <amxmodx>

#define MAX_PLAYERS 32

new bool:condition[33] = true;

public 
plugin_init()
{
    
register_clcmd("drop""BlockCmd");
    
register_clcmd("say /shop""BlockCmd");
}

public 
BlockCmd()
{
    new 
iPlayers[MAX_PLAYERS], iNumi;
    
get_players(iPlayersiNum"a");
    for(
i<iNumi++;)
    {
        new 
id iPlayers[i];
        if(
condition[id])
        {
            
client_print(idprint_center"Tu ne peux pas utiliser cette commande");
            return 
PLUGIN_HANDLED;
        }
    }
    return 
PLUGIN_CONTINUE;

Voila, merci d'avance
__________________

Last edited by Kidev; 04-21-2011 at 06:29.
Kidev is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 04-20-2011 , 04:25   Re: Question
#2

1) La valeur c'est weapon_* (comme weapon_usp). Pour toutes les armes, faut looper. En gros, tu loopes simplement sur les weapon ids et tu récupères le nom de l'arme avec get_weaponname. http://wiki.amxmodx.org/CS_Weapons_Information

2) http://www.amxmodx.org/funcwiki.php?go=func&id=208

3) L'index est passé dans la commande. T'as pas besoin de looper puisque tu hookes une commande d'un joueur. Pour bloquer, vaut mieux ici PLUGIN_HANDLED_MAIN pour éviter de bloquer les plugins déclarés en dessous de ton plugin qui utilise cette commande.
__________________
Arkshine is offline
Kidev
Veteran Member
Join Date: Jun 2010
Location: France
Old 04-20-2011 , 12:03   Re: Question
#3

Pour le 1) je vais essayer ce que je pense. Merci pour la page du wiki. Sinon ne puis-je pas tout simplement bloquer "+attack2"? De la même manière que "drop"?

Pour le 2) ok, merci pour la native.

Et pour le 3) je peux tout simplement passer id à la fonction:
PHP Code:
public BlockCmd(id)
{
    if(
condition[id])
    {
        
client_print(idprint_center"Tu ne peux pas utiliser cette commande");
        return 
PLUGIN_HANDLED_MAIN;
    }
    return 
PLUGIN_CONTINUE;

Merci
__________________

Last edited by Kidev; 04-20-2011 at 12:07.
Kidev is offline
bboygrun
CHOMP
Join Date: May 2010
Location: France
Old 04-20-2011 , 12:22   Re: Question
#4

1)

PHP Code:
public client_PreThinkid )
{    
    
entity_set_intidEV_INT_buttonentity_get_intidEV_INT_button ) & ~IN_ATTACK2 )

__________________
bboygrun is offline
Kidev
Veteran Member
Join Date: Jun 2010
Location: France
Old 04-20-2011 , 12:28   Re: Question
#5

Prethink est souvent exécuté nan? Je ne pense pas que ce soit utile si mettre "+attack2" en return PLUGIN_HANDLED_MAIN marche bien... Après peut-être que cela ne marche pas, car je n'ai pas testé.
__________________
Kidev is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 04-20-2011 , 14:36   Re: Question
#6

Non tu peux pas. Si tu veux bloquer efficacement une arme, vaut mieux set les offset m_flNextPrimaryAttack, m_flNextSecondaryAttack et m_flNextAttack.
__________________
Arkshine is offline
Kidev
Veteran Member
Join Date: Jun 2010
Location: France
Old 04-20-2011 , 14:42   Re: Question
#7

Euh... Comment?
__________________
Kidev is offline
benjibau
Veteran Member
Join Date: Jul 2009
Location: France (Nord 59)
Old 04-21-2011 , 03:25   Re: Question
#8

Je pense que seulement m_flNextPrimaryAttack et m_flNextSecondaryAttack c'est suffisant.

PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

const m_flNextPrimaryAttack 46
const m_flNextSecondaryAttack 47
const m_flNextAttack 83

public plugin_init() 
{
    
RegisterHam(Ham_Item_Deploy"weapon_blabla""WeaponDeploy_Post"1)
}

public 
WeaponDeploy_Post(id
{
    
set_pdata_float(idm_flNextPrimaryAttack9999.04)
    
set_pdata_float(idm_flNextSecondaryAttack9999.04)
    
set_pdata_float(idm_flNextAttack9999.04)


Last edited by benjibau; 04-21-2011 at 04:39. Reason: Ajout m_flNextAttack
benjibau is offline
Send a message via MSN to benjibau
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 04-21-2011 , 04:25   Re: Question
#9

Tu peux rajouter m_flNextAttack pour éviter les bugs d'animation. (quand tu vas tenter de tirer, le client va detecter et tenter de faire jouer une animation)
__________________
Arkshine is offline
Kidev
Veteran Member
Join Date: Jun 2010
Location: France
Old 04-21-2011 , 06:07   Re: Question
#10

Ok merci.

Par contre pourquoi mettre la valeur a 9999.0? C'est trop élevé du coup il ne fait rien?
Et les valeurs des constantes sont les valeurs par défaut?
__________________

Last edited by Kidev; 04-21-2011 at 06:10.
Kidev is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 19:51.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode