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.

IsValidSkin(skinid)
{
    #define MAX_BAD_SKINS 22
new badSkins[MAX_BAD_SKINS] = { 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289 };
    if (skinid < 0 || skinid > 299) return false;
    for (new i = 0; i < MAX_BAD_SKINS; i++) { if (skinid == badSkins[i]) return false; }
    #undef MAX_BAD_SKINS
    return 1;
}
Aequam memento rebus in arduis servare mentem.

#define SendFormatMessage(%0,%1,%2,%3,%4)   new %0[128];\
format(%0,128,%3,%4);\
SendClientMessage(%1, %2, %0)


%0 - za new (pre ovoga sam koristio statican new ali su se mesali formati pa sam odlucio staviti ovo...
%1 - id igraca kojem saljete poruku
%2 - boja
%3 - poruka
%4 - varijable ...


kako koristiti (primer):

new ime[MAX_PLAYER_NAME]; GetPlayerName(playerid, ime, sizeof(ime));
SendFormatMessage(string,playerid,0xff0000aa,"Moje ime je: %s", ime);


Ne znam koliko je ovo korisno ali mene nervira kad stalno kucam format itd pa sam napravio ovo :D

Neznam jel netko vec napravio nesto ovako ali stavit cu.Dakle ova funkcija provjerava dal je igrac u blizini nekog objekta,naprimjer:
IsPlayerNearObject(playerid,kapija,10);
-playerid-igracev id
-kapija-id objekta
-10-koliko je udaljen od objekta

Funkcija:
stock IsPlayerNearObject(playerid,objectid,range){
new float:ObjX,float:ObjY,float:ObjZ;
GetObjectPos(objectid,ObjX,ObjY,ObjZ);
    IsPlayerInRangeOfPoint(playerid,range,Obj:X,Obj:Y,Obj:Z);
    return 1;
}
Mysterious roleplay

Citat: SlicK poslato Avgust 26, 2012, 21:42:03 POSLE PODNE
Neznam jel netko vec napravio nesto ovako ali stavit cu.Dakle ova funkcija provjerava dal je igrac u blizini nekog objekta,naprimjer:
IsPlayerNearObject(playerid,kapija,10);
-playerid-igracev id
-kapija-id objekta
-10-koliko je udaljen od objekta

Funkcija:
stock IsPlayerNearObject(playerid,objectid,range){
new float:ObjX,float:ObjY,float:ObjZ;
GetObjectPos(objectid,ObjX,ObjY,ObjZ);
    IsPlayerInRangeOfPoint(playerid,range,Obj:X,Obj:Y,Obj:Z);
    return 1;
}


Imas malu gresku,ovo ce returnovati 1 i ako jeste i ako nije blizu objekta,evo kako bih ja to uradio:

stock IsPlayerNearObject(playerid,objectid,range) {
       new Float:Pos[3];
       GetObjectPos(objectid,Pos[0],Pos[1],Pos[2]);
       IsPlayerInRangeOfPoint(playerid,range,Pos[0],Pos[1],Pos[2]); {
       return true; }
       return false;
}
Poslednja Izmena: Avgust 27, 2012, 17:53:23 POSLE PODNE od ThE P.A.W.n !

//nije radilo

Ne znam da li ce ovo raditi al kolko znam nivo mora je u sampu na 0.0 visini :D

*EDIT:Ne radi ovo moram srediti :P

*EDIT 2:

evo ga testirano :)


stock IgracUMoru(pl)
{
new Float:p[3];
    new animacija[32];
    new imeanimacije[32];
    GetPlayerPos(pl,p[0],p[1],p[2]);
    GetAnimationName(GetPlayerAnimationIndex(pl),animacija,32,imeanimacije,32);
    if(strcmp(animacija, "SWIM", true) == 0 && p[2] < 0.0 && !IsPlayerInAnyVehicle(pl)) { return true; }
else return false;
}


Jedini "bug" je to sto ako se u moru sa autom ne pokazuje da je u moru sve dok ne izadjete iz auta... :)
Poslednja Izmena: Avgust 29, 2012, 02:53:59 PRE PODNE od dock

Citat: dock poslato Avgust 29, 2012, 02:30:54 PRE PODNE
//nije radilo

Ne znam da li ce ovo raditi al kolko znam nivo mora je u sampu na 0.0 visini :D

*EDIT:Ne radi ovo moram srediti :P

*EDIT 2:

evo ga testirano :)


stock IgracUMoru(pl)
{
new Float:p[3];
    new animacija[32];
    new imeanimacije[32];
    GetPlayerPos(pl,p[0],p[1],p[2]);
    GetAnimationName(GetPlayerAnimationIndex(pl),animacija,32,imeanimacije,32);
    if(strcmp(animacija, "SWIM", true) == 0 && p[2] < 0.0 && !IsPlayerInAnyVehicle(pl)) { return true; }
else return false;
}


Jedini "bug" je to sto ako se u moru sa autom ne pokazuje da je u moru sve dok ne izadjete iz auta... :)
Hmmm...Oce to radit i kod one brane u LV-u? :-\
Mysterious roleplay

Evo upravo sam testirao radi :D ... ukoliko ima neka voda iznad nivoa mora (nez dal je GP jezero vise od 0.0 :D) jednostavno obrisite deo p[2] < 0.0 jer je nepotreban al neka ga za svaki slucaj :D
Poslednja Izmena: Avgust 29, 2012, 03:15:42 PRE PODNE od dock

Citat: dock poslato Avgust 29, 2012, 02:59:40 PRE PODNE
Evo upravo sam testirao radi :D ... ukoliko ima neka voda iznad nivoa mora (nez dal je GP jezero vise od 0.0 :D) jednostavno obrisite deo p[2] < 0.0 jer je nepotreban al neka ga za svaki slucaj :D

