Raised This Month: $ Target: $400
 0% 

"Cercle de détection" autour du joueur "A"


  
 
 
Thread Tools Display Modes
Author Message
micapat
Veteran Member
Join Date: Feb 2010
Location: Nyuu, nyuu (France).
Old 02-22-2010 , 12:15   "Cercle de détection" autour du joueur "A"
#1

Bonjour !

Je cherche à créer une capacité -> Quand le joueur A tape une commande, les joueurs dans sa portée prennent x dégats.
J'ai alors pensé a décomposé cette capacité en deux parties :

I) Détection des joueurs dans la portée du Joueur A -> on stocke leur ID dans un tableau

II) On leur inflige des dommages


|------------------------------------------------------------------------|

La commande du joueur A est prête, il me reste à créer les fonctions :

public detection(id)
qui met les ID des joueurs dans la portée du joueur A (L'ID du joueur A est celui qui passe en paramètre de la fonction ...) dans un tableau -> g_Joueurs_Portee[32]

public degats() qui inflige x dégats pendants z secondes aux ID présents dans le tableau g_Joueurs_Portee[32]

|------------------------------------------------------------------------|

Tout d'abord, je m'occupe de la fonction detection -> Quand le joueur A tape par exemple : /detec, il lui est dit dans le chat le nom des joueurs présents dans sa "portée" (Permettra de vérifier que l'on détecte bien les joueurs !)

Exemple :

Quand on joue normalement ... :



Avec en plus la capacité :



Le Joueur A tape /detec, le chat lui affiche alors : le joueur B est dans votre portée !

|------------------------------------------------------------------------|

Quel bibliothèques me permettraient de détecter les joueurs ? Ainsi que de leur infliger des dommages (J'ai essayer avec fun -> pas de succès .. ) ?
Si vous avez des tutoriels ou des morceaux de codes commentés ... =)

J'essaie d'apprendre -> Pas besoin d'un code tout prêt

Merci d'avance
micapat is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 02-22-2010 , 12:43   Re: "Cercle de détection" autour du joueur "A"
#2

- Pour détecter un jour aux alentours tu as plusieurs méthodes, mais pour toi, find_sphere_class() serait simple et suffisant ; ça te permets en plus de choisir combien de personnes tu veux détecter.
- Pour faire des dégâts, ça dépend ce que tu veux faire réellement. Est-ce que ça doit prendre en compte l'armure ? Quel type de dégâts tu veux ?
__________________
Arkshine is offline
micapat
Veteran Member
Join Date: Feb 2010
Location: Nyuu, nyuu (France).
Old 02-22-2010 , 13:05   Re: "Cercle de détection" autour du joueur "A"
#3

- Pour détecter un joueur :

J'ai un peu mal compris certains paramètres de la fonction : dîtes moi si c'est ça ^^ :

aroundent : ??
_lookforclassname[] : L'entité que je recherche dans la portée du joueur A -> par exemple : info_player_start pour détecter les CTs !
Float:radius : La portée de détection (en unité de Worldcraft je pense... )
entlist[] : C'est dans ce tableau que sera rangé les IDs des joueurs dans la portée du joueur A ...
maxents : nombre de personnes qui peuvent être détecter au max .. (J'en déduis que c'est donc la taille du tableau entlist[] ... )
Float: origin[3] = {0.0, 0.0, 0.0} : ??

Cette fonction se trouve dans -> engine

- Pour faire des dégâts :

Je préfèrerais que ça ne compte pas l'armure et que les dégats soient "generic" ... M'enfin si vous pouviez me montrer les autres fonctions qui utilisent l'armure au cas où un jour j'en aurais besoin

Merci de votre aide
micapat is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 02-22-2010 , 13:21   Re: "Cercle de détection" autour du joueur "A"
#4

Code:
// Le nombre de joueurs max que tu veux récupérer en un coup. const MAX_PLAYERS_TO_FIND = 4; // On crée un tableau qui contiendra les ids des joueurs trouvés. // "player" est le nom de la classe du joueur, vu qu'on cherche des joueurs. // 300.0 le radius en unité. 1 unité = 0.0384m ( je crois que j'ai faux sur le 0.0384 mais facilement vérifiable ) // playerFoundCount c'est le nombre de joueurs trouvés. new playersList[ MAX_PLAYERS_TO_FIND ]; new playerFoundCount = find_sphere_class( idDuJoueurA, "player", 300.0, playersList, sizeof playersList ); // On boucle sur tous les joeurs trouvés à partir du tableau. // On récupère l'id d'un joueur en faisant playersList[ i ]. for ( new i = 0; i < playerFoundCount; i++ ) {     new playerID = playersList[ i ];     // Tu lui balances les dégâts dans la tronche. }
__________________
Arkshine is offline
micapat
Veteran Member
Join Date: Feb 2010
Location: Nyuu, nyuu (France).
Old 02-22-2010 , 13:53   Re: "Cercle de détection" autour du joueur "A"
#5

Merci

Ca marche aussi avec des bots j'ai testé avec strip_user_weapons !

/!\ J'ai dû faire que le joueur qui utilise la capacité ne perd pas aussi ses armes, car la fonction le comptait dans le rayon (normal vu que l'utilisateur est un joueur ) -> Une simple condition...

Il me reste plus qu'à mettre des dommages dans ceux qui se trouvent à porter ... Si vous avez cette fonction =)
Je ne recherche pas une fonction avec du temps : Quand le joueur A utilise la commande, les joueurs à portée prennent x dégats, sans compter l'armure, et avec effet : "generic".

Pour les longueurs : 1 unité = 2.54 cm

http://www.siteduzero.com/tutoriel-3...html#ss_part_2

Last edited by micapat; 02-22-2010 at 14:31. Reason: Info Longueur Worldcraft
micapat is offline
Fr33m@n
Veteran Member
Join Date: May 2008
Location: France Marne
Old 02-23-2010 , 07:34   Re: "Cercle de détection" autour du joueur "A"
#6

Tient j' avait jamais vu cette méthode. Sont défaut c'est quelle permet pas (ou alors utiliser plusieurs cercle de détection) de faire un damage graduel en fonction de la distance par rapport au rayon de ton cercle.
exemple au cas où a un mètre tu prend cher, à 5 mètre tu prend moins.
Dans ce cas là tu peut aussi utiliser la méthode utiliser dans le sh mod. obtenir ton origine, faire un loop sur les autres joueurs pour obtenir leurs origin. utiliser vector_distance pour comparer leur distances par rapport au radius préalablement définit. difficile a expliquer regarde le sma de kamikaze ou des heros a radius + damage.

Last edited by Fr33m@n; 02-23-2010 at 07:48.
Fr33m@n is offline
Arkshine
AMX Mod X Plugin Approver
Join Date: Oct 2005
Old 02-23-2010 , 07:55   Re: "Cercle de détection" autour du joueur "A"
#7

T'es HS, Fr33m@n. Cette fonction récupère juste x entities d'une classe y dans un rayon z à partir d'une origine donnée ou une entité. Il veut juste donner x pleins dégâts à un ou des joueurs présents dans un rayon donné.

Quote:
Pour les longueurs : 1 unité = 2.54 cm
J'étais pas loin, 0.0254m.

Pour les dégâts, bah, je suppose que pev_health + pev_inflictor + pev_take_dmg devrait être suffisant.
__________________

Last edited by Arkshine; 02-23-2010 at 08:00.
Arkshine is offline
micapat
Veteran Member
Join Date: Feb 2010
Location: Nyuu, nyuu (France).
Old 02-23-2010 , 12:41   Re: "Cercle de détection" autour du joueur "A"
#8

Quels sont les prototypes de ces trois fonctions ? J'ai cherche dans <fakemeta> et j'ai trouvé -> pev. Ca doit donc être dans cette bibliothèques que ces trois fonctions doivent se trouver ...
micapat is offline
Fr33m@n
Veteran Member
Join Date: May 2008
Location: France Marne
Old 02-23-2010 , 13:05   Re: "Cercle de détection" autour du joueur "A"
#9

http://garrens.com/xPaw/pev_research.html

peut être tu trouvera ce que tu cherche ici.

Arkshine tu devait pas être reveillé depuis longtemps à 13 h. ^^
pev_health et plutot pev_takedamage et pev_dmg_inflictor

Les pev_ utilisable avec pev() et set_pev() ce trouve dans l'include fakemeta_const.inc

PS : Je suis un peu supris tu es l'une des rares personnes qui traduit tout les termes anglais !

Last edited by Fr33m@n; 02-23-2010 at 13:16.
Fr33m@n is offline
micapat
Veteran Member
Join Date: Feb 2010
Location: Nyuu, nyuu (France).
Old 02-23-2010 , 13:28   Re: "Cercle de détection" autour du joueur "A"
#10

Merci Fr33m@n, mais ça ne me donne pas d'indication concernant l'appel de la fonction
Quote:
PS : Je suis un peu supris tu es l'une des rares personnes qui traduit tout les termes anglais !
C'est à moi que s'adresse le PS
micapat 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 22:46.


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