GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Vprimo le 26 Mars 2011, 00:38:21

Titre: Tazer
Posté par: Vprimo le 26 Mars 2011, 00:38:21
Bon salut, je viens de commencé en script, je sais créer quelque commande... La je commence a créer mon serveur, mais je voudrait savoir si vous connaisez un fliter script ou quelque chose pour créer un tazer Manuel (Comme un SDpistole quand on tire sur quelqu'un il est taze)

Merci d'avance
Titre: Re : Tazer
Posté par: nath425 le 28 Mars 2011, 22:25:29
Dans le

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
tu y définit la touche désirée, et dans ça tu y place par exemple

if(GetPlayerWeapon(playerid) == 24) ( Là , j'ai mis l'arme DEAGLE)

et ensuite tu définis l'action de ton tazer, exemple du rendu :

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
   {
    if(newkeys == KEY_ACTION) // j'ai défini la touche CTRL
     {
      if(GetPlayerWeapon(playerid) == 24) // j'ai défini l'arme
      {
      la tu place ton code
      }
   }
   return 1;
 }
Titre: Re : Tazer
Posté par: Vprimo le 29 Mars 2011, 20:26:57
Je voie un peu se que sa donne...mais c'est pas sa car, il faut quand je tire dessus "ET SA LE TOUCHE", il est taze
Titre: Re : Tazer
Posté par: dydjyz le 29 Mars 2011, 22:27:50
http://www.gtaonline.fr/forums/index.php/topic,11537.0.html (http://www.gtaonline.fr/forums/index.php/topic,11537.0.html)

Entre autre: ====>

Il te suffit de fair un IsPlayerAiming(Si le Joueur tire sur ce joueur) je vais te faire un système pour t'aider

En Haut de ton Script :
forward OnPlayerAimingOnPlayer(PlayerAiming,PlayerTouchAimming);

Dans OnPlayerKeyStatChange :
if(((oldkeys & KEY_FIRE) && !(newkeys & KEY_FIRE)) || ((newkeys & KEY_FIRE) && !(oldkeys & KEY_FIRE)) ||  (newkeys & KEY_FIRE))
{
if(GetPlayerWeapon(playerid)==0)
{
    return 1;
}
for(new i = 0; i < MAX_PLAYERS(); i++)
{
if(IsPlayerConnected(i) && playerid != i)
{
if(IsPlayerAiming(playerid, i))
{
OnPlayerAimingOnPlayer(playerid,i);
return 1;
}
}
}
}

En bas de ton script :
OnPlayerAimingOnPlayer(PlayerAiming,PlayerTouchAimming)
{
//PlayerAiming = Le Joueur qui tire
//PlayerTouchAimming = Le Joueur touché par le tire
return 1;
}

Toujour en bas de ton script(SOURCE:http://woot-is-awesome.pastebin.com/f5d45cbd7):
stock IsPlayerAiming(playerid, aimid)
{
// Not my function, can't remember who made it though.
new Float:X1, Float:Y1, Float:Z1, Float:X2, Float:Y2, Float:Z2;
GetPlayerPos(playerid, X1, Y1, Z1);
GetPlayerPos(aimid, X2, Y2, Z2);
new Float:Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 100)
{
new Float:A;
GetPlayerFacingAngle(playerid, A);
X1 += (Distance * floatsin(-A, degrees));
Y1 += (Distance * floatcos(-A, degrees));
Distance = floatsqroot(floatpower(floatabs(X1-X2), 2) + floatpower(floatabs(Y1-Y2), 2));
if(Distance < 0.5)
{
    return true;
}
}
return false;
}
Titre: Re : Tazer
Posté par: Vprimo le 29 Mars 2011, 22:57:04
Quand je met sa, et je le remplie (ici je les pas remplie):

Code: (pawn) [Sélectionner]
if(((oldkeys & KEY_FIRE) && !(newkeys & KEY_FIRE)) || ((newkeys & KEY_FIRE) && !(oldkeys & KEY_FIRE)) ||  (newkeys & KEY_FIRE))
{
if(GetPlayerWeapon(playerid)==0)
{
    return 1;
}
for(new i = 0; i < MAX_PLAYERS(); i++)
{
if(IsPlayerConnected(i) && playerid != i)
{
if(IsPlayerAiming(playerid, i))
{
OnPlayerAimingOnPlayer(playerid,i);
return 1;
}
}
}
}


Sa me donne sa:



C:\Documents and Settings\famille\Bureau\Serveur SAMP\gamemodes\RC-RP.pwn(67708) : error 029: invalid expression, assumed zero
C:\Documents and Settings\famille\Bureau\Serveur SAMP\gamemodes\RC-RP.pwn(67708) : error 001: expected token: ")", but found ";"
C:\Documents and Settings\famille\Bureau\Serveur SAMP\gamemodes\RC-RP.pwn(67708) : error 001: expected token: ";", but found ")"
C:\Documents and Settings\famille\Bureau\Serveur SAMP\gamemodes\RC-RP.pwn(67708) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.




Je croie que j'ai oublié quelque truc :$

Merci de m'aidé
Titre: Re : Tazer
Posté par: dydjyz le 30 Mars 2011, 10:53:17
A premiere vue, il semble que tu a oublier des ;
Titre: Re : Tazer
Posté par: Vprimo le 30 Mars 2011, 14:45:10
la ligne ou j'ai les erreur C'est cella:


Code: (pawn) [Sélectionner]
for(new i = 0; i < MAX_PLAYERS(); i++)
Titre: Re : Tazer
Posté par: Vprimo le 30 Mars 2011, 15:19:58
Ni l'une ni l'autre marche les même erreur:


C:\Documents and Settings\famille\Bureau\Serveur SAMP\plugins\TEST TAZER.pwn(202) : error 017: undefined symbol "IsPlayerAiming"
C:\Documents and Settings\famille\Bureau\Serveur SAMP\plugins\TEST TAZER.pwn(204) : error 004: function "OnPlayerAimingOnPlayer" is not implemented
C:\Documents and Settings\famille\Bureau\Serveur SAMP\plugins\TEST TAZER.pwn(211) : warning 209: function "OnPlayerKeyStateChange" should return a value
C:\Documents and Settings\famille\Bureau\Serveur SAMP\plugins\TEST TAZER.pwn(211) : error 055: start of function body without function header
C:\Documents and Settings\famille\Bureau\Serveur SAMP\plugins\TEST TAZER.pwn(212) : error 010: invalid function or declaration
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.
Titre: Re : Tazer
Posté par: Vprimo le 02 Avril 2011, 20:50:03
UP