Zone horaire: Europe/Paris [ Heure d’été ]




Poster un nouveau sujet Répondre au sujet  [ 247 messages ]  Aller à la page Précédente  1 ... 6, 7, 8, 9, 10, 11, 12 ... 17  Suivante
Auteur Message
 Sujet du message: Re: Plugin achievement server
MessagePosté: Dim 3 Jan 2010 18:47 
Avatar de l’utilisateur
Jumble Container

Messages: 2273

En ligne
.#har1bo` a écrit:
Pour le succès de KM, j'avais pensé à un truc, compliqué mais qui pourrait marcher :
  • D'abord on utilise l'event object_deflected
  • Ensuite on vérifie que l'objet est une flèche, si c'est le cas on récupère l'owner de la flèche et on le retiens en mémoire pendant ~ 3 secondes
  • Quand quelqu'un meurt d'un deflect_arrow, on compare son id avec celui retenu en mémoire et si c'est le même, succès

D'après ce que dit KM, on peut connaitre l'ID de l'owner de la flèche, donc pas besoin de faire ça, mais bon raisonnement :)

_________________
Sargeros' Blog | TF2 Advice Generator | Hackzors | Logs Omegle
Sarodh a écrit:
Le seul endroit où je trouve que les cheats ont de l'intérêt, c'est dans GTA, parce que si tout le monde avait sur demande un tank qui fait à la fois hydravion, hélicoptère, et aéroglisseur, le monde serait plus beau.
Tydax a écrit:
64 bites
vDJ a écrit:
on s'en fait une petite simple


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Dim 3 Jan 2010 19:41 
Administrateurs
Avatar de l’utilisateur
Administrateurs

Messages: 1150

Hors ligne
Bon ça marche mais on a du utiliser la méthode de .#har1bo`

_________________
ImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImage
Image
har1bo a écrit:
Tu verrais quoi je leur en mettais plein la gueule

Tortue facile a écrit:
22:05 - [G-G] Flyflo: G-G's down
22:06 - [G-G] Tortue facile: merde j'ai juste mis le serveur à l'heure

<3


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Dim 3 Jan 2010 19:42 
Avatar de l’utilisateur
Habitués

Messages: 785

Hors ligne
Dur.

_________________
DiFFty / C'est mignon des fois, votre simplicité d'esprit :)
Image


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Dim 3 Jan 2010 19:43 
Avatar de l’utilisateur
Official Taunter

Messages: 3448

Hors ligne
Sargeros a écrit:
.#har1bo` a écrit:
Pour le succès de KM, j'avais pensé à un truc, compliqué mais qui pourrait marcher :
  • D'abord on utilise l'event object_deflected
  • Ensuite on vérifie que l'objet est une flèche, si c'est le cas on récupère l'owner de la flèche et on le retiens en mémoire pendant ~ 3 secondes
  • Quand quelqu'un meurt d'un deflect_arrow, on compare son id avec celui retenu en mémoire et si c'est le même, succès

D'après ce que dit KM, on peut connaitre l'ID de l'owner de la flèche, donc pas besoin de faire ça, mais bon raisonnement :)


Quand j'y pense, c'est vrai qu'il n'est pas obligé de voir si c'est une flèche, après ça dépend au niveau ressources (mémoire toussa) si c'est mieux de vérifier que c'est une flèche avant de save l'id du joueur, ou de save tout le temps l'id (sachant qu'on peut deflect plein de choses, et de pleins de joueurs)...

_________________
Tauntkill Master.


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Dim 3 Jan 2010 20:07 
Avatar de l’utilisateur
Habitués

Messages: 333

