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 :(