Raised This Month: $ Target: $400
 0% 

tid pour un nom de joueur


  
 
 
Thread Tools Display Modes
Author Message
steve139
Senior Member
Join Date: May 2007
Location: here
Old 11-30-2007 , 09:46   tid pour un nom de joueur
#1

coucou j ai esseyer la fonction
get_user_name(tid,tname)
mais celui si me donne le nom du serveur
voila mon code
PHP Code:
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "menu"
#define VERSION "1.0"
#define AUTHOR "kossolax"
#define MENU_KEYS MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9
#define MENU_KEYS2 MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9
new name[32], tname[32]
public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_menucmd(register_menuid("BOT controle"), MENU_KEYS"choixMenu");
    
register_concmd("amx_botmenu","creerMenu",ADMIN_KICK,"BOT controle")
    
register_menucmd(register_menuid("classes"), MENU_KEYS2"choix2Menu");
    
register_concmd("amx_botclasse","creer2Menu",ADMIN_KICK,"classes")
}
public 
creerMenu(id,tid)
{
if(!(
get_user_flags(id) == ADMIN_KICK))
    {
   new 
menutext[192];

   
format(menutext191,"BOT controle^n^n1. changer le bot de classe^n2. demander qu il off^n3. demander qu il def^n0. fermer");
   
show_menu(idMENU_KEYSmenutext);
  }
}
public 
choixMenu(idkey,tid)
{
    
get_user_name(id,name,31)
    
get_user_name(tid,tname,31)
    if(!(
get_user_flags(id) == ADMIN_KICK))
    {
   switch(
key)
   {
    case 
0:
             
console_cmd(id,"amx_botclasse");
    case 
1:
             
console_cmd(id,"say_team %s changerole attack",tname[tid]);
    case 
2:
             
console_cmd(id,"say_team %s changerole defend",tname[tid]);
    case 
3:
        
console_print(id,"");
    case 
4:
        
console_print(id,"");
    case 
5:
        
console_print(id,"");
    case 
6:
        
console_print(id,"");
    case 
7:
        
console_print(id,"");
    case 
8:
        
console_print(id,"");
    case 
9:
             
console_print(id,"");
    }
   }
}

