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.

Vegas.

Citat: Sany Boy poslato Avgust 31, 2012, 19:19:58 POSLE PODNE
lol,ja sam to uradio -.-
Kako to onda ima u extreme modu, to je Teške radio, sad bi ti se nagovorio svega al uzdržaću se, idi crtaj šumu i izgubi se, ili skoči pa pogini.

2 stocka ... jedan za proveru 2D zone drugi za proveru 3D zone

2D zona proverava kvadrat u zonama koje ste odabrali koordinatama minx,maxx,miny i maxy, visina nije bitna dokle god su X i Y koordinate izmedju min i max tacno je. U suprotnom nije tacno (ovo je testano i radi :) )


stock IgracU2DZoni(playerid,Float:minx,Float:miny,Float:maxx,Float:maxy)
{
new Float:p[3];
GetPlayerPos(playerid, p[0],p[1],p[2]);
if(p[0] >= minx && p[0] <= maxx && p[1] >= miny && p[1] <= maxy)
{
    return true;
}
else return false;
}


3D zona je nesto kao KUTIJA, sto je dosta korisnije od 2D zone ali su vam potrebne minz i maxz ukoliko se nadjete u kutiji tacno je, ukoliko ne nije (logicno xD) ... (ovo nije testano :) )


stock IgracU3DZoni(playerid,Float:minx,Float:miny,Float:maxx,Float:maxy,Float:minz,Float:maxz)
{
new Float:p[3];
GetPlayerPos(playerid, p[0],p[1],p[2]);
if(p[0] >= minx && p[0] <= maxx && p[1] >= miny && p[1] <= maxy && p[2] >= minz && p[2] <= maxz)
{
    return true;
}
else return false;
}


to je to valjda od mene :D

Citat: dock poslato Septembar 12, 2012, 15:49:50 POSLE PODNE
stock IgracU2DZoni(playerid,Float:minx,Float:miny,Float:maxx,Float:maxy)
{
   new Float:p[3];
   GetPlayerPos(playerid, p[0],p[1],p[2]);
   if(p[0] >= minx && p[0] <= maxx && p[1] >= miny && p[1] <= maxy)
   {
       return true;
   }
   else return false;
}

Ovo je Yless-ova funkcija!
Kristijan Stipić

Evo od mene jedan stock.Sluzi za dobijanje igracevog imena
stock IgracevoIme(playerid)
{
    new
        pName[MAX_PLAYER_NAME];

    GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
    return pName;
}


Poz,evo ovo mi netreba pa da dam /lideri da vidite listu online lidera

