• 23 Avril 2025, 20:52:40


Auteur Sujet: SharkAttack  (Lu 801 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Dark57

  • *
  • Criminel
  • Messages: 43
    • Voir le profil
SharkAttack
« le: 27 Janvier 2010, 21:44:32 »
Bonsoir, boujour.
Je suis en train de créer un DeathMatch Requins VS Humains.
J'ai des problèmes :
les requins tue pas
les requins peuvent encore aller sur la terre ferme
les requins ne saute pas assez haut

pour qu'un joueur est requin j'ai fais :
shark[playerid] = 1;
TogglePlayerControllable(playerid,true);
SetCameraBehindPlayer(playerid);
new rand = random(4);
SetPlayerPos(playerid, SharkPlayerSpawns[rand][0], SharkPlayerSpawns[rand][1], SharkPlayerSpawns[rand][2]);
SetPlayerHealth(playerid,100);
SetPlayerSkin(playerid,252);
ResetPlayerWeapons(playerid);
format(string,256,"%s à join Death Match 7 : SharkAttack (Shark)",name);
SendClientMessageToAll(COLOR_GREY,string);
SendClientMessage(playerid, COLOR_WHITE,"Fais /fin pour quitter");
new Float:X, Float:Y, Float:Z, Float:A;
GetPlayerFacingAngle(playerid, A);
GetPlayerPos(playerid, X, Y, Z);
DestroyPlayerObject(playerid,sharkobject[playerid]);
sharkobject[playerid] = CreatePlayerObject( playerid, 1608, X, Y, Z, 0, 0, A );
Timer1[playerid] = SetTimer("SharkPos", 5, 0);

Plus bas :
public SharkPos(playerid)
{
new Float:X, Float:Y, Float:Z, Float:A;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, A);
SetPlayerObjectPos( playerid, sharkobject[playerid], X, Y, Z );
SetPlayerObjectRot( playerid, sharkobject[playerid], 0, 0, A );

if(X && Y && Z >= -0.10) //hors de l'eau
{
SetTimer("Kill", 5000, 0);
E[playerid] = 1;
}
else if(X && Y && Z <= -0.10) //dans l'eau
{
E[playerid] = 0;
}

SetTimer("SharkPos", 5, 0);
return 1;
}

public Kill(playerid) //temps avant la mort
{
if(E[playerid] == 1)
{
new Float:H;
GetPlayerHealth(playerid,H);
SetPlayerHealth(playerid,H - 10);
SetTimer("Kill", 5000, 0);
}
return 1;
}

public OnPlayerToutchShark(playerid) //si on touche un requin on meurt
{
new Float:H;
new Float:X, Float:Y, Float:Z;
new Float:x, Float:y, Float:z;
GetPlayerHealth(playerid,H);
GetObjectPos(shark1, x, y, z); //shark1 est un objet (requin) pour tester se scripte
GetPlayerPos(playerid, X, Y, Z);
new xmax = x + 2;
new xmin = x - 2;
new ymax = y + 2;
new ymin = y - 2;
new zmax = z + 2;
new zmin = z - 2;

if(X < xmax && X > xmin && Y < ymax && Y > ymin && Z < zmax && Z > zmin)
{
if (shark[playerid] == 0)
{
SetPlayerHealth(playerid,H - 40);
}
}
return 1;
}

Si un requin sort de l'eau sa vie baisse, mais si on retourne dans l'eau on continu toujours a perdre de la vie et donc mourir.

Si je vais dans la zone (X < xmax && X > xmin && Y < ymax && Y > ymin && Z < zmax && Z > zmin) il ne se passe rien. Or moi je veut que me personnage perd 40 PDV à chaque entré dans cette zone, je cherche aussi l'id de la fumé rouge du stuntplane pour faire le sang.

Je veut que les requin vont plus vite et saute plus haut (pour pouvoir choper le gars qui sont sur la terre ferme). J'avais essayé un scripte avec velocity, sans succès...

Je veut que met requin ont apnée infini (ouais sa serais mieux^^)

Aidez moi SVP  :(


Hors ligne Kawoua

  • GTAOnline Member
  • *
  • Grand Banditisme
  • KaWouA
  • Messages: 800
    • Voir le profil
Re : SharkAttack
« Réponse #1 le: 27 Janvier 2010, 22:05:59 »
Et ba t'en veux des choses :0



PlayBonus
Marvel Inc ™

Hors ligne Barto

  • Aiiiiiiirght
  • *
  • GTAOnline Addict
  • Messages: 4205
    • Voir le profil
Re : Re : SharkAttack
« Réponse #2 le: 27 Janvier 2010, 22:07:12 »
Et ba t'en veux des choses :0

Evite de poster pour ne rien dire ...
Les filles, c'est comme les échappées en cyclisme, faut en tenter plusieurs pour en réussir une.

Gifs interdit dans les avatars/signs

Hors ligne Kawoua

  • GTAOnline Member
  • *
  • Grand Banditisme
  • KaWouA
  • Messages: 800
    • Voir le profil
Re : SharkAttack
« Réponse #3 le: 27 Janvier 2010, 22:09:00 »
Exactement ce que tu vien de faire...



PlayBonus
Marvel Inc ™

Hors ligne » Lukubi™

  • *
  • Soy el bico loco
  • Messages: 3282
    • Voir le profil
Re : SharkAttack
« Réponse #4 le: 27 Janvier 2010, 22:11:52 »
Le freepost tu évite kawa sil te plait, merci.

Alors pour l'apnée infinie c'est impossible a ma connaissance; pour la vitesse et le saut, il faut faire GetPlayerVelocity puis un SetPlayerVelocity je te laisse te renseigner sur le wiki pour plus d'information sur ces fonctions; La fumée rouge du stuntplane je n'ai jamais vu sa dans map editor ou quoi que ce soit donc je pense pas que sa soit possible; et pour la vie du personnage quand il retourne dans l'eau vérifie tes condition dans ta callback. J'espère que j'ai répondu clairement a tes questions, sinon bah je laisse les autres compléter ^^.

“Si la Terre est un endroit dangereux ce n’est pas à cause des hommes mauvais mais à cause des hommes bons qui ne font rien pour les empêcher.” (Albert Einstein).

Hors ligne ghm94

  • *
  • Grand Banditisme
  • Messages: 886
    • Voir le profil
Re : Re : SharkAttack
« Réponse #5 le: 27 Janvier 2010, 22:15:44 »
Et ba t'en veux des choses :0

Oui mais ton poste ne sert à rien, cette section du forum est fait pour l'entre-aide, donc si la personne a beacoup de problème elle peut les poster et ont a pas besoin de commentaire comme les tient  :closedeyes


Sinon pour l'apnée infinie peut être possible mais assez long à réaliser...

Pour que ton joueur perde des vies une fois dans la zones utilise un timer qui vérifie sa position et si tu y est bah enlève des vies ;)

Hors ligne Dark57

  • *
  • Criminel
  • Messages: 43
    • Voir le profil
Re : SharkAttack
« Réponse #6 le: 30 Janvier 2010, 22:49:02 »
j'ai beaucoup cherché avant de reposter

mon SetPlayerVelocity ne fonctionne pas :
Citer
new Float:x, Float:y, Float:z;
GetPlayerVelocity(playerid, x, y, z);
SetPlayerVelocity(playerid,x*10 ,y*10 ,z);
il n'est pas dans un timer

sinon pour mon "si on touche un requin on meurt" je suis bloqué...
il ne se passe rien quand j'entre dans un requin