Raised This Month: $32 Target: $400
 8% 

Plusieurs problèmes


  
 
 
Thread Tools Display Modes
Author Message
MiniBrackeur
Senior Member
Join Date: Oct 2010
Old 07-29-2012 , 14:29   Plusieurs problèmes
#1

Salut tout le monde, voilà j'avais déjà ouvert un post il y a belle lurette, mais je n'avais pas eu la bonne solution. Je recherchais un plugin pour avoir un défibrillateur, j'ai décidé de le faire moi même ^^, le seul "hic", enfin, il y en à 3:

1) Comment enlever la "bartime" quand le joueur à relâché la touche utiliser ?

2) Les sons émit sont émit depuis le joueur, mais s'il bouge trop, le son s'arrête, c'est ennuyant pour le son quand il l'achète :/, une solution ?

3) Euh, là c'est le problème majeur, "the big problem !", ok y'a l'achat, ok y'a les models, ok y'a les sons, ok y'a tout qui fonctionne, seulement.. je sais pas comment hook un joueur mort ! x) quand j'ai commencé le plugin, j'me suis dit que j'allais utiliser le get_user_aiming, mais c'est pour les joueurs vivant :/, donc j'me suis dit, j'vais hook un model :p, mais sur mon serveur y'a des skins admins et tout et tout... Donc je sais pas comment faire :/

4) Pendant qu'on y est, vu que je fais toujours des erreurs, si vous voyez des erreurs grotesques, faites-moi signe :p

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>
#include <cstrike>

new cvar_defcost
new has_def[33]

new const 
g_model_p_def[] = "models/defibrillateur/p_defibrillateur.mdl"
new const g_model_v_def[] = "models/defibrillateur/v_defibrillateur.mdl"
new const g_model_w_def[] = "models/defibrillateur/w_defibrillateur.mdl"

new const g_sound_buy[] = "defibrillateur/buy.wav"
new const g_sound_speaker[] = "defibrillateur/speaker.wav"
new const g_sound_def[] = "defibrillateur/defibrillateur.wav"
new const g_sound_revived[] = "defibrillateur/revived.wav"

public plugin_init()
{
    
register_plugin("Defibrillateur""1.0""Daminou")
    
    
register_event("CurWeapon""event_curweapon""b")
    
register_event("DeathMsg""event_death""a")
    
register_forward(FM_Touch"fwd_touch")
    
register_forward(FM_CmdStart,"fwd_cmdstart")
    
    
register_clcmd("say /def""buydef")
    
register_clcmd("drop""hook_drop")
    
    
cvar_defcost register_cvar("amx_defcost""2500")
}

public 
plugin_precache()
{
    
precache_model(g_model_p_def)
    
precache_model(g_model_v_def)
    
precache_model(g_model_w_def)
    
precache_sound(g_sound_buy)
    
precache_sound(g_sound_speaker)
    
precache_sound(g_sound_def)
    
precache_sound(g_sound_revived)
}

public 
client_disconnect(id)
{
    
has_def[id] = false
}

public 
buydef(id)
{
    if(!
is_user_alive(id))
    {
        
client_print(idprint_chat"Tu dois etres vivant pour acheter un defibrillateur.")
        return 
PLUGIN_HANDLED
    
}
    if(
has_def[id])
    {
        
client_print(idprint_chat"Tu as deja un defibrillateur.")
        return 
PLUGIN_HANDLED
    
}
    new 
user_money cs_get_user_money(id)
    new 
def_cost get_pcvar_num(cvar_defcost)
    if(
user_money def_cost)
    {
        
client_print(idprint_chat"Tu n'as pas assez d'argent pour acheter un defibrillateur.")
        return 
PLUGIN_HANDLED
    
}
    
cs_set_user_money(iduser_money def_cost)
    
has_def[id] = true
    engfunc
(EngFunc_EmitSoundidCHAN_BODYg_sound_buy1.0ATTN_NORM0PITCH_NORM)
    return 
PLUGIN_HANDLED
}

public 
event_death()
{
    new 
Float:velo[3]
    new 
victim read_data(2)
    
create_def(victimvelo)
    
has_def[victim] = false
    
return PLUGIN_CONTINUE
}

public 
event_curweapon(id)
{
    if(!
is_user_alive(id) || !has_def[id]) return PLUGIN_HANDLED;
    new 
weaponclipammo
    weapon 
get_user_weapon(idclipammo)
    if(
weapon == CSW_KNIFE)
    {
        
set_pev(idpev_viewmodel2g_model_v_def)
        
set_pev(idpev_weaponmodel2g_model_p_def)
    }
    return 
PLUGIN_HANDLED
}

public 
fwd_cmdstart(iduc_handleseed)
{
    if(!
is_user_alive(id) || !has_def[id]) return FMRES_IGNORED;
    new 
weaponclipammo
    weapon 
get_user_weapon(idclipammo)
    if(
weapon != CSW_KNIFE) return FMRES_IGNORED;
    
    new 
button get_uc(uc_handleUC_Buttons)
    if(
button IN_USE)
    {
        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("BarTime"), {0,0,0}, id);
        
write_short(5)
        
message_end()
    }
    return 
FMRES_HANDLED
}