Imas par bazena kraj kuca...
Mysterious roleplay

Vegas.

Citat: Sany Boy poslato Avgust 12, 2012, 22:52:21 POSLE PODNE
Mislim da ima ljudi koji ovo traze pa eto da objavim
Trebate sistem da vam ucitava admine i online i offline?
Neznate bez MySQL?
Evo samo ovo uradite:

idite u scriptfiles i napravite file:
admini
ovo stavite ko /makeadmin(zamijenjite vasu cmd sa mojom):
if(strcmp(cmd, "/makeadmin", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Koriscenje: /makeadmin [ID Igraca/Dio Imena] [level(1-3)]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(PlayerInfo[playerid][pAdmin] >= 1340)
{
    if(IsPlayerConnected(para1))
    {
        if(para1 != INVALID_PLAYER_ID)
        {
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pAdmin] = level;
printf("AdmCmd: Admin je %s-u dao odredjeni admin level.", sendername, giveplayer, level);
format(string, sizeof(string), "  Admin vam je dao/oduzeo admin level ", level, sendername);
SendClientMessage(para1, COLOR_WHITE, string);
format(string, sizeof(string), "   Dali/oduzeli ste %s-u admin level .", giveplayer,level);
SendClientMessage(playerid, COLOR_WHITE, string);
dfasfascc(para1,level);
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}[ERROR] {FFFFFF}Niste ovlasteni da koristite tu komandu!");
}
}
return 1;
}



A komandu /admini zamijenite sa :
if (strcmp(cmd, "/admini", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new klok[1300];
new mic;
for(new i = 0; i < 100; i++)
{
new FileName[128];
format(FileName, sizeof(FileName), "admini/Admin_%d.ini", i);
if(fexist(FileName) )
{
mic=1;
Admin[i][adIme]= dini_Get(FileName, "Ime" );
Admin[i][adRank]= dini_Int(FileName, "Rank" );
new blabla[300];
new blabla2[300];
if(IsPlayerConnected(GetPlayerIDS(Admin[i][adIme])))
{
format(blabla, sizeof(blabla),"{80FF00}[ONLINE] %s",Admin[i][adIme]);
strcat(klok, blabla);
strcat(klok, "{ffffff} Rank:");
format(blabla2, sizeof(blabla2), "{FFFF00}%d",Admin[i][adRank]);
strcat(klok,blabla2);
strcat(klok, "\n");
}
else if(!IsPlayerConnected(GetPlayerIDS(Admin[i][adIme])))
{
format(blabla, sizeof(blabla) ,"{FFFF00}[OFFLINE]%s",Admin[i][adIme]);
strcat(klok, blabla);
strcat(klok, "{9c9c9c} Rank:");
format(blabla2, sizeof(blabla2), "{80FF00}%d",Admin[i][adRank]);
strcat(klok,blabla2);
strcat(klok, "\n");
}
}
}
if(mic==0)
{
SendClientMessage(playerid,COLOR_GREEN, "Trenutno nema admina online !");
}
else
{ShowPlayerDialog(playerid,36,DIALOG_STYLE_MSGBOX,"Lista admina",klok,"OK","");
}
}

Dodajte i ovaj stock:
stock dfasfascc(giver,level)
{
adminsteras(giver);
if(level != 0)
{
new giveplayer[MAX_PLAYER_NAME];
GetPlayerName(giver, giveplayer, sizeof(giveplayer));
new lolcina = 1;
for(new mica = 1; mica < 100; mica++)
{
new stringers[600];
format(stringers, sizeof(stringers), "admini/Admin_%d.ini", mica);
if(lolcina == 0){return 1;}
if(!fexist(stringers))
{
lolcina = 0;
strmid(Admin[mica][adIme],giveplayer, 0, strlen(giveplayer), 255);
Admin[mica][adRank]=level;
dini_Create(stringers);
SaveAdmine();
}
}
}
return 1;
}

Nadam se da sam nekom pomogo :)
Ovo je Teške radio, mogao si creditse stavit !



Citat: dock poslato Avgust 29, 2012, 02:30:54 PRE PODNE
Jedini "bug" je to sto ako se u moru sa autom ne pokazuje da je u moru sve dok ne izadjete iz auta... :)

stock IgracUMoru(pl)
{
    new Float:p[3];
    new animacija[32];
    new imeanimacije[32];
    GetPlayerPos(pl,p[0],p[1],p[2]);
    GetAnimationName(GetPlayerAnimationIndex(pl),animacija,32,imeanimacije,32);
    if(strcmp(animacija, "SWIM", true) == 0 && p[2] < 0.0) { return true; } // obrises !IsPlayerInAnyVehicle(pl)
    else return false;
}


Samo obrises !IsPlayerInAnyVehicle(pl) i trebalo bi da radi bez problema :)

Ako si u vozilu automatski prikazuje da si u vodi .. nez zas.. zato sam stavio to :D

Citat: dock poslato Septembar 01, 2012, 00:39:54 PRE PODNE
Ako si u vozilu automatski prikazuje da si u vodi .. nez zas.. zato sam stavio to :D


Zato sto si vec ispunio ovaj uslov:
&& p[2] < 0.0
Izvinjavam se na svim glupostima i ako sam nekome napisao nesto lose, neko drugi je koristio moj profil!
__________________________________________
https://bk.gta.world - GTA World Balkan - RAGEMP

Nije, u autu si na visini 100 recimo izbacuje da si u vodi NE znam zasto ali to stoji sve sa razlogom tu :)