Korisne skripte i kodovi

Započeo Correlli, Mart 10, 2010, 20:26:26 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

pax95

Citat: StjepanS poslato Mart 17, 2013, 10:02:28 PRE PODNE
Napravio sam da ukoliko imate pancirku u bilo kojem trenutku da vam se objekat pancirke stavi.


public OnPlayerUpdate(playerid)
{
new Float:armour;
for(new i=i;i<MAX_PLAYERS;i++)
{
   GetPlayerArmour(i, armour);// Funkcija koja provjerava vas Armour
   if(armour > 0.0)// Provjerava da li vam je armour veci od 0
   {
      SetPlayerAttachedObject(i, 6, 373, 1, 0.286006, -0.034657, -0.158132, 67.128456, 21.916156, 33.972290, 1.000000, 1.000000, 1.000000);// Stavlja objekt pancirke na slotu 6
   }
   else if(armour == 0.0)// Provjerava da li vam je armour na 0
   {
      RemovePlayerAttachedObject(i, 6);// Uklanja objekt pancirke na slotu 6
   }
}
return 0;
}


Naravno ovaj slot se moze mjenjat po vasem izboru, ali mora i na stvaranju i uklanjanju biti isti!
Nema potrebe za for petljom i loop-om igraca jer sam OnPlayerUpdate je tiimer koji se poziva nekoliko puta u sekundi. U prevodu izbaci for petlju i koristi playerid koji vec imas....

Evo jednog načina za dinamične sustave kako da napravite da nemorate upisivati ID kuće i tako stalno morate paziti koji je zadnji ID i slično, ovo može raditi na svemu što spremate kao integer tj. broj npr. COS sustav ako vozila spremate po IDu i onda u scriptfiles/vozila/ imate

1.ini
2.ini
3.ini
i slicno

ali vam je problem kada radite dinamicno da morate upisivati rucno ID, ovo vam moze pomoci, ova funkcija ce automatski pronaci slobodan slot i returnat ga....

stock getEmptyID(const len, const lokacija[])
{
    new id = (-1);
    for(new loop = (0), provjera = (-1), Data_[64] = "\0"; loop != len; ++ loop)
    {
       provjera = (loop+1);
       format(Data_, (sizeof Data_), lokacija ,provjera);
       if(!fexist(Data_))
       {
          id = (provjera);
          break;
       }
   }
   return (id);
}


Znači sada jednostavno umjesto da admin koji kreira kuću/biz/vozilo mora upisivati ID u koji će spremiti podatke o nečemu samo stavite npr.

new houseid = getEmptyID(MAX_HOUSES, "Kuce/%d.ini");

i varijabla houseid ce postati vase rjesenje kao prvi slobodan slot... jer npr.
ako u folderu Kuce imate

1.ini
5.ini
9.ini

znaci ako nejde po redu funkcija ce returnati PRVO slobodno mjesto

2 pa 3 pa 4 pa onda 6, 7, 8 i tek onda 10 pa tako na dalje...
Poslednja Izmena: Mart 27, 2013, 00:22:00 PRE PODNE od Slay_
Kristijan Stipić

evo jedne kratke funkcije koja proverava da li ima ljudi u vozilu stock CheckPeopleInVehicle(vehicleid)
{
foreach(Player, i)
{
if(IsPlayerInAnyVehicle(i))
{
if(GetPlayerVehicleID(i) == vehicleid && i != GetVehicleDriver(vehicleid))
{
return 1;
}
}
}
return 0;
}

GetVehicleDriver nije nativna funkcija...ako postavljas bez nativnih funkcija onda postavi kod
Kristijan Stipić

Evo komanda refresh kako bi se vratili u vw 0

YCMDYCMD:refresh(playerid, params[], help)
{
#pragma unused help
#pragma unused params
SetPlayerVirtualWorld(playerid, 0);
SendClientMessage(playerid, -1, "SERVER: Uspjesno ste osvjezeni - ukoliko imate jos problema obratite se adminima");
return 1;
}


