Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Negalima prašyti ar platinti betkokių žaidimą (multiplayer) palengvinančių programų ir scriptų! Kitaip bus taikoma 1.21. taisyklė

Scriptai( Ne default'inės funkcijos )


hustrine

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1735 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

  • Parašė po 1 mėnesio...

[FNC] Probability


Aprašymas:
Funkcija skirta patikrinti tikimybę, nežinau kaip geriau paaiškint xd. Pavyzdžiui yra 20% tikimybė, kad žaidėjas gaus 100HP ir 80%, kad gaus 20HP, tai kodas atrodys taip:

SetPlayerHealth(playerid, Probability(20) ? 100.0 : 20.0);
Kodas:
Pastebin

Naudojimas:
Probability(50);
Parametrai:
%0 (percent) - %. Kad funkcija veiktu normaliai, reikšmę turi būti 0-100.

Funkcija gražina:
1 - jeigu teigiamas rezultatas.
0 - jeigu rezultatas neigiamas.


Autorius: Aš (ES.^ a.k.a Johurt).

Redaguota , nario ES.^
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 1 mėnesio...
  • Parašė po 4 savaičių...

Saugios zonos - tai zonos, kuriose negalima naudoti šaunamūjų ginklų, už šaunamūjų ginklų išėmimą/pasiėmimą nusiema 10hp

 

Pradžioje gamemod'o rašome:

 

#define MAX_ZONES  4 // dabar yra 4 zonos.
enum kords
{
    Float:minX,
    Float:minY,
    Float:maxX,
    Float:maxY
};
new Text:Saugi;
new Float:ZoneCords[MAX_ZONES][kords] =
{
     // minX, minY, maxX, maxY
     {-2696.9824, -60.6852, -2613.1055, 29.8879}, // koordinatės saugios zonos nr.1
     {-2001.5415, 77.9670, -1950.7507, 218.3597},// koordinatės saugios zonos nr.2
     {-1958.4668, 77.8609, -2000.5751, 218.8447},// koordinatės saugios zonos nr.3
     {2192.7255, 2032.4004, 2312.0420, 2067.6936}// koordinatės saugios zonos nr.4
};

 

Po OnPlayerConnect rašome:

 

Saugi = TextDrawCreate( 13, 150, "~w~ Saugi Zona" ); //kamputį rašys, jog yra saugioje zonoje
TextDrawBackgroundColor(Saugi, 0xFF7600FF); //šia spalva rašys tekstą
TextDrawFont(Saugi,3);
TextDrawSetOutline( Saugi, 1 );
TextDrawSetProportional( Saugi, 1 );

 

Po OnPlayerGiveDamage rašome:

P.S. Jei nėra susikurkite

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)

 

for(new z = 0; z < MAX_ZONES; z++)
        {
     if(PlayerInZone(playerid, ZoneCords[z][minX], ZoneCords[z][minY], ZoneCords[z][maxX], ZoneCords[z][maxY]))
            {
            new Float:HP;
            SetPlayerArmedWeapon(playerid,true);
    SetPlayerHealth(playerid,GetPlayerHealth(playerid,HP)-10);
   SendClientMessage(playerid,RAUDONA,"Praradai 10 gyvybių už ginklų turėjimą saugioje zonoje");
   }
   }

 

Gale GM rašome:

 

stock PlayerInZone(playerid, Float:min_X, Float:min_Y, Float:max_X, Float:max_Y)
{
    new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    if((pos[0] <= max_X && pos[0] >= min_X) && (pos[1] <= max_Y && pos[1] >= min_Y)) return 1;
    return 0;
}

 

po OnPlayerUpdate rašome:

 

for(new z = 0; z < MAX_ZONES; z++)
        {
 if(!PlayerInZone(playerid, ZoneCords[z][minX], ZoneCords[z][minY], ZoneCords[z][maxX], ZoneCords[z][maxY]))
            {
            TextDrawHideForPlayer(playerid,Saugi);
            }
            }
            for(new z = 0; z < MAX_ZONES; z++)
        {
             if(PlayerInZone(playerid, ZoneCords[z][minX], ZoneCords[z][minY], ZoneCords[z][maxX], ZoneCords[z][maxY]))
            {
            TextDrawShowForPlayer(playerid,Saugi);
            }
            }

 

Redaguota nuo kažkokio čiūvelio, buvo įkėlęs, bet su klaidom, ištaisiasiau klaidas.

Nuoroda į komentarą
Dalintis per kitą puslapį

Saugios zonos - tai zonos, kuriose negalima naudoti šaunamūjų ginklų, už šaunamūjų ginklų išėmimą/pasiėmimą nusiema 10hp

 

