GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: vincentdu90 le 29 Mars 2009, 19:20:56

Titre: Respawn des armes après la mort
Posté par: vincentdu90 le 29 Mars 2009, 19:20:56
Voilà je voudrais savoir comment on fait pour faire spawn les armes du joueurs quand il meure autours de lui , pour pouvoir les prendre j'ai mit ceci mais quand je me /kill je ne voit pas les armes .

public OnPlayerDeath(playerid, killerid, reason)

{

if(killerid == INVALID_PLAYER_ID) {

  [b]      new Pweapon;//armes du joueur

        new X,Y,Z;[/b]

        SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
[b]        Pweapon = GetPlayerWeapon(playerid);
        GetPlayerPos(playerid,Float:X,Float:Y,Float:Z);
        CreatePickup(Pweapon,3,X,Y,Z);[/[/b]code]

Ps : En gras ce que j'ai rajouté , car j'ai repris le sftdm par défaut dans le dossier gamemod .

Merci d'avance de vos réponse
Titre: Re : Respawn des armes après la mort
Posté par: vincentdu90 le 31 Mars 2009, 07:36:23
Petit Up
Titre: Re : Respawn des armes après la mort
Posté par: » Lukubi™ le 31 Mars 2009, 12:39:16
Sa ne sert a rien de faire un up de 2 jours,

si personne ne ta répondu c'est surement que personne ne peut t'aider  ;)



++
MrT®
Titre: Re : Respawn des armes après la mort
Posté par: vincentdu90 le 31 Mars 2009, 17:33:57
Ok je suis vraiment désolé .
Titre: Re : Respawn des armes après la mort
Posté par: S!m le 01 Avril 2009, 01:48:23
Salut,

petite question, ce script compile correctement?

premièrement, les tag Float: doivent être placés à la déclaration des variables, non pas à leur utilisation...

dans le code que tu as posté, le test if(killerid == INVALID_PLAYER_ID) est complètement inutile à moins que tu ne désire uniquement que les armes apparaissent au sol dans des cas de suicide, noyade etc...

si tu veut faire un code fiable, tu devrait utiliser GetPlayerWeaponData qui te permet de récupérer toutes les armes du joueur

aussi je te conseillerais de déplacer légèrement le pickup, ne pas le créer exactement sur le corps du joueur (au cas où)

++Sim++
Titre: Re : Respawn des armes après la mort
Posté par: vincentdu90 le 01 Avril 2009, 19:13:10
J'ai changer et j'ai mit sa dans OnPlayerDeath


                new Jarmes;
    new Jmuni;
    new Float:X;
    new Float:Y;
    new Float:Z;

    GetPlayerWeaponData(playerid,1,Jarmes,Jmuni);
    GetPlayerPos(playerid,X,Y,Z);
    CreatePickup(GetPlayerWeaponData(playerid,1,Jarmes,Jmuni),3,X+5,Y,Z+5);


Par contre je me dit pour plusieurs armes un pickup , il y a un truc qui cloche mais je vois pas comment je peux faire .
Titre: Re : Respawn des armes après la mort
Posté par: Azz45 le 01 Avril 2009, 22:56:56
Crée plusieur Pickup  :closedeyes
Titre: Re : Re : Respawn des armes après la mort
Posté par: S!m le 02 Avril 2009, 01:53:57
Salut,

Par contre je me dit pour plusieurs armes un pickup , il y a un truc qui cloche mais je vois pas comment je peux faire .

il te faut faire une loop qui ira chercher l'arme de chaque type que possède le joueur, dans le cas où le joueur ne possède pas d'arme de ce type, tu dois éviter de créer un pickup avec cette arme (logique ^^)

ce qui donne un code du genre:

    new rand1, rand2;
    GetPlayerPos(playerid,X,Y,Z);
        for( new i = 0; i < 12; i++)
        {
        GetPlayerWeaponData(playerid,i,Jarmes,Jmuni);
        if(Jarmes)
        {
            rand1 = Random(20);
            rand2 = Random(20);
            CreatePickup(model,3,X+0.2*rand1,Y+0.2*rand2,Z+5);
        }
    }

je suis incertains du nombre de types d'armes différents (arme de poing, assault, mitraillete etc...) donc il est fort possible que 12 ne soit pas le bon nombre
model doit être trouver à l'aide d'une fonction, mais il faudrait que tu la trouve, ou la crée, il ne faut pas oublier que le modèle de pickup d'une arme n'est pas le même que son modèle d'arme (côté ID)

++Sim++
Titre: Re : Respawn des armes après la mort
Posté par: vincentdu90 le 02 Avril 2009, 07:27:32
Ok ben c'est plus compliquer que je ne le pensait ^^