ZCMDCMD:refresh(playerid, params[])
{
#pragma unused params
SetPlayerVirtualWorld(playerid, 0);
SendClientMessage(playerid, -1, "SERVER: Uspjesno ste osvjezeni - ukoliko imate jos problema obratite se adminima");
return 1;
}


STRCMP (njega ne preporucujem jer je najsporiji sistem komandi)if(strcmp(cmd, "/refresh", true) == 0)
{
SetPlayerVirtualWorld(playerid, 0);
SendClientMessage(playerid, -1, "SERVER: Uspjesno ste osvjezeni - ukoliko imate jos problema obratite se adminima");
return 1;
}
Poslednja Izmena: April 19, 2013, 12:36:45 POSLE PODNE od .ılllı. Wlseco .ılllı.

MARIO WLSECO • KUCNI SERVER • SMECAR

EDIT: izvinjavam se ucinilo mi se da sam stavio u pdf korisne komande :)
Poslednja Izmena: Maj 02, 2013, 18:25:07 POSLE PODNE od ladolez
BIG RESPECT JOEY_
BIG RESPECT [BD] Mr.Gagi

BIG RESPECT David A.k.A Sabljak

Evo nesto od mene.
Upitanju je VehicleRangeDetector
forward LooDDetectorV(Float:radi, playerid, vehicleid);
public LooDDetectorV(Float:radi, playerid, vehicleid)
{
    if(IsPlayerConnected(playerid))
   {
      new Float:posx, Float:posy, Float:posz;
      new Float:oldposx, Float:oldposy, Float:oldposz;
      new Float:tempposx, Float:tempposy, Float:tempposz;
      GetPlayerPos(playerid, oldposx, oldposy, oldposz);
      //radi = 2.0; //Trigger Radius
      GetVehiclePos(vehicleid, posx, posy, posz);
      tempposx = (oldposx -posx);
      tempposy = (oldposy -posy);
      tempposz = (oldposz -posz);
      if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
      {
         return 1;
      }
   }
   return 0;
}

//Komande su beskorisne,i mozda ce odmognuti nekome
Poslednja Izmena: Jul 19, 2013, 22:32:04 POSLE PODNE od Willyâ„¢


Respect:ColdPlay,Artie,dnjl.

brate pretjera ga ti ako ti je to korisno...  i ko to nezna napraviti 2 funkcije?

procitaj naslov teme, dao si 2 bezkorisne i nepravilne komande

Citat: David (Sabljak) A.k.A SABO(T) poslato Jul 19, 2013, 20:10:17 POSLE PODNE
Citat: Willyâ,,¢ poslato Jul 19, 2013, 12:49:54 POSLE PODNE
Evo dve jednostavne komande...

CMD:heal(playerid, params [])
SendClientMessage(playerid,-1 "Izlecili ste se!");
SetPlayerHealth(playerid,100)

CMD:kill(playerid, params [])
SendClientMessage,-1 "Ubili ste se!");
SetPlayerHealth(playerid,0)



i ako ovo uspjies compilat dam ti moderatora :D

LOL :/

btw, da postavim neku funkciju nisam nikad, mozda i ima ova nisam gledo

stock izracunajPostotak(Float:postotak, broj)
{
       new Float:kolicina;
       kolicina = ((postotak / 100) * (broj));
       return kolicina;
}


jednostavno ali eto da postam sta bilo (spamerski post:D)

Veoma koristan kod u slučaju pozicioniranja igrača.

stock V_SetPos(playerid, Float:x, Float:y, Float:z, Float:a)
{
if(IsPlayerInAnyVehicle(playerid)) { SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z); SetVehicleZAngle(GetPlayerVehicleID(playerid), a); }
else { SetPlayerPos(playerid, x, y, z); SetPlayerFacingAngle(playerid, a); }
return 1;
}


Mali pokazatelj. YCMD:gethere(playerid, params[], help)
{
#pragma unused help
new igr, Float:X, Float:Y, Float:Z, Float:A; GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, A);
if(sscanf(params, "")) returm SendClientMessage(playerid, -1, "/gethere [ID/Ime]");
V_SetPos(igr, X, Y, Z+2, A);
return 1;
}

