Jump to content

script Pickup Weapon System (pwn code)


LYRIcS

Recommended Posts

Zdravím,

Neviem či to tu náhodou už niekde nieje, ale nevadí, moja tvorba je jedinečná :d !!!

 

 

Vytvoril som "Pickup Weapon System", je to vlastne systém, ktorý vytvára pickupy zbraní ktoré "vypadnú" z hráča keď zomrie.

Po úmrtí hráča sa vytvoria vedľa seba pickupy, ktoré budú vytvorené po dobu, ktorá je prednastavená (DELETE_PICKUP_TIME) alebo kým pickup niekto nezoberie.

 

 

Nastavenia:

MAX_PICKUP_WEAPONS je maximálny počet vytvorených weapon pickupov

DELETE_PICKUP_TIME čas v milisekundách (1 sekunda = 1000 milisekúnd) za ktorý pickup zmizne

 

 

PWN:

/*
******************************
*    Pickup Weapon System    *
*     Created by LYRIcS      *
*     Skype: alphamew98      *
*       Version: 1.00        *
******************************
*/

#include 

#define MAX_PICKUP_WEAPONS 500
#define DELETE_PICKUP_TIME 30000 //miliseconds (1 second = 1000 miliseconds)

#define INFINITY 2147483647

new pickup[MAX_PICKUP_WEAPONS];
new pickuptimer[MAX_PICKUP_WEAPONS];
new pickupweapon[MAX_PICKUP_WEAPONS] = {-1, ...};
new pickupammo[MAX_PICKUP_WEAPONS];
new MaxCreatedPickup = -1;

stock GetWeaponPickupID(weaponid)
{
if(weaponid == 1) return 331;
if(weaponid == 2) return 333;
if(weaponid == 3) return 334;
if(weaponid == 4) return 335;
if(weaponid == 5) return 336;
if(weaponid == 6) return 337;
if(weaponid == 7) return 338;
if(weaponid == 8) return 339;
if(weaponid == 9) return 341;
if(weaponid == 10) return 321;
if(weaponid == 11) return 322;
if(weaponid == 12) return 323;
if(weaponid == 13) return 324;
if(weaponid == 14) return 325;
if(weaponid == 15) return 326;
if(weaponid == 16) return 342;
if(weaponid == 17) return 343;
if(weaponid == 18) return 344;
if(weaponid == 22) return 346;
if(weaponid == 23) return 347;
if(weaponid == 24) return 348;
if(weaponid == 25) return 349;
if(weaponid == 26) return 350;
if(weaponid == 27) return 351;
if(weaponid == 28) return 352;
if(weaponid == 29) return 353;
if(weaponid == 30) return 355;
if(weaponid == 31) return 356;
if(weaponid == 32) return 372;
if(weaponid == 33) return 357;
if(weaponid == 34) return 358;
if(weaponid == 35) return 359;
if(weaponid == 36) return 360;
if(weaponid == 37) return 361;
if(weaponid == 38) return 362;
if(weaponid == 39) return 363;
if(weaponid == 40) return 364;
if(weaponid == 41) return 365;
if(weaponid == 42) return 366;
if(weaponid == 43) return 367;
if(weaponid == 44) return 368;
if(weaponid == 45) return 369;
if(weaponid == 46) return 371;
return 1239;
}

stock GetWeaponPickupCreatePos(&Float:x, &Float:y, &Float:z, number)
{
#pragma unused z

if(number == 2)
{
	x += 1.0;
}
else if(number == 3)
{
	x -= 1.0;
}
else if(number == 4)
{
	y += 1.0;
}
else if(number == 5)
{
	y -= 1.0;
}
else if(number == 6)
{
	x += 1.0;
	y += 1.0;
}
else if(number == 7)
{
	x += 1.0;
	y -= 1.0;
}
else if(number == 8)
{
	x -= 1.0;
	y -= 1.0;
}
else if(number == 9)
{
	x -= 1.0;
	y += 1.0;
}
else if(number == 10)
{
	x += 2.0;
}
else if(number == 11)
{
	x -= 2.0;
}
else if(number == 12)
{
	y += 2.0;
}
else if(number == 13)
{
	y -= 2.0;
}
}