//aktivni lideri
if (strcmp(cmd, "/lideri", true) == 0)
{
        if(IsPlayerConnected(playerid))
    {
        SendClientMessage(playerid, COLOR_RED, " ");
        SendClientMessage(playerid, COLOR_RED, "-Trenutno Aktivni Lideri na Serveru-");
foreach (Player, i)
{
if(PlayerInfo[i][pLeader] >= 1 && PlayerInfo[i][pLeader] < 17)
    {
    new admtext[64];
        if(PlayerInfo[i][pLeader] == 1) { admtext = "LS PD"; } //stavite koju ocete org
        else if(PlayerInfo[i][pLeader] == 2) { admtext = "FBI"; } //stavite koju ocete org
    else if(PlayerInfo[i][pLeader] == 3) { admtext = "SWAT"; } //stavite koju ocete org
    else if(PlayerInfo[i][pLeader] == 4) { admtext = "Hitna Pomoc"; } //stavite koju ocete org
    else if(PlayerInfo[i][pLeader] == 5) { admtext = "Yakuza"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 6) { admtext = "LCN"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 7) { admtext = "Gradonacelnik"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 8) { admtext = "Hitman"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 9) { admtext = "Novinari"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 10) { admtext = "Taxi ORG"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 11) { admtext = "SF PD"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 12) { admtext = "Ruska Mafija"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 13) { admtext = "------------"; } //stavite koju ocete org ili stavite vasu novu org
else if(PlayerInfo[i][pLeader] == 14) { admtext = "------------"; } //stavite koju ocete org ili stavite vasu novu org
else if(PlayerInfo[i][pLeader] == 15) { admtext = "Clovers"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 16) { admtext = "Bloods"; } //stavite koju ocete org
else { admtext = "------------"; }
GetPlayerName(i, sendername, sizeof(sendername));
if(AdminDuty[i] == 0)
{
format(string, 256, "%s ( %s )", sendername, admtext);
SendClientMessage(playerid, COLOR_WHITE, string);
}
else
{
    format(string, 256, "%s ( %s )", sendername, admtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}
}
}
return 1;
}


to to :D
prst prst u cupi,prst prst u anus

Citat: [RX-RP]Djordje_Veljkovic poslato Novembar 17, 2012, 17:11:29 POSLE PODNE
Poz,evo ovo mi netreba pa da dam /lideri da vidite listu online lidera

//aktivni lideri
if (strcmp(cmd, "/lideri", true) == 0)
{
        if(IsPlayerConnected(playerid))
    {
        SendClientMessage(playerid, COLOR_RED, " ");
        SendClientMessage(playerid, COLOR_RED, "-Trenutno Aktivni Lideri na Serveru-");
foreach (Player, i)
{
if(PlayerInfo[i][pLeader] >= 1 && PlayerInfo[i][pLeader] < 17)
    {
    new admtext[64];
        if(PlayerInfo[i][pLeader] == 1) { admtext = "LS PD"; } //stavite koju ocete org
        else if(PlayerInfo[i][pLeader] == 2) { admtext = "FBI"; } //stavite koju ocete org
    else if(PlayerInfo[i][pLeader] == 3) { admtext = "SWAT"; } //stavite koju ocete org
    else if(PlayerInfo[i][pLeader] == 4) { admtext = "Hitna Pomoc"; } //stavite koju ocete org
    else if(PlayerInfo[i][pLeader] == 5) { admtext = "Yakuza"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 6) { admtext = "LCN"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 7) { admtext = "Gradonacelnik"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 8) { admtext = "Hitman"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 9) { admtext = "Novinari"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 10) { admtext = "Taxi ORG"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 11) { admtext = "SF PD"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 12) { admtext = "Ruska Mafija"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 13) { admtext = "------------"; } //stavite koju ocete org ili stavite vasu novu org
else if(PlayerInfo[i][pLeader] == 14) { admtext = "------------"; } //stavite koju ocete org ili stavite vasu novu org
else if(PlayerInfo[i][pLeader] == 15) { admtext = "Clovers"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 16) { admtext = "Bloods"; } //stavite koju ocete org
else { admtext = "------------"; }
GetPlayerName(i, sendername, sizeof(sendername));
if(AdminDuty[i] == 0)
{
format(string, 256, "%s ( %s )", sendername, admtext);
SendClientMessage(playerid, COLOR_WHITE, string);
}
else
{
    format(string, 256, "%s ( %s )", sendername, admtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}
}
}
return 1;
}


to to :D
Citaj naslov teme! Ovo bgm nije kroisno ...

Citat: [RX-RP]Djordje_Veljkovic poslato Novembar 17, 2012, 17:11:29 POSLE PODNE
Poz,evo ovo mi netreba pa da dam /lideri da vidite listu online lidera

//aktivni lideri
if (strcmp(cmd, "/lideri", true) == 0)
{
        if(IsPlayerConnected(playerid))
    {
        SendClientMessage(playerid, COLOR_RED, " ");
        SendClientMessage(playerid, COLOR_RED, "-Trenutno Aktivni Lideri na Serveru-");
foreach (Player, i)
{
if(PlayerInfo[i][pLeader] >= 1 && PlayerInfo[i][pLeader] < 17)
    {
    new admtext[64];
        if(PlayerInfo[i][pLeader] == 1) { admtext = "LS PD"; } //stavite koju ocete org
        else if(PlayerInfo[i][pLeader] == 2) { admtext = "FBI"; } //stavite koju ocete org
    else if(PlayerInfo[i][pLeader] == 3) { admtext = "SWAT"; } //stavite koju ocete org
    else if(PlayerInfo[i][pLeader] == 4) { admtext = "Hitna Pomoc"; } //stavite koju ocete org
    else if(PlayerInfo[i][pLeader] == 5) { admtext = "Yakuza"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 6) { admtext = "LCN"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 7) { admtext = "Gradonacelnik"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 8) { admtext = "Hitman"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 9) { admtext = "Novinari"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 10) { admtext = "Taxi ORG"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 11) { admtext = "SF PD"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 12) { admtext = "Ruska Mafija"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 13) { admtext = "------------"; } //stavite koju ocete org ili stavite vasu novu org
else if(PlayerInfo[i][pLeader] == 14) { admtext = "------------"; } //stavite koju ocete org ili stavite vasu novu org
else if(PlayerInfo[i][pLeader] == 15) { admtext = "Clovers"; } //stavite koju ocete org
else if(PlayerInfo[i][pLeader] == 16) { admtext = "Bloods"; } //stavite koju ocete org
else { admtext = "------------"; }
GetPlayerName(i, sendername, sizeof(sendername));
if(AdminDuty[i] == 0)
{
format(string, 256, "%s ( %s )", sendername, admtext);
SendClientMessage(playerid, COLOR_WHITE, string);
}
else
{
    format(string, 256, "%s ( %s )", sendername, admtext);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}
}
}
return 1;
}


to to :D

Prvo citaj naslov teme.
Drugo ovo si samo izvuko iz nekog moda.

Evo jedne funkcije koja vam može koristiti...

funkciju u koju upišete neki string (brojeve, slova...) i ona OD svakog unesenog znaka uzima ASCII vrijednost (npr. u ASCII tablici je veliko slovo C, 67) i zbraja je sa ostalim znakovima znači ako unesete velika slova C i D funkcija će returnati 135 (jer je C=67 D=68)... znači, na RP serveru svaki igrač ima svoje ime (Primjer: Kristijan_Stipic) funkcija ce uzeti ASCII vrijedost od

K-r-i-s-t-i-j-a-n-_-S-t-i-p-i-c

i time će returnati zbroj svih znakova u stringu ASCII vrijednosti, broj!

stock int:getAscii(tekst[]) // by Slay
{
   new
      ascii = (0);
   for(new i=0;i<strlen(tekst);++i)
   {
      if(tekst == '\0') break;
      ascii += (tekst);
   }
   return (ascii);
}

PRIMJER:

new
      primjerVarijabla[MAX_PLAYERS char] = (0);
primjerVarijabla{playerid} = (getAscii(GetName(playerid)));
// OVO JE SAMO PRIMJER KAKO DA VRIJEDNOST PRENESETE U VARIJABLU ZA ONE KOJI NE ZNAJU
Poslednja Izmena: Decembar 31, 2012, 13:28:09 POSLE PODNE od [SFP]Slay
Kristijan Stipić

jao decki proso sam od 1. pa do 19. stranice,nea koju komandu nisam probo xD

hvala svima!
NEW NEW NEW

Team Fortress od sada i na SA:MP-u!!!
Dodite i zabavite se!

IP: 62.210.122.191:7789

Evo bilo mi je malo dosadno pa sam se sjetio nečega šta može koristiti skripterima za RP servere.
Primjer: Ime_Prezime ti je dao $1000.
Primjetio sam da na većinu servera tako ispisuje ime igrača, pa sam mislio da bi više RP bilo kada bi bilo

Ime Prezime ti je dao $1000
Znači da prikazuje ime bez _

stock getName(playerid)
{
    new sNick_[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sNick_, MAX_PLAYER_NAME);
    for(new iX__ = (0); iX__ < strlen(sNick_); ++ iX__) if(sNick_[iX__] == '_') sNick_[iX__] = (32);
    return format(sNick_, MAX_PLAYER_NAME, "%s", sNick_), (sNick_);
}


VAŽNO: Skripteri početnici pripazite sa ovom funkcijom ako će te je koristiti, koristite je SAMO tamo di se ispisuje nick, znači tamo di je vidljivo jer ako je koristite za spremanje user accounta ili loadanje tu će nastati problemi tu nastavite koristiti GetName(playerid) i isto tako ako će te promjeniti iz getName u GetName onda će te imati problema sa loadanjem i spremanjem accounta i sa sscanf-om npr. /mojid ime_prezime - neće vam pronaći taj nick jer sscanf koristi GetName za provjeru U vrijednosti u parametrima... Eto, znači ime funkcije nemojte imati kao GetName, osim ako niste početnik pa znate kako se odnositi u tome slučaju.

Još jedan primjer, recimo da mi je nick na serveru Kristijan_Stipic

new string[64];
format(string, (sizeof string), "Moje ime je: %s", getName(playerid));
SendClientMessage(playerid, -1, string);


Server će ispisati poruku:

Moje ime je: Kristijan Stipic
Kristijan Stipić

@Slay, evo malo bolje verzije (bez for petlje):

stock getName(playerid)
{
new pName[MAX_PLAYER_NAME], usPos;

GetPlayerName(playerid, pName, MAX_PLAYER_NAME);

usPos = strfind(pName, "_");

if (usPos != -1) pName[usPos] = ' ';
return pName;
}

Last nick: Paradox

Vidiš nisam se uopće sjetio strfind funkcije, hvala :)

EDIT: Nisam siguran ali mislim da moraš svejedno prvo formatirati cijeli string pa onda ga tek returnati, nisam na svom kompu pa ne mogu testati...
Poslednja Izmena: Januar 20, 2013, 16:04:12 POSLE PODNE od Slay_
Kristijan Stipić

Ne trebaš, testirao sam ja već. :)

Last nick: Paradox

Citat: ZHIVAC poslato Januar 20, 2013, 16:17:01 POSLE PODNE
Pomoce Pocetnicima :D

da l si ti covece normalan? ovo su korisne funkcije a ne tutorijali

Evo vam jedna funkcija koja vam omogućuje npr. preko dialoga kada upišete \n da postavi novi red, a ne da piše \n
Primjer u praksi:

Želite preko dialog inputa staviti 3DText string i ako koristite OVO JE NEKI TEKST\nA OVO JE NOVI RED
U 3Dtextu će biti  OVO JE NEKI TEKST\nA OVO JE NOVI RED
A trebalo bi biti:

OVO JE NEKI TEKST
A OVO JE NOVI RED

Razlog zašto je to tako je jednostavan, ASCII vrijednost kada koristite \n je 92 110 a novi red (\n) nije \+n nego \n kao cijela vrijednost isto kao što je LJ jedno slovo, a ne L+J (to su dva slova)

stock postaviNoviRed(string[]) // by Slay_
{
    for(new i = (0), s = strlen(string); i < s; ++ i)
    {
        if(string == 92 && string[i+1] == 110) // isto kao da sam koristio string == '\' && string[i+1] == 'n'
        {
            string = '\n'; // postavlja pravu vrijednost koju vi želite
            string[i+1] = '\r'; // vrača na početak linije
        }
    }
}


Sada ako želite npr. spremiti string u neki file, a taj string želite formatirati, nastat će problem jer korištenjem placeholdera %s će te izgubiti \n i to vam može postaviti problem, slijedeća funkcija će vam riješiti taj problem tako da će placeholder %s pripremiti na korištenje \ u stringu, a \ se u stringu može koristiti samo ako stavite duplu, primjer: \\

stock pripremiNoviRed(string[]) // by Slay_
{
    for(new i = (0), s = strlen(string); i < s; ++ i)
    {
        if(string == '\n' && string[i+1] == '\r')
        {
            string = '\\';
            string[i+1] = 'n'; // sprema string kao \n
        }
    }
}


Poz!

EDIT: ako nekoga zanima neki drugi znakovi ascii tablice ovo vam može pomoći
http://balkan-samp.com/forum/index.php?topic=66952.0

ili

http://www.asciitable.com/index/asciifull.gif
Poslednja Izmena: Mart 02, 2013, 14:15:29 POSLE PODNE od Slay_
Kristijan Stipić