Citat: Vegas. poslato Januar 16, 2014, 23:55:34 POSLE PODNE
Veoma koristan kod u slučaju pozicioniranja igrača.

stock V_SetPos(playerid, Float:x, Float:y, Float:z, Float:a)
{
if(IsPlayerInAnyVehicle(playerid)) { SetVehiclePos(GetPlayerVehicleID(playerid), x, y, z); SetVehicleZAngle(GetPlayerVehicleID(playerid), a); }
else { SetPlayerPos(playerid, x, y, z); SetPlayerFacingAngle(playerid, a); }
return 1;
}


Mali pokazatelj. YCMD:gethere(playerid, params[], help)
{
#pragma unused help
new igr, Float:X, Float:Y, Float:Z, Float:A; GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, A);
if(sscanf(params, "")) returm SendClientMessage(playerid, -1, "/gethere [ID/Ime]");
V_SetPos(igr, X, Y, Z+2, A);
return 1;
}


Ovo bi trebalo postavit igracevo vozilo na koordinate a igraca izbacit iz vozila ? Ili ?
Izvini ako sam te pogresno razumio :D ;)

stock v_SetPos(playerid, Float:x, Float:y, Float:z, Float:a, inte = 0, world = 0, bool:iVehicle = false)
{
    if( iVehicle )
    {
        if( IsPlayerInAnyVehicle( playerid ) )
        {
            new
                veh = GetPlayerVehicleID( playerid );
                iSeat = GetPlayerVehicleSeat( playerid );
            ;
            SetVehiclePos( veh, x, y, z );
            SetVehicleZAngle( veh, a );
            if( inte != 0 )
            {
                LinkVehicleToInterior( veh, inte );
            }
            if( world != 0 )
            {
                SetVehicleVirtualWorld( veh, world );
            }
            PutPlayerInVehicle( playerid, iSeat );
        }
    }
    else
    {
        SetPlayerPos( playerid, x, y, z );
        SetPlayerInterior( playerid, inte );
        SetPlayerVirtualWorld( playerid, world );
    }
    return 1;
}

Jednostavan headshot sistem za 0.3z

new JeDobioVuglu[MAX_PLAYERS];

forward OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart);
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
    if(bodypart == HIT_HEAD) // Glava
    {
        if(PlayerInfo[playerid][AdminNaDuÅ¡nostiVarijabla] != 1) // Admin protekcija
        {
    if(AkoJeHitman(issuerid)) // Ako je pripadnik odreÄ'ene organizacije
    {
        switch(weaponid)
        {
            case 22,23,24,25,26,27,28,29,30,31,32,33,34: // tip Oružija
            {
                SetPlayerHealth(playerid, 0);
                JeDobioVuglu[playerid] = 1;
}
}
}
else
{
    switch(weaponid) // Ako je Snajper
    {
        case 34:
        {
            SetPlayerHealth(playerid, 0);
            JeDobioVuglu[playerid] = 1;
}
}
}
}
}
        if(PlayerInfo[issuerid][JeAdmin] == 1 && PlayerInfo[playerid][AdminNaDužnosti] == 1) // Ako je admin na dužnosti
{
return 0;
}
        return 1;
}


Funkcija ako je hitmen

forward AkoJeHitman(playerid);
public AkoJeHitman(playerid)
{
if(IsPlayerConnected(playerid)) // ako je konektovan
{
    new leader = PlayerInfo[playerid][pLeader]; // lider
    new member = PlayerInfo[playerid][pMember]; // member
    if(member==ID ORGANIZACIJE) // ako je member organizacije te i te
    {
return 1;
}
else if(leader==ID ORGANIZACIJE) // ako je lider organizacije te i te
{
    return 1;
}
}
return 0;
}
Poslednja Izmena: Februar 17, 2014, 18:41:39 POSLE PODNE od |BN| - Niko


forum.sa-mp.com info:
Over 1000 posts.
Over 50 reputation.