Hors ligne
J'en tiens un qu'est super chaud ! Ne pas rager en jouant avec un noobs ! (surtout quand on te sors des "mais cafeine qu'est-ce que tu fous bordel !" alors que c'est pas toi et que t'es au moins autant emmerdé que les autres >:( )


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Dim 3 Jan 2010 21:26 
Avatar de l’utilisateur
Official Taunter

Messages: 3448

Hors ligne
Hop, rapide à faire, vu que c'est le même que le succès du deflect_flare (j'espère que j'ai pas fait de la merde \o/):

Attention, ça pique - Tuez un Démoman avec ses propres stickies

Code:

#include <sourcemod>
#include <sdktools>
#include <events>
#include <clients>
#include <achievements> // On inclue les fichiers nécessaire au fonctionnement du plugin

#define PLUGIN_VERSION "1.0" // On définis la version du plugin == osef

public Plugin:myinfo =
{
       name = "KillerMapper's Achievements",
       author = "KillerMapper",
       description = "KillerMapper's Achievements",
       version = PLUGIN_VERSION,
       url = "http://killermapper.servhome.org/"
}

public OnPluginStart()
{
   HookEvent("player_death", Event_PlayerDeath, EventHookMode_Post);
}

public Action:Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
   new client = GetClientOfUserId(GetEventInt(event, "attacker")); //On récupère l'attaquant
   
   decl String:weapon[64];
   GetEventString(event, "weapon", weapon, 64); // On récupère l'arme utilisée
   
   //Si l'arme est un deflect_sitcky
           if(Str_Equal(weapon, "deflect_sticky"))
           {    
                  CA_ProcessAchievement(1, client, 0); // Achievement: Attention, ça pique - Tuez un Démoman avec ses propres stickies
           }
           
   return Plugin_Continue
}
 

_________________
Tauntkill Master.


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Dim 3 Jan 2010 22:54 
Administrateurs
Avatar de l’utilisateur
Administrateurs

Messages: 1150

Hors ligne
Euh ça se declenchera aussi si le deflect tue autre chose que les demo.

_________________
ImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImage
Image
har1bo a écrit:
Tu verrais quoi je leur en mettais plein la gueule

Tortue facile a écrit:
22:05 - [G-G] Flyflo: G-G's down
22:06 - [G-G] Tortue facile: merde j'ai juste mis le serveur à l'heure

<3


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Lun 4 Jan 2010 06:38 
Avatar de l’utilisateur
Jumble Container

Messages: 2273

En ligne
Flyflo a écrit:
Euh ça se declenchera aussi si le deflect tue autre chose que les demo.

Un deflect sticky ne peux que tuer le demo qui a lancé les stickies.

_________________
Sargeros' Blog | TF2 Advice Generator | Hackzors | Logs Omegle
Sarodh a écrit:
Le seul endroit où je trouve que les cheats ont de l'intérêt, c'est dans GTA, parce que si tout le monde avait sur demande un tank qui fait à la fois hydravion, hélicoptère, et aéroglisseur, le monde serait plus beau.
Tydax a écrit:
64 bites
vDJ a écrit:
on s'en fait une petite simple


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Lun 4 Jan 2010 07:12 
Administrateurs
Avatar de l’utilisateur
Administrateurs

Messages: 1150

Hors ligne
Ah oui c'est vrai, même si c'est idiot.

_________________
ImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImage
Image
har1bo a écrit:
Tu verrais quoi je leur en mettais plein la gueule

Tortue facile a écrit:
22:05 - [G-G] Flyflo: G-G's down
22:06 - [G-G] Tortue facile: merde j'ai juste mis le serveur à l'heure

<3


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Lun 4 Jan 2010 09:50 
Avatar de l’utilisateur
Official Taunter

Messages: 3448

Hors ligne
Ouais j'y ai pensé, c'est pour ça que je ne me suis pas fait chier cette fois.

Par contre, faudra essayer le deflect des scottish res, une fois ça m'a indiqué deflect_sticky, et en testant avec un démo sur la map idle ça m'a indiqué un kill au scottish res... Il se pourrait donc que la fois où j'avais deflect le scottish, j'ai tué un autre démo qui avait posé des stickies classiques par terre...

Autres succès:

Pyro:
Sniper Ally - Assistez 10 Snipers en enflammant leurs flèches
Spychecker - Tuez 20 Spies en étant héalé par un distributeur

Heavy:
Terreur de l'Est - Tuez 50 ennemis avec le taunt_heavy
Mega Champi - Stompez un ennemi
I love my doctor - Donnez un Sandvich à votre medic
La Tortue Pâtissière - Donnez un Sandvich à un ingé, puis capturez le dernier point (lol clindoeul tortue)

