Raised This Month: $ Target: $400
 0% 

[Résolu] Precache


  
 
 
Thread Tools Display Modes
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 12-07-2009 , 17:19   Re: [Presque Résolu] Precache
#41

Il parlait de Loading Music II
__________________
Arkshine is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 12-07-2009 , 17:24   Re: [Presque Résolu] Precache
#42

Peu un porte mé tank affaire oui.

Code réduit :

PHP Code:
#include <amxmodx>

public client_connect(id){
    static const 
soundlist[][] = {"Half-Life01","Half-Life02","Half-Life04","Half-Life12","Half-Life13","Half-Life17"}
    
client_cmd(id,"mp3 play media/%s",soundlist[random(sizeof(soundlist))])
}

public 
plugin_init() {
    
register_plugin("Loading Sound","1.0","Amxx User")

__________________
- tired and retired -

- my plugins -

Last edited by ConnorMcLeod; 12-07-2009 at 17:26.
ConnorMcLeod is offline
Mqxii
Senior Member
Join Date: Apr 2009
Location: France
Old 12-09-2009 , 07:19   Re: [Presque Résolu] Precache
#43

Petite question par rapport au "random", quelle est la différence entre ces deux codes.
Dans l'execution de la commande, plus rapide, moins de problemes possibles, ou autre, ou meme c'est pareil.

Ce code dans le précédent post :
PHP Code:
#include <amxmodx>

public client_connect(id)
{
    static const 
soundlist[][] = {"Half-Life01","Half-Life02","Half-Life04","Half-Life12","Half-Life13","Half-Life17"}
    
client_cmd(id,"mp3 play media/%s",soundlist[random(sizeof(soundlist))])
}

public 
plugin_init()
{
    
register_plugin("Loading Sound","1.0","Amxx User")

Et celui ci est présent dans le code du lien nommé par moi meme précédement :
PHP Code:
#include <amxmodx>
#define Maxsounds 17

new soundlist[Maxsounds][] = { "Half-Life01""Half-Life02""Half-Life04""Half-Life12""Half-Life13""Half-Life17" }

public 
client_connect(id)
{
    new 
i
    i 
random_num(0,Maxsounds-1)
    
client_cmd(id,"mp3 play media/%s",soundlist[i])
    return 
PLUGIN_CONTINUE
}

public 
plugin_init()
{
    
register_plugin("Loading Sound","1.0","Amxx User")
    return 
PLUGIN_CONTINUE

__________________
/!\ Il est difficile d'attraper un chat noir dans une pièce sombre, surtout lorsqu'il n'y est pas ! xD /!\

Last edited by Mqxii; 12-09-2009 at 07:22.
Mqxii is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 12-09-2009 , 13:56   Re: [Presque Résolu] Precache
#44

Pour commencer :

static ; c'est créer une variable globale mais contenue dans une fonction ou une condition. En somme tu ne peux pas accéder à cette variable dans une autre fonction ou autre condition.

Le premier code est une version plus courte en enlevant les parties inutiles.

Dans le deuxième code, il y a la création d'une variable intermédiaire. Ce n'est pas forcemment nécessaire, mais celà peut aider à une meilleure lisibilité et compréhension du code ; bien que dans l'exemple, la variable est mal nommée. Créer une variable dans cette situation ne va pas influencer sur les performances. Ici c'est plus à l'auteur de savoir comment il veut coder, l'optmisation à outrance où l'optmisation nécessaire. Il faut toutefois noter que c'est également une question de style, l'exemple 1, tu vois que c'est suffisament lisible et permets de réduire le code.
Pour en venir au static dans l'exemple 1, c'est une question de coder "proprement". Les 2 méthodes sont valides, mais où est l'intérêt de créer un tableau qui peut être utilisé dans toutes fonctions quand tu l'utilises dans une fonction ? Aucune. Un bon usage des variables est de les créer là où tu les utilises. Ca permets une meilleure compréhension du code de voir ce que telle bloc de code fait.
Quant à return PLUGIN_CONTINUE, cette valeur est déjà retournée par défaut. Tu n'as pas besoin de l'écrire.

En somme l'exemple 1 est une version optimisée et propre, peut-on dire.
__________________

Last edited by Arkshine; 12-09-2009 at 14:00.
Arkshine is offline
Old 12-09-2009, 13:56
Arkshine
This message has been deleted by Arkshine. Reason: Lag
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 12-09-2009 , 14:10   Re: [Presque Résolu] Precache
#45

Sinon, pour la différence entre random_num et random, je crois que c'était ta seule question, la fonction random ne permet pas de régler la valeur basse sur une autre valeur que 0.

random(X) équivaut à random_num(0, X - 1)
__________________
- tired and retired -

- my plugins -
ConnorMcLeod is offline
Mqxii
Senior Member
Join Date: Apr 2009
Location: France
Old 12-09-2009 , 14:24   Re: [Presque Résolu] Precache
#46

D'accord, j'ai compris et je pense que ca va aider beaucoup de personnes également.
Un grand merci à vous deux, Arkshine et ConnorMcLeod.
__________________
/!\ Il est difficile d'attraper un chat noir dans une pièce sombre, surtout lorsqu'il n'y est pas ! xD /!\
Mqxii is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 12-09-2009 , 14:37   Re: [Résolu] Precache
#47

Merde j'avais mal lu, je pensais que tu voulais parler de la différence entre les deux code et forcemment j'ai pas comparer random/random_num. Marrant de voir comment j'ai fais tout le contraire.
__________________
Arkshine is offline
Mqxii
Senior Member
Join Date: Apr 2009
Location: France
Old 12-09-2009 , 16:34   Re: [Résolu] Precache
#48

Certes, mais ca reste tout autant intéressant et instructif.
__________________
/!\ Il est difficile d'attraper un chat noir dans une pièce sombre, surtout lorsqu'il n'y est pas ! xD /!\
Mqxii 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 14:40.


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