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.

Evo ovako da napišem jednu skripticu pomoću koje možete ,u ovom mom slučaju prijavljivati bugove IG te se to sacuva u fajl jedan .

Prvo idemo includovati sve potrebno
#include <a_samp>
#include <zcmd>
#include <sscanf2>

Zatim definišemo fajl u koji ćemo spremati bugove u ovom slucaju to je scriptfiles ---> Bug Log.txt
#define FAJL_BUG_LOG            "Bug Log.txt"

Zatim pravimo komandu jednu sa kojom prijavljujemo bugove !
CMD:prijavibug(playerid,params[])
{
new result[256];
if(sscanf(params, "s[100]", result)) return SendClientMessage(playerid,-1,"[ Koristi ] /prijavibug [tekst]");
SendClientMessage(playerid,-1,"[BUG] Uspješno ste prijavili bug !");
  new unos[200];
format(unos, 200, "|| PRIJAVA BUGA || Igrac :%s || Bug: %s", GetName(playerid),result);
UpisiLog(FAJL_BUG_LOG, unos);
return 1;
}


Ovaj stock je najbitniji u cijeloj skripti jer sa njim cemo upisati bug u datoteku !
stock UpisiLog(fajl[], string[])
{
new unos[256];
new sat, minut, sekund, dan, mesec, godina;
gettime(sat, minut, sekund);
getdate(godina, mesec, dan);
format(unos, 256, "[%d/%d/%d - %d:%d:%d] %s\r\n", dan, mesec, godina, sat, minut, sekund, string);
new File:hFile;
hFile = fopen(fajl, io_append);
fwrite(hFile, unos);
fclose(hFile);
}
stock GetName(playerid)
{
new JName[MAX_PLAYER_NAME];
GetPlayerName(playerid,JName,MAX_PLAYER_NAME);
return JName;
}
~ Server Pernambucho Roleplay ~
Forum : ~ http://pernambucho.com/ ~
Facebook :~ https://www.facebook.com/events/331686430351597 ~

Owner : JA :D

stock GetPlayerID(const ime[])
{
    for(new i; i<MAX_PLAYERS; i++)
    {
        new ime2[MAX_PLAYER_NAME];
        GetPlayerName(i, ime2, sizeof(ime2));
        if(strcmp(ime, ime2, true)==0)
        {
          return i;
        }
    }
    return -1;
}


s foreachom
stock GetPlayerID(const ime[])
{
    foreach(Player, i)
{
        new ime2[MAX_PLAYER_NAME];
        GetPlayerName(i, ime2, sizeof(ime2));
        if(strcmp(ime, ime2, true)==0)
        {
          return i;
        }
    }
    return -1;
}



pomocu ovog koda mozete otkrit id igraca preko njegovog imena, ja sam sebi ovo jos davno napravio, za prodaju imovine, evo kako se moze iskoristiti:


   
new idigraca = GetPlayerID(KucaInfo[i][kVlasnik]);//ovaj i oznacava id kuce
if(IsPlayerConnected(idigraca))
{
SCM(idigraca, -1, "Admin je prodo vasu kucu");
PlayerInfo[idigraca][pKucaKljuc] = -1;
}


ovo se odnosi kad igracu prodajete imovinu a on je na serveru, i onda cemo izbacit ovu poruku
Poslednja Izmena: April 21, 2015, 22:38:04 POSLE PODNE od Crazyn3ss
Other Dimension RolePlay | Uskoro
Ukoliko zelite pomoci u razvoju servera, mozete se meni javit na PP/PM!

Citat: Crazyn3ss poslato April 21, 2015, 15:23:37 POSLE PODNE
stock GetPlayerID(const ime[])
{
    for(new i; i<MAX_PLAYERS; i++)
    {
        new ime2[MAX_PLAYER_NAME];
        GetPlayerName(i, ime2, sizeof(ime2));
        if(strcmp(ime, ime2, true)==0)
        {
          return i;
        }
    }
    return -1;
}


pomocu ovog koda mozete otkrit id igraca preko njegovog imena, ja sam sebi ovo jos davno napravio, za prodaju imovine, evo kako se moze iskoristiti:


   new IME[MAX_PLAYER_NAME];