Ingé:
LOLmania - Faites 50 freezecams en train de taunter avec votre pipe wrench sur votre sentry
200 is not enough - Tuez 50 joueurs avec votre pistolet
Le retour du Spy - Tuez un Spy, puis tuez-le à nouveau après qu'il aie utilisé la Dead Ringer
Wait, wat - Tuez un Spy invisible caché sur votre Distributeur

Sniper:
Majorette - Tauntkillez 50 personnes avec le taunt_sniper
Pyro is a good friend - Tuez 10 joueurs avec une flèche enflammée


Spy:
This Sandvich is a Spy! - Backstabez un Heavy en train de manger un Sandvich
I'm not photogenic - Cumulez x heures de cloack (x à définir)
This Spy is a haxor - Tauntkillez un ennemi en étant invisible
Master of infiltration - Obtenez une übercharge d'un medic adverse
Crab is za best - Capturez le dernier point en faisant le Crab (pas sur les pl_/plr/, sur des cp_)
Teleports are funny - Utilisez dans la même vie un téléporteur allié et ennemi
Champion d'escrime - Tauntkillez 50 joueurs avec le taunt_spy

_________________
Tauntkill Master.


Dernière édition par KillerMapper le Lun 4 Jan 2010 11:17, édité 8 fois.

Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Lun 4 Jan 2010 11:48 
Administrateurs
Avatar de l’utilisateur
Administrateurs

Messages: 1150

Hors ligne
Pour ceux qui veulent voir le code pour le succès où on doit tuer un sniper avec sa flèche :

Code:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <achievements>

#define PLUGIN_VERSION "dev1"

new g_PlayerDeflected[MAXPLAYERS+1][2];

public Plugin:myinfo =
{
        name = "Custom Achievements",
        author = "Flyflo",
        description = "Custom achievements",
        version = PLUGIN_VERSION,
        url = "http://www.geek-gaming.fr"
}

public OnPluginStart()
{
        HookEvent("object_deflected", Event_PlayerDeflect);
        HookEvent("player_death", Event_PlayerDeath);
}

public Action:Event_PlayerDeflect(Handle:event, const String:name[], bool:dontBroadcast)
{
        new weaponid = GetEventInt(event, "weaponid");
        if(weaponid == 60)
        {
                new deflecter = GetClientOfUserId(GetEventInt(event, "userid"));
                new ownerid = GetClientOfUserId(GetEventInt(event, "ownerid"));
               
                g_PlayerDeflected[deflecter][0] = 1;
                g_PlayerDeflected[deflecter][1] = ownerid;
                CreateTimer(3.0, Timer_ResetArrowDeflect, deflecter);
               
        }
        return Plugin_Continue;
}

public Action:Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
        new victim = GetClientOfUserId(GetEventInt(event, "userid"));
        new attacker = GetClientOfUserId(GetEventInt(event, "attacker"));

        decl String:Weapon[64];
        GetEventString(event, "weapon", Weapon, sizeof(Weapon));
       
        if(StrContains(Weapon, "deflect_arrow", false) != -1)
        {
                if(g_PlayerDeflected[attacker][0] == 1)
                {
                        if(g_PlayerDeflected[attacker][1] == victim)
                        {
                                //CA_ProcessAchievement
                        }
                }
        }

        return Plugin_Continue;
}

public Action:Timer_ResetArrowDeflect(Handle:client, any:Tclient)
{
        g_PlayerDeflected[Tclient][0] = 0;
}
 


Sinon j'en ai profité pour mettre à jour l'API:
Code:

#if defined _achievements_included
        #endinput
#endif
#define _achievements_included

// iSpecialFlags
#define ACHIEVEMENT_CHEAT_ENABLED               (1 << 0)                                                                //Achievement can progress/be achieved when sv_cheats = 1
#define ACHIEVEMENT_UNIQUE                              (1 << 1)                                                                //Achievement can be achieved by only one player
#define ACHIEVEMENT_NOTEXT                              (1 << 2)                                                                //Disable achievement text in chat
#define ACHIEVEMENT_NOPARTICLE                  (1 << 3)                                                                //Disable achievement particles
#define ACHIEVEMENT_NOSOUND                             (1 << 4)                                                                //Disable achievement sound
#define ACHIEVEMENT_SILENT                              ((1 << 2) | (1 << 3) | (1 << 4))
//