Pradžioje gamemod'o rašome:

 

 

#define MAX_ZONES  4 // dabar yra 4 zonos.
enum kords
{
    Float:minX,
    Float:minY,
    Float:maxX,
    Float:maxY
};
new Text:Saugi;
new Float:ZoneCords[MAX_ZONES][kords] =
{
     // minX, minY, maxX, maxY
     {-2696.9824, -60.6852, -2613.1055, 29.8879}, // koordinatės saugios zonos nr.1
     {-2001.5415, 77.9670, -1950.7507, 218.3597},// koordinatės saugios zonos nr.2
     {-1958.4668, 77.8609, -2000.5751, 218.8447},// koordinatės saugios zonos nr.3
     {2192.7255, 2032.4004, 2312.0420, 2067.6936}// koordinatės saugios zonos nr.4
};
 

Po OnPlayerConnect rašome:

 

 

Saugi = TextDrawCreate( 13, 150, "~w~ Saugi Zona" ); //kamputį rašys, jog yra saugioje zonoje
TextDrawBackgroundColor(Saugi, 0xFF7600FF); //šia spalva rašys tekstą
TextDrawFont(Saugi,3);
TextDrawSetOutline( Saugi, 1 );
TextDrawSetProportional( Saugi, 1 );
 

Po OnPlayerGiveDamage rašome:

P.S. Jei nėra susikurkite

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)

 

 

for(new z = 0; z < MAX_ZONES; z++)
        {
     if(PlayerInZone(playerid, ZoneCords[z][minX], ZoneCords[z][minY], ZoneCords[z][maxX], ZoneCords[z][maxY]))
            {
            new Float:HP;
            SetPlayerArmedWeapon(playerid,true);
    SetPlayerHealth(playerid,GetPlayerHealth(playerid,HP)-10);
   SendClientMessage(playerid,RAUDONA,"Praradai 10 gyvybių už ginklų turėjimą saugioje zonoje");
   }
   }
 

Gale GM rašome:

 

 

stock PlayerInZone(playerid, Float:min_X, Float:min_Y, Float:max_X, Float:max_Y)
{
    new Float:pos[3]; GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    if((pos[0] <= max_X && pos[0] >= min_X) && (pos[1] <= max_Y && pos[1] >= min_Y)) return 1;
    return 0;
}
 

po OnPlayerUpdate rašome:

 

 

for(new z = 0; z < MAX_ZONES; z++)
        {
 if(!PlayerInZone(playerid, ZoneCords[z][minX], ZoneCords[z][minY], ZoneCords[z][maxX], ZoneCords[z][maxY]))
            {
            TextDrawHideForPlayer(playerid,Saugi);
            }
            }
            for(new z = 0; z < MAX_ZONES; z++)
        {
             if(PlayerInZone(playerid, ZoneCords[z][minX], ZoneCords[z][minY], ZoneCords[z][maxX], ZoneCords[z][maxY]))
            {
            TextDrawShowForPlayer(playerid,Saugi);
            }
            }
 

Redaguota nuo kažkokio čiūvelio, buvo įkėlęs, bet su klaidom, ištaisiasiau klaidas.

Galėjai tiesiog duoti link'ą į mano pastebin'ą. Be to ne čia post'ini (tai ne funkcija). Redaguota , nario ES.^
Nuoroda į komentarą
Dalintis per kitą puslapį

 

Funkcija: Atsitiktinis float skaičius

Naudojimas: 

floatrandom(skaičius);
floatrandom(12.8);

Kodas:

stock Float:floatrandom(Float:max) {
	return floatmul(floatdiv(float(random(cellmax)), float(cellmax - 1)), max);
}

Čia jei reikėtų su minimalia reikšme:

 

stock Float:floatrand(Float:min, Float:max)

{
	new imin = floatround(min);
	return floatdiv(float(random((floatround(max)-imin)*100)+(imin*100)),100.0);
}

EDIT: Įdomumo dėlei, atlikti speed testai:

funkcija be min. reikšmės  I  funkcija su min. reikšme:

65ms  I  91ms

testas: http://pastebin.com/eVVJpgFF

 

Redaguota , nario hldev
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 9 mėnesių...

Tikrinimas ar žaidėjas yra tam tikru atstumu nuo objekto :

stock LM_IsPlayerNearObject(playerid, objectid, Float:range)
{
	new Float:pos[3];
	GetObjectPos(objectid, pos[0], pos[1], pos[2]);
	if(IsPlayerInRangeOfPoint(playerid, range, pos[0], pos[1], pos[2]))return true;
	return 0;
}
Redaguota , nario L'M
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 2 metų...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 1735 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai



×
×
  • Sukurti naują...