new idigraca = GetPlayerID(KucaInfo[i][kVlasnik]);//ovaj i oznacava id kuce
if(IsPlayerConnected(idigraca))
{
SCM(idigraca, -1, "Admin je prodo vasu kucu");
PlayerInfo[idigraca][pKucaKljuc] = -1;
}


Zasto for petlja? Ovdje ti je bolje foreach staviti, da ti petlja prolazi kroz sve online igrace, a sa MAX_PLAYERS ti prolazi kroz sve slotove (zavisi koliko si ih definisao).

znam ja to sve, kod mene je foreach, al da sam njega stavio bio bi komenatar zasto foreach kad ga ne koriste svi, al dodat cu sad i tako
Other Dimension RolePlay | Uskoro
Ukoliko zelite pomoci u razvoju servera, mozete se meni javit na PP/PM!

Dali mozete mi dati skriptu kad admin pise na /b da je sa zuta boja a gm kad pise sa plava boja

Citat: Sonwebrt poslato Jul 13, 2015, 23:40:36 POSLE PODNE
Dali mozete mi dati skriptu kad admin pise na /b da je sa zuta boja a gm kad pise sa plava boja

CMD:b(playerid, params[])
{
if (isnull(params)) return SendClientMessage(playerid, -1, "{C0C0C0}USAGE: /b < message >");

new Float:X, Float:Y, Float:Z, String[128], Name[25];

GetPlayerPos(playerid, X, Y, Z);
GetPlayerName(playerid, Name, 25);
if(PlayerInfo[playerid][pAdmin] > 0)
        {
format(String, 128, "(( [%d] %s: {FFFF00}%s{FFFFFF} ))", playerid, Name, params);
        }
        else if(PlayerInfo[playerid][pGM] > 0)
        {
format(String, 128, "(( [%d] %s: {0080FF}%s{FFFFFF} ))", playerid, Name, params);
        }
        else
        {
         format(String, 128, "(( [%d] %s: %s ))", playerid, Name, params);
        }

for(new i = 0; i < MAX_PLAYERS; i++)
{
    if (IsPlayerInRangeOfPoint(i, X, Y, Z))
    {
        SendClientMessage(playerid, 0xC0C0C0FF, String);
}
}

return true;
}
Poslednja Izmena: Jul 14, 2015, 10:08:16 PRE PODNE od Vuzimir

My Bike KTM 450 SXF 2008

Da li moze neko da mi da sistem admin slotova znci kad postavljam admina pise id level i slot to da se sprema u ini formatu tj da vec imaju ini formati i ono se samo upisuje i brise kad skidam i cmd /admini da pise offline i online admini. Hvala unapred :D

Evo da i ja nesto dam :D. Koristen je ZCMD i sscanf2.

CMD:skin(playerid, params[])
{
new skinnumber, skinid, msg[128];
if(sscanf(params, "s", skinid)) return SendClientMessage(playerid, 0xFFFFAA, "INFO: /skin [skinID]");
else if(skinid < 0 || skinid > 299) return SendClientMessage(playerid, 0xFFFFAA, "Nevazeci skin ID.");
else if(IsPlayerAdmin(playerid) == 1) return SendClientMessage(playerid, 0xFFFFAA, "INFO: /skin [skinID]");
else
{
    SetPlayerSkin(playerid, skinid);
    skinnumber = GetPlayerSkin(playerid);
    format(msg, sizeof(msg), "Uspjesno ti je postavljen skin %s.", skinnumber);
    SendClientMessage(playerid, -1, msg);
}
return 1;
}


CMD:kick(playerid, params[])
{
new targetid;
if(sscanf(params, "d", targetid)) return SendClientMessage(playerid, 0xFFFFAA, "INFO: /kick [playerid]");
else if(IsPlayerAdmin(playerid) == 1) return SendClientMessage(playerid, 0xFFFFAA, "Nisi admin.");
else
{
    Kick(targetid);
}
return 1;
}

CMD:ban(playerid, params[])
{
new targetid;
if(sscanf(params, "d", targetid)) return SendClientMessage(playerid, 0xFFFFAA, "INFO: /ban [playerid]");
else if(IsPlayerAdmin(playerid) == 1) return SendClientMessage(playerid, 0xFFFFAA, "Nisi admin.");
else
{
    Ban(targetid);
}
return 1;
}



