GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Nip le 08 Juillet 2007, 17:21:38
-
bonjours
tantôt j'ai été sur party server
et j'ai vue que quand j'ai tué 1 players ba je pouvai ramasé son arme
si quelle qu'1 serai m'expliquer comme faire ça sur mon server svp
-
Bah logiquement je dirai :
Quand une personne meurt, tu prends ses coordonnées et ses armes, (Get...)
Ensuite du les mets aux coordonées enregistrées. (Set...)
-
je vais etre gentil et te passé le filterscript qui permet de le faire :)
#include <a_samp>
forward PickDestroy(o);
new weapmod[600] = {1212,331,333,334,335,336,337,338,339,341,321,322,323,324,
325,326,342,343,344,345,345,345,346,347,348,349,350,351,352,353,355,356,372,357,
358,359,360,361,362,363,364,365,366,367,368,369,371};
new PickUpMoney[101] = {false, ...};
new DropPick[101] = {false, ...};
forward Float:GetPlayerArmourEx(p);
public OnFilterScriptInit()
{
print("\n**********************\n*Drop Script By Flyin*\n* Loaded *\n**********************");
return 1;
}
Float:GetPlayerArmourEx(p)
{
new Float:a;
GetPlayerArmour(p, a);
return a;
}
public OnFilterScriptExit()
{
print("\n**********************\n*Drop Script By Flyin*\n* UnLoaded *\n**********************");
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
// - Defines
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
new weap[200];
new ammo; // not used
new temp;
new s[256];
new PX;
new PY;
// - End of Defines
for(new i=0;i<15;i++){
// Getting random pos near to player
format(s, 256 ,"%.0f", X);
temp = strval(s);
PX = random((temp+2)-(temp-2))+(temp-2);
format(s, 256 ,"%.0f", Y);
temp = strval(s);
PY = random((temp+2)-(temp-2))+(temp-2);
// end of pos
// Placing Pickups
if(i<12){
GetPlayerWeaponData(playerid, i, weap[i], ammo);
if(weapmod[weap[i]] == 1212){
new pickid = CreatePickup(1212, 3,PX, PY, Z);
PickUpMoney[pickid]=true;
DropPick[pickid]=true;
} else {
DropPick[CreatePickup(weapmod[weap[i]], 3,PX, PY, Z)]=true;
}
}
if(i==13)DropPick[CreatePickup(1240, 3,PX, PY, Z)]=true;
if(i==14)if(GetPlayerArmourEx(playerid)>0.0)DropPick[CreatePickup(1242, 3,PX, PY, Z)]=true; else {
new pickid = CreatePickup(1212, 3,PX, PY, Z);
PickUpMoney[pickid]=true;
DropPick[pickid]=true;
}
if(i==15){
new pickid = CreatePickup(1212, 3,PX, PY, Z);
PickUpMoney[pickid]=true;
DropPick[pickid]=true;
}
}
// End of placing pickups
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(PickUpMoney[pickupid])GivePlayerMoney(playerid, 500); // Will give you 500$ when you pickup money
if(DropPick[pickupid])SetTimerEx("PickDestroy", 500, 0, "d", pickupid); // Destroying pickups
return 1;
}
public PickDestroy(o)DestroyObject(o); // Destroy pickup ! Muha xD!
-
j'ai mi ce que tu ma donner
mais il a pas les pickup des mort
je doit rien faire d'autre?
-
slt
Merci pour le filterscript ^^ :D
je le test tt de suit
-
svp aideee moi
SVP :cheers :cheers :cheers :cheers :cheers
-
Re
Ton filter script marche pa
enfin j arive a le complier mé sa marche pa :wall
-
Suffit de lire le filter script de Raf(FS) pour voir que c'est que pour l'argent.
Ce filter script permet de récupérer 500 $ quand on ramasse le pickup crée juste après la mort d'un joueur.
Il n'est pas très dificille de l'adapter pour que l'on récupère une arme en lpus de l'argent. Mais je vous laisse faire, ça vous fera un bon exercice.
++
-
ça va ete chaud
Merci
-
ok c'est bin ça marche merci a tous
-
Bande de nul normal qui marche pas XD
Regarder la toute derniere ligne mdr.
AK.
-
Oui mais il faut lire toutes les lignes Arsenik, effectivement la dernière ligne détruit le pickup mais par l'intermédiaire d'un timer, donc pas immédiatement ce qui laisse le temps au "tueur" de rammasser le pickup.
++
Syg
-
Bien moi j'ai fait ce qu'il fallait pour avoir tt le tem que je veut pour les rammaser.
J'ai modif ce FS.
AK.
-
Entre nous, c'est vrai que 500 millisecondes pour ramasser le pickup c'est un peu court.
++
Syg