public 
creer2Menu(id,tid)
{
if(!(
get_user_flags(id) == ADMIN_KICK))
    {
   new 
menutext2[192];

   
format(menutext2191,"classes^n^n1. scout^n2. sniper^n3. soldier^n4. demoman^n5. medic^n6. hwguyz^n7. pyro^n8. spy^n9. engineer^n0. fermer");
   
show_menu(idMENU_KEYS2menutext2);
  }
}
public 
choix2Menu(idkey,tid)
{
get_user_name(id,name,31)
get_user_name(tid,tname,31)
    if(!(
get_user_flags(id) == ADMIN_KICK))
    {
   switch(
key)
   {
    case 
0:
             
console_cmd(id,"say_team %s changeclassnow 1",tname[tid]);
    case 
1:
        
console_cmd(id,"say_team %s changeclassnow 2",tname[tid]);
    case 
2:
        
console_cmd(id,"say_team %s changeclassnow 3",tname[tid]);
    case 
3:
        
console_cmd(id,"say_team %s changeclassnow 4",tname[tid]);
    case 
4:
        
console_cmd(id,"say_team %s changeclassnow 5",tname[tid]);
    case 
5:
        
console_cmd(id,"say_team %s changeclassnow 6",tname[tid]);
    case 
6:
        
console_cmd(id,"say_team %s changeclassnow 7",tname[tid]);
    case 
7:
        
console_cmd(id,"say_team %s changeclassnow 8",tname[tid]);
    case 
8:
        
console_cmd(id,"say_team %s changeclassnow 9",tname[tid]);
    case 
9:
             
console_print(id,"");
    }
   }

j ai esseyer avec et sans le [tid] a la fin de tname
mais sa change rien
quelqu un peut m aider ?
d avance merci
steve139 is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 11-30-2007 , 10:00   Re: tid pour un nom de joueur
#2

Tu dois utiliser cmd_target pour récupérer le joueur tid.
ConnorMcLeod is offline
steve139
Senior Member
Join Date: May 2007
Location: here
Old 11-30-2007 , 10:02   Re: tid pour un nom de joueur
#3

mais pourtant dans un autre plugin a moi j utilise le meme principe et sa marche
lapreuve :
PHP Code:
 public money_vol(id,targetid,amount)
{
    if(!
is_user_alive(id))
    {
        
client_print(id,print_chat,"[sffRP-vol ] tu ne peux pas voller quand tu es mort.")
        return 
PLUGIN_HANDLED;
    }
    else if(
money[targetid] <= 0)
    {
        
client_print(id,print_chat,"[sffRP-vol] le joueur est ruine")
        return 
PLUGIN_HANDLED;
    }
    new 
user_origin[3], target_origin[3]
    
get_user_origin(id,user_origin)
    
get_user_origin(targetid,target_origin)
    if(
get_distance(user_origin,target_origin) < 250)
    {
        new 
name[32], tname[32]
        
get_user_name(id,name,31)
        
get_user_name(targetid,tname,31)
        
client_print(0,print_chat,"[sffRP-vol] %s vien de voller 1$ a %s , appeler la police."name,tname)
        
money[id] += 1
        money
[targetid] -= 1
        
return PLUGIN_HANDLED
    
}
    return 
PLUGIN_HANDLED

mais bon je ne vois pas comment avec le cmd_target -_-'

enfaite je veux prendre le nom du joueur en face ( le dernier joueur en face )

Last edited by steve139; 11-30-2007 at 10:17. Reason: oublier une balise
steve139 is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 11-30-2007 , 10:54   Re: tid pour un nom de joueur
#4

J'ai regardé trop vite ton code, je pensais qu'il était à peu près correcte.

En fait tu as pris des bouts de code, peut être un tuto pour faire un menu, et ensuite tu as fais n'importe quoi.
Au vu du code, je pense qu'il est un peu prématuré pour toi de te lancer dans les menus, il y a des bases requises que tu n'as pas.

La commande amx_botmenu par exemple appelle la fonction creerMenu(id,tid), mais tid ne représente absolument rien, donc est égal à 0, donc 0 c'est le serveur, voila pourquoi tu récupère le nom du serveur.

Ensuite :
Code:
if(!(get_user_flags(id) == ADMIN_KICK))
Ca ne veut absolument rien dire.

Tu veux permettre au joueur qui a l'acces ADMIN_KICK d'ouvrir ce menu :
Code:
if(get_user_flags(id) & ADMIN_KICK)
ou
Code:
if(!(get_user_flags(id) & ADMIN_KICK))     return PLUGIN_HANDLED


Mais là tu vérifies juste si le mec a le flag KICK et aucun autre...

Je m'arrête là, ne le prends pas mal, commence juste avec des plugins à ta portée.
ConnorMcLeod is offline
steve139
Senior Member
Join Date: May 2007
Location: here
Old 11-30-2007 , 11:06   Re: tid pour un nom de joueur
#5

mais il marche c est le principale et j ai degat fait d autre menu avec les == et sa verifie aussi si c est un admin kick ^^

mais sinon dit moi juste la fonction pour prendre le nom c est pas si compliquer que sa ^^
steve139 is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 11-30-2007 , 11:42   Re: tid pour un nom de joueur
#6

Ca va fonctionner pour n'importe quel joueur, même les non-admins[edit](à moins peut etre que tu utilises amxx1.8, au quel cas ça va marcher pour tous les admins, même ceux qui n'ont pas le flag kick)[/edit].
Si tu penses que j'ai tord on en part pas sur des bonnes bases.

Pour récupérer le nom c'est
Code:
new name_ou_peu_importe[32] get_user_name( id_du_joueur , name_ou_peu_importe , charsmax ( name_ou_peu_importe ) )


Montre moi juste à quel endroit ton plugin récupère l'id des BOT ?

Last edited by ConnorMcLeod; 11-30-2007 at 12:05.
ConnorMcLeod is offline
steve139
Senior Member
Join Date: May 2007
Location: here
Old 11-30-2007 , 11:58   Re: tid pour un nom de joueur
#7

heu oui c est vrai j ai pas penser xD
et j ai 1.8 je l ai mi a jour

mais y a pas moyen de prendre le nom du bot en face de sois ?
ou tout simplement ne pas prendre %i comme variable et envoyer tel quel dans la console

Last edited by steve139; 11-30-2007 at 12:03.
steve139 is offline
ConnorMcLeod
Veteran Member
Join Date: Jul 2006
Location: France (95)
Old 11-30-2007 , 12:06   Re: tid pour un nom de joueur
#8

J'en reviens au fait que tu as énormément à apprendre avant de faire un tel plugin.
ConnorMcLeod is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 11-30-2007 , 12:27   Re: tid pour un nom de joueur
#9

Je suis du même avis. Tu veux apprendre ? C'est bien. Mais commence à par apprendre les bases et après tu pourras commencer à faire mumuse avec des plugins un peu plus évolués. Là actuellement tu n'as pas assez de connaissanes générales pour te permettre de te débrouiller seul. De plus il faudrait que tu sois un peu plus humble dans ce que tu fais. Même nous qui commençons avoir une bonne base, avons encore beaucoup de choses à apprendre. Donc cesse d'avoir l'estomac plus gros que le ventre, pour au final poser des questions de bases et faire n'importe quoi comme maintenant. Il est plus sain d'avoir une base solide d'abord et tu verras que tout iras tellement mieux.
__________________
Arkshine is offline
steve139
Senior Member
Join Date: May 2007
Location: here
Old 11-30-2007 , 19:28   Re: tid pour un nom de joueur
#10

mais le meilleur c est pas le desert ^^ ?
steve139 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 05:50.


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