I ak moze jedno pitanje. Zasto kad ja napravim filterscript i ubacim, udjem u srw i ne rade komande
TRAZIM MAPER, JAVITE MI SE NA PM.

Evo za muziku bre !

[pawn]YCMD:playmusic(playerid, params[], help)
{
    #pragma unused help
    new
        link[128];
    if (sscanf(params, "s[128]", link)) return SCM (playerid, -1, "/playmusic [link]");
    else
    {
        foreach (Player, i)
      {
         PlayAudioStreamForPlayer(i, link);
      }
    }
   return 1;
}[/pawn]

Briše oružje

forward RemoveWeapon(playerid);
public RemoveWeapon(playerid)
{
    ResetPlayerWeapons(playerid);
    SendClientMessage(playerid,red,"Your weapons have been removed.");
return 1;
}

Evo jedno resenje za warning loose indetitaion
Ovo upisati na vrhu skripte
[pawn]#Pragma tabsize 0[/pawn]

Citat: Jevtic Script poslato Decembar 31, 2016, 17:07:46 POSLE PODNE
Evo jedno resenje za warning loose indetitaion
Ovo upisati na vrhu skripte
[pawn]#Pragma tabsize 0[/pawn]
Jeste li vi realni kakve vi gluposti ovde stavljate? Kao prvo mogu da dokazem da ne znas ni sta znaci pragma a ni tabsize a ni 0 ta, a i bas je tesko poravnat linije.
heroin rap - Moskri u kuci, od sledece lajne glava ce mi puci

Eh, sada, vidim, da svi objavljuju ovde neke kodove  ::)
I resio sam i ja da objavim jedan, dakle, ovo je, kada igrac promasi rcon, server ga banuje. Korisno je. :D

                                                       Pod OnRconLoginAttempt ubacite ovo:
public OnRconLoginAttempt(ip[], password[], success)
{
    if(!success)
    {
        printf("Krivi RCON login | IP: %s | Password pokusaja %s",ip, password);
        new pip[16];
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            GetPlayerIp(i, pip, sizeof(pip));
            if(!strcmp(ip, pip, true))
            {
                SendClientMessage(i, 0xFFFFFFFF, "Adio, Krivi Password!!");
                SetTimerEx("KonektBan", 1000, 0, "d", i);
            }
        }
    }
    return 1;
}



                                                                           Zatim, tamo gde su vam forwardovi.

Ako zelite da ga srw kickuje!

forward KonektKick(playerid);
public KonektKick(playerid)
{
Kick(playerid);
return 1;
}


A, ukoliko zelite da igrac dobije ban, stavite ovako.

forward KonektBan(playerid);
public KonektBan(playerid)
{
Ban(playerid);
return 1;
}


Credits: Skripteru Winchester RP (nisam siguran da je tacno ime)
Kod je uzet sa Winchester RP Skripte!


Oduvek sam se pitao:
"Zbog cega se ljudi toliko brinu jedni za druge?",
"Zasto ljudi daju sve od sebe da usrece neku osobu?"

Najjednostavnije receno brinu se jer vole tu osobu celim svojim srcem,
daju sve od sebe da je usrece zbog toga sto ne zele da je ikada vide tuznom ili rasplakanom.
#xsarnaaparatima..

Kada igrač pada može iskoristiti animacije da bi preživio pad, pa evo kako bi mogli da spriječite abuse, samo ovo dodajte kod svake animacije.

[pawn]if( GetPlayerAnimationIndex( playerid ) == 1130 ) return SendClientMessage( playerid, "{FF0000}[GREŠKA] {FFFFFF}Ne možeš sada koristiti animacije!" );[/pawn]
Poslednja Izmena: Februar 25, 2017, 15:39:05 POSLE PODNE od Muma

Jel ima neko skriptu za pustanje muzike sa yt.. da je preko linka ili da upisem samo ime pjesme :)

TIIIIIRRRRRRUUUUUU RIIIIIIIIIIIIIIIII RUUUUUUUUUUUUU