/**
 * @brief Process an Achievement
 *
 * @param iAchievementId        The Achievement ID
 * @param hClient                       The target client
 * @param iAddProgress          Progress Amount (default 1)
 * @param iSpecialFlags         Specified above
 * @noreturn
 */

native CA_ProcessAchievement(iAchievementId, hClient, iAddProgress = 1, iSpecialFlags = 0);

/**
 * @brief Retrieve the progress of an Achievement
 *
 * @param iAchievementId        The Achievement ID
 * @param hClient                       The target client
 * @return                                      The progress, -1 on error
 */

native CA_GetAchievementProgress(iAchievementId, hClient);

/**
 * @brief Says if a Client achieved the specified Achievement
 *
 * @param iAchievementId        The Achievement ID
 * @param hClient                       The target client
 * @return                                      1 if achieved, 0 if not, -1 on error
 */

native CA_IsAchievedByClient(iAchievementId, hClient);

/**
 * Called whenever a client triggers an Achievement
 *
 * @param iAchievementId    The Achievement ID
 * @param hClient                       The target client
 * @param iSpecialFlags         Flags used
 * @noreturn
 */


forward AchievementTriggered(iAchievementId, iClient, iSpecialFlags);
 

Je la mettrai en place ce soir.


Maintenant pour un succès simple vous avez juste à faire:
Code:

        CA_ProcessAchievement(1, client);
 


Si vous voulez ajouter 2 points d'un coup:
Code:

        CA_ProcessAchievement(1, client, 2);
 


Un achievement unique:
Code:

        CA_ProcessAchievement(1, client, 1, ACHIEVEMENT_UNIQUE);
 


Un achievement unique déclenchable même si sv_cheats = 1:
Code:

        CA_ProcessAchievement(1, client, 1, ACHIEVEMENT_UNIQUE|ACHIEVEMENT_CHEAT_ENABLED);
 


etc...

_________________
ImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImage
Image
har1bo a écrit:
Tu verrais quoi je leur en mettais plein la gueule

Tortue facile a écrit:
22:05 - [G-G] Flyflo: G-G's down
22:06 - [G-G] Tortue facile: merde j'ai juste mis le serveur à l'heure

<3


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Lun 4 Jan 2010 11:54 
Avatar de l’utilisateur
Official Taunter

Messages: 3448

Hors ligne
Merci pour ton code, je pourrais voir comment fonctionne les timers :)

_________________
Tauntkill Master.


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Lun 4 Jan 2010 11:56 
Administrateurs
Avatar de l’utilisateur
Administrateurs

Messages: 1150

Hors ligne
Si t'as des questions, te gène pas, je suis en cours et j'ai que ça à faire :-°

_________________
ImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImage
Image
har1bo a écrit:
Tu verrais quoi je leur en mettais plein la gueule

Tortue facile a écrit:
22:05 - [G-G] Flyflo: G-G's down
22:06 - [G-G] Tortue facile: merde j'ai juste mis le serveur à l'heure

<3


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Lun 4 Jan 2010 12:11 
Avatar de l’utilisateur
Official Taunter

Messages: 3448

Hors ligne
Je vais aller en cours là justement.

_________________
Tauntkill Master.


Haut
 Profil  
 
 Sujet du message: Re: Plugin achievement server
MessagePosté: Lun 4 Jan 2010 12:15 
Administrateurs
Avatar de l’utilisateur
Administrateurs

Messages: 1150

Hors ligne
Faible

_________________
ImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImageImage
Image
har1bo a écrit:
Tu verrais quoi je leur en mettais plein la gueule

Tortue facile a écrit:
22:05 - [G-G] Flyflo: G-G's down
22:06 - [G-G] Tortue facile: merde j'ai juste mis le serveur à l'heure

<3


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 247 messages ]  Aller à la page Précédente  1 ... 6, 7, 8, 9, 10, 11, 12 ... 17  Suivante


Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 0 invités


Rechercher:
Aller à:  

Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction par: phpBB-fr.com
phpBB SEO