public 
fwd_touch(touchedtoucher)
{
    if(!
pev_valid(touched) || !is_user_alive(toucher)) return FMRES_IGNORED;
    
    new 
classname[32]
    
pev(touchedpev_classnameclassnamesizeof classname 1)
    
    if(
equali(classname"defibrillateur"))
    {
        if(
has_def[toucher]) return FMRES_IGNORED;
        if(
pev_valid(touched))
        {
            
engfunc(EngFunc_RemoveEntitytouched)
        }
        
has_def[toucher] = true
        client_print
(toucherprint_chat"Tu as trouver un defibrillateur !")
        
engfunc(EngFunc_EmitSoundtoucherCHAN_BODYg_sound_buy1.0ATTN_NORM0PITCH_NORM)
    }
    return 
FMRES_IGNORED
}

public 
hook_drop(id)
{
    if(!
has_def[id]) return PLUGIN_CONTINUE;
    new 
Float:velo[3]
    new 
weaponclipammo
    weapon 
get_user_weapon(idclipammo)
    if(
weapon == CSW_KNIFE)
    {        
        
velocity_by_aim(id200velo)
        
create_def(idvelo)
        
has_def[id] = false
    
}
    return 
PLUGIN_CONTINUE
}

public 
create_def(idFloat:velo[])
{
    new 
Float:origin[3]
    new 
Float:angles[3]
    new 
Float:mins[3] = {-2.79, -0.0, -6.14}
    new 
Float:maxs[3] = {2.421.996.35}
    
    new 
ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    if(!
is_user_alive(id))
    {
        
velo[0] = random_float(1.0150.0)
        
velo[1] = random_float(1.0150.0)
        
velo[2] = random_float(1.0150.0)
    }
    else
    {
        
velo[2] += 100
    
}
    
    
pev(entpev_anglesangles)
    
angles[1] += random_num(1360)
    
pev(idpev_originorigin)
    
set_pev(entpev_originorigin)
    
set_pev(entpev_classname"defibrillateur")
    
engfunc(EngFunc_SetModelentg_model_w_def)
    
engfunc(EngFunc_SetSizeentminsmaxs)
    
set_pev(entpev_anglesangles)
    
set_pev(entpev_solidSOLID_TRIGGER)
    
set_pev(entpev_movetypeMOVETYPE_TOSS)
    
set_pev(entpev_velocityvelo)
    
engfunc(EngFunc_DropToFloorent)
    
    return 
FMRES_IGNORED

Merci pour le temps que vous prendrez à répondre :p
__________________
MiniBrackeur => Daminou

Last edited by MiniBrackeur; 07-29-2012 at 14:31.
MiniBrackeur is offline
Devil259
Veteran Member
Join Date: Dec 2009
Location: France (59)
Old 07-29-2012 , 14:34   Re: Plusieurs problèmes
#2

Tu utilises un message dans le forward FM_CmdStart sans vérifier qu'il est déjà lancé ? O_o
__________________
You can do anything you set your mind to, man.


Last edited by Devil259; 07-29-2012 at 14:34.
Devil259 is offline
MiniBrackeur
Senior Member
Join Date: Oct 2010
Old 07-29-2012 , 14:34   Re: Plusieurs problèmes
#3

Bah oui pourquoi ?
__________________
MiniBrackeur => Daminou
MiniBrackeur is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 07-29-2012 , 14:48   Re: Plusieurs problèmes
#4

Tu veux pas poster sur cs-amx ?
__________________
Arkshine is offline
Devil259
Veteran Member
Join Date: Dec 2009
Location: France (59)
Old 07-29-2012 , 14:49   Re: Plusieurs problèmes
#5

Quote:
Originally Posted by MiniBrackeur View Post
Bah oui pourquoi ?
En gros, FM_CmdStart est appelé X fois par seconde.
__________________
You can do anything you set your mind to, man.

Devil259 is offline
micapat
Veteran Member
Join Date: Feb 2010
Location: Nyuu, nyuu (France).
Old 07-29-2012 , 14:52   Re: Plusieurs problèmes
#6

Go poster sur cs-amx !
micapat is offline
MiniBrackeur
Senior Member
Join Date: Oct 2010
Old 07-29-2012 , 14:58   Re: Plusieurs problèmes
#7

Honnêtement, j'y avais pensé , mais après avoir créé mon compte j'ai hésité ^^, mais y'a pas de problème, dans 5min c'est fait ! :p
__________________
MiniBrackeur => Daminou
MiniBrackeur is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 07-29-2012 , 15:03   Re: Plusieurs problèmes
#8

Y'a intérêt, sinon je sortais le fouet, je vérouillais le sujet et t'étais banni !!
__________________
Arkshine is offline
MiniBrackeur
Senior Member
Join Date: Oct 2010
Old 07-29-2012 , 15:04   Re: Plusieurs problèmes
#9

lol x), bah si y'a autant d'aide sur cs-amx que sur alliedmodders, y'a pas de problèmes je poste only sur cs-amx ^^
Sinon voici le lien: http://cs-amx.fr/discussions/d%C3%A9fibrillateur.146/

Devil: j'ai rajouté un nouveau problème vu que tu me la signalé ^^
__________________
MiniBrackeur => Daminou
MiniBrackeur is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 07-29-2012 , 15:30   Re: Plusieurs problèmes
#10

C'est surtout que cs-amx étant fraichement ouvert, cette section n'a plus d'intérêt et qu'il est cool que vous utilisiez que cs-amx, histoire de centraliser les problèmes et les utilisateurs. ^^
__________________
Arkshine is offline
 


Thread Tools
Display Modes

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 06:20.


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