public OnFilterScriptInit()
{
for(new p=0; p	{
	pickup[p] = CreatePickup(1007, 23, 0.0, 0.0, 10000.0, INFINITY);
	DeleteWeaponPickup(p);
}
MaxCreatedPickup = -1;
return 1;
}

public OnFilterScriptExit()
{
for(new p=0; p	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
   new w[13][2], weapons = 0;

   for(new c=0; c<13; c++)
   {
       GetPlayerWeaponData(playerid, c, w[c][0], w[c][1]);

       if(w[c][0] > 0) if(w[c][1] > 0) for(new p=0; p		{
	    if(p > MaxCreatedPickup) MaxCreatedPickup = p;

	    weapons++;

	    new Float:x, Float:y, Float:z;
	    GetPlayerPos(playerid, x, y, z);
	    GetWeaponPickupCreatePos(x, y, z, weapons);

	    DestroyPickup(pickup[p]);
	    pickup[p] = CreatePickup(GetWeaponPickupID(w[c][0]), 23, x, y, z, GetPlayerVirtualWorld(playerid));
	    pickupweapon[p] = w[c][0];
	    pickupammo[p] = w[c][1];
		pickuptimer[p] = SetTimerEx("DeleteWeaponPickup", DELETE_PICKUP_TIME, 0, "i", p);

	    break;
	}
}
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
for(new p=0; p<=MaxCreatedPickup; p++) if(pickupweapon[p] != -1) if(pickupid == pickup[p])
{
    new Float:hp;
    GetPlayerHealth(playerid, hp);

	if(hp > 0.0)
	{
	    GivePlayerWeapon(playerid, pickupweapon[p], pickupammo[p]);

	    DeleteWeaponPickup(p);
	    KillTimer(pickuptimer[p]);
    }
    break;
}
return 1;
}

forward DeleteWeaponPickup(p);
public DeleteWeaponPickup(p)
{
DestroyPickup(pickup[p]);
pickup[p] = CreatePickup(1007, 23, 0.0, 0.0, 10000.0, INFINITY);
pickupweapon[p] = -1;
pickupammo[p] = 0;

new save = MaxCreatedPickup;
MaxCreatedPickup = -1;
for(new c=0; c<=save; c++) if(pickupweapon[c] != -1) MaxCreatedPickup = c;
return 1;
}

Link to comment
Share on other sites

Už to tu jednou bylo, ale určitě v horším zpracování a ještě k tomu zkopírované z nějákého modu, pěkná práce good job .. ;)

dik, myslel som si že to tu asi niekde bude pretoŽe takýto "systém" je dosť populárny :)

Link to comment
Share on other sites

je to to co mas zbrane v zade?

nie, je to to, že keď hráčzomrie tak na jeho mieste sa vytvoria zbrane ktoré je možné vziať a tak si vziať zbrane ktoré hráč predtým mal

Link to comment
Share on other sites

  • Globální moderátor

super věcička pro někoho se určitě hodí ale stejně bych si radši udělal svůj ... je to jako v singlu (podle pwn)

Link to comment
Share on other sites

Je to jednoduché :d šak sa poznáme lyrmund :d no ale inač je to dobré (presné súradnice by som nahradil randomom :))

Veď jednoduché to je :d práve preto som to tu dal :d ja vôbec nevravím že je to ťažké, však som to mal hotové za 20 min. A tie suradnice, načo random, sú tam len preto aby tie zbrane neboli všetky na jednej kope :)

Link to comment
Share on other sites

Vypadá to dobře. Pro nováčky určitě dobrá věc a pro ty zkušenější taková třešnička na dort. Ale když už, tak si měl udělat i peníze a vestu. Aby to bylo všechno ;) Ale jinak dobré :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...