Korisne Komande x Funkcije!? (Čitajte ovdje)

Započeo imnaithan, Jun 30, 2019, 20:26:22 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

hook post:990306
{
- Komanda x Funkcija = https://pastebin.com/3BWnMZ5Q
}
Those parts of the system that you can hit with a hammer (not advised) are called hardware; those program instructions that you can only curse at are called software

- Vase ime na forumu: V01D
- Komanda x Funkcija : [pawn]GetWeekDay(day=0, month=0, year=0)
{
  if (!day)
    getdate(year, month, day);

  new
    weekday_str[16],
    j,
    e
  ;

  if (month <= 2)
  {
    month += 12;
    --year;
  }

  j = year % 100;
  e = year / 100;

  switch ((day + (month+1)*26/10 + j + j/4 + e/4 - 2*e) % 7)
  {
    case 0: weekday_str = "Subota";
    case 1: weekday_str = "Nedelja";
    case 2: weekday_str = "Ponedeljak";
    case 3: weekday_str = "Utorak";
    case 4: weekday_str = "Sreda";
    case 5: weekday_str = "Cetvrtak";
    case 6: weekday_str = "Petak";
  }

  return weekday_str;
}

//Upotreba :
va_SendClientMessage(playerid, 0x95b4a2FF, "Danas je %s", GetWeekDay());[/pawn]
- Opis: Na stranom forumu sam nasao funkciju koja vrati dan u nedelji, tako da sam preveo dane i primenio u svoju korist
- Dodatak: OVO NIJE MOJE!
- Credits: Nemam predstavu
- Slike: Ne trebaju

- Komanda x Funkcija :
[pawn]stock RemovePlayerWeapon(playerid, weaponid)
{
    return SetPlayerAmmo(playerid, weaponid, 0);
}[/pawn]
- Opis: Video sam da mnogi koriste for loop(petlju) koja prolazi kroz svih 13 slotova i get-a pre toga weapon data i onda uporedjuje unutar loop-a ali evo jedna jako jednostavna a brza funkcija :D
- Dodatak: Nisam testirao jer nema baš šta da se testira... :D
- Credits: //
Citat: XunderNebitno koliko god bio dobar i sa tobom Makenzi, Vedranom, Ziletom, Lanijem i ko se vec sve tu proziva moram se sloziti sa Krampom.
Umjesto toga sto se prozivate, ovaj forum bi mogao biti mnogo ljepse mjesto za pocetnike kada bi vi iskusniji usli u normalnu raspravu - podijelite svoj kod i napisite zasto je bolji od koda koji je neko drugi podijelio.


Pa... Hajde da probamo?

- Komanda x Funkcija:

/*
        2019 - ChatBreaker Include v1.0. written by Logan
        08/2020 - v1.1. - Added support for breaking/passing embedded colors in next chat line/row
*/
stock SendSplitMessage(playerid, color, const final[])
{
    new len = strlen(final);
    if(len >= 100)
    {
new buffer[100],
colorstring[9] = EOS, colorstart = 0, colorend = 0,
buffer2[128], spacepos = 0, bool:broken = false;

for(new j = 60; j < len; j++)
{
if(final[j] == '{')
colorstart = j;

if(final[j] == '}')
colorend = j + 1;

if(final[j] == ' ')
spacepos = j;

if(j >= 90 && spacepos >= 60 && (colorstart == 0 || (colorstart != 0 && colorend > colorstart)))
{
broken = true;
if(colorstart != 0 && colorend != 0)
strmid(colorstring, final, colorstart, colorend, sizeof(colorstring));
strmid(buffer, final, 0, spacepos);
format(buffer, sizeof(buffer), "%s...", buffer);
SendClientMessage(playerid, color, buffer);
strmid(buffer2, final, spacepos+1, len);
format(buffer2, sizeof(buffer2), "%s...%s", colorstring, buffer2);
SendClientMessage(playerid, color, buffer2);
return 1;
}
}
if(!broken)
SendClientMessage(playerid, color, final);
}
    else return SendClientMessage(playerid, color, final);
return 1;
}

stock SendSplitMessageToAll(color, const final[])
{
    new len = strlen(final);
    if(len >= 100)
    {
new buffer[100],
colorstring[9] = EOS, colorstart = 0, colorend = 0,
buffer2[128], spacepos = 0, bool:broken=false;

for(new j = 60; j < len; j++)
{
if(final[j] == ' ')
spacepos = j;

if(final[j] == '{')
colorstart = j;

if(final[j] == '}')
colorend = j + 1;

if(j >= 90 && spacepos >= 60 && (colorstart == 0 || (colorstart != 0 && colorend > colorstart)))
{
broken = true;
if(colorstart != 0 && colorend != 0)
strmid(colorstring, final, colorstart, colorend, sizeof(colorstring));
strmid(buffer, final, 0, spacepos);
format(buffer, sizeof(buffer), "%s...", buffer);
SendClientMessageToAll(color, buffer);
strmid(buffer2, final, spacepos+1, len);
format(buffer2, sizeof(buffer2), "%s...%s", colorstring, buffer2);
SendClientMessageToAll(color, buffer2);
return 1;
}
}
if(!broken)
SendClientMessageToAll(color, final);
}
    else return SendClientMessageToAll(color, final);
return 1;
}

stock AC_SendClientMessageToAll(color, const message[])
{
SendSplitMessageToAll(color, message);
return 1;
}
#if defined _ALS_SendClientMessageToAll
    #undef SendClientMessageToAll
#else
    #define _ALS_SendClientMessageToAll
#endif
#define SendClientMessageToAll AC_SendClientMessageToAll

stock AC_SendClientMessage(playerid, color, const message[])
{
SendSplitMessage(playerid, color, message);
return 1;
}
#if defined _ALS_SendClientMessage
    #undef SendClientMessage
#else
    #define _ALS_SendClientMessage
#endif
#define SendClientMessage AC_SendClientMessage


- Opis: ChatBreaker v1.1 lomi SCM(ToAll) stringove duže od 100 znakova u 2 reda, nikada usred riječi, nego traži space da bi slomi od 60tog do 90tog znaka. Ukoliko ih ne nađe, ne razlama se string(što se gotovo nikad ne dešava, pošto su tako duge riječi VRLO rijetke). Prenosi i embedded({ FFFFFF }) boje u sljedeći red ukoliko postoje unutar stringa.

Citat: CoA|Logan poslato Avgust 31, 2020, 18:54:48 POSLE PODNE
- Komanda x Funkcija:

/*
        2019 - ChatBreaker Include v1.0. written by Logan
        08/2020 - v1.1. - Added support for breaking/passing embedded colors in next chat line/row
*/
stock SendSplitMessage(playerid, color, const final[])
{
    new len = strlen(final);
    if(len >= 100)
    {
new buffer[100],
colorstring[9] = EOS, colorstart = 0, colorend = 0,
buffer2[128], spacepos = 0, bool:broken = false;

for(new j = 60; j < len; j++)
{
if(final[j] == '{')
colorstart = j;

if(final[j] == '}')
colorend = j + 1;

if(final[j] == ' ')
spacepos = j;

if(j >= 90 && spacepos >= 60 && (colorstart == 0 || (colorstart != 0 && colorend > colorstart)))
{
broken = true;
if(colorstart != 0 && colorend != 0)
strmid(colorstring, final, colorstart, colorend, sizeof(colorstring));
strmid(buffer, final, 0, spacepos);
format(buffer, sizeof(buffer), "%s...", buffer);
SendClientMessage(playerid, color, buffer);
strmid(buffer2, final, spacepos+1, len);
format(buffer2, sizeof(buffer2), "%s...%s", colorstring, buffer2);
SendClientMessage(playerid, color, buffer2);
return 1;
}
}
if(!broken)
SendClientMessage(playerid, color, final);
}
    else return SendClientMessage(playerid, color, final);
return 1;
}

stock SendSplitMessageToAll(color, const final[])
{
    new len = strlen(final);
    if(len >= 100)
    {
new buffer[100],
colorstring[9] = EOS, colorstart = 0, colorend = 0,
buffer2[128], spacepos = 0, bool:broken=false;

for(new j = 60; j < len; j++)
{
if(final[j] == ' ')
spacepos = j;

if(final[j] == '{')
colorstart = j;

if(final[j] == '}')
colorend = j + 1;

if(j >= 90 && spacepos >= 60 && (colorstart == 0 || (colorstart != 0 && colorend > colorstart)))
{
broken = true;
if(colorstart != 0 && colorend != 0)
strmid(colorstring, final, colorstart, colorend, sizeof(colorstring));
strmid(buffer, final, 0, spacepos);
format(buffer, sizeof(buffer), "%s...", buffer);
SendClientMessageToAll(color, buffer);
strmid(buffer2, final, spacepos+1, len);
format(buffer2, sizeof(buffer2), "%s...%s", colorstring, buffer2);
SendClientMessageToAll(color, buffer2);
return 1;
}
}
if(!broken)
SendClientMessageToAll(color, final);
}
    else return SendClientMessageToAll(color, final);
return 1;
}

stock AC_SendClientMessageToAll(color, const message[])
{
SendSplitMessageToAll(color, message);
return 1;
}
#if defined _ALS_SendClientMessageToAll
    #undef SendClientMessageToAll
#else
    #define _ALS_SendClientMessageToAll
#endif
#define SendClientMessageToAll AC_SendClientMessageToAll

stock AC_SendClientMessage(playerid, color, const message[])
{
SendSplitMessage(playerid, color, message);
return 1;
}
#if defined _ALS_SendClientMessage
    #undef SendClientMessage
#else
    #define _ALS_SendClientMessage
#endif
#define SendClientMessage AC_SendClientMessage


- Opis: ChatBreaker v1.1 lomi SCM(ToAll) stringove duže od 100 znakova u 2 reda, nikada usred riječi, nego traži space da bi slomi od 60tog do 90tog znaka. Ukoliko ih ne nađe, ne razlama se string(što se gotovo nikad ne dešava, pošto su tako duge riječi VRLO rijetke). Prenosi i embedded({ FFFFFF }) boje u sljedeći red ukoliko postoje unutar stringa.
Sve top samo else if umesto if
Citat: XunderNebitno koliko god bio dobar i sa tobom Makenzi, Vedranom, Ziletom, Lanijem i ko se vec sve tu proziva moram se sloziti sa Krampom.
Umjesto toga sto se prozivate, ovaj forum bi mogao biti mnogo ljepse mjesto za pocetnike kada bi vi iskusniji usli u normalnu raspravu - podijelite svoj kod i napisite zasto je bolji od koda koji je neko drugi podijelio.


Pa... Hajde da probamo?

Citat: King of the Jungle poslato Avgust 31, 2020, 18:59:07 POSLE PODNE
Sve top samo else if umesto if
U pravu si, na brzaka sam pisao pa ono. Uglavnom kod testiran i funkcionira :)

VaÅ¡e ime na forumu:  Nodze
Komanda x Funkcija : Ping / FPS
[pawn]
#include <a_samp>
#include <YSI\y_timers>

new pDrunkLevelLast[MAX_PLAYERS];
new pFPS[MAX_PLAYERS];
new Text3D:PlayerLabel[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    pDrunkLevelLast[playerid] = 0;
    pFPS[playerid] = 0;
    PlayerLabel[playerid] = Create3DTextLabel("_", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(PlayerLabel[playerid], playerid, 0.0, 0.0, 0.75);
}

public OnPlayerDisconnect(playerid)
{
    Delete3DTextLabel(PlayerLabel[playerid]);
    return 1;
}

ptask asdasd[1000](playerid)
{
    new drunknew;
    drunknew = GetPlayerDrunkLevel(playerid);

    if (drunknew < 100)
    {
        SetPlayerDrunkLevel(playerid, 2000);
    }
    else
    {
        if (pDrunkLevelLast[playerid] != drunknew)
        {
            new wfps = pDrunkLevelLast[playerid] - drunknew;
            if ((wfps > 0) && (wfps < 200))
                pFPS[playerid] = wfps;
            pDrunkLevelLast[playerid] = drunknew;
        }
    }

    //FPS/Ping
    static tmp[128];
    format(tmp, sizeof(tmp), "{FFFF00}FPS: {FF0000}%i\n{FFFF00}Ping: {FF0000}%i", pFPS[playerid], GetPlayerPing(playerid));
    Update3DTextLabelText(PlayerLabel[playerid], 0xFFFFFFFF, tmp);
    return 1;
}[/pawn]
Opis: FPS i PING (3D Text Label) , Lijepo za RP ili TDM
Dodatak:
Credits: Nodze

- Slike: Ne trebaju
Poslednja Izmena: Oktobar 09, 2022, 00:37:12 PRE PODNE od Nodze

Gamemod: Spotify Community
Owner: Nodze ( Dzenan Levic )

- Vaše ime na forumu: Spejs
- Komanda x Funkcija :
[pawn]IsVehicleOccupied(vehicleid)
{
    foreach (new i : VehicleOccupant[vehicleid]) {
        return true;
    }
    return false;
}[/pawn]
- Opis: Vraća true ako je neko u vozilu (kao (su)vozač), false ako nije.
- Dodatak: Potrebna poslednja verzija YSIa
- Credits: Y_Less
Poslednja Izmena: Januar 04, 2023, 17:39:14 POSLE PODNE od Spejs

Konvertovanje broja mnogo krace  ;D
[pawn]FormatMoney(money)
{
    new str[24],i;valstr(str,money),i=(money > 0) ? strlen(str)-3 : strlen(str)-4;
    for(; i>0; i-=3) strins(str,".",(money > 0) ? i : i+1,24);
    return str;
}[/pawn]

Citat: Fergosonn poslato Januar 04, 2023, 21:57:22 POSLE PODNE
Konvertovanje broja mnogo krace  ;D
[pawn]FormatMoney(money)
{
    new str[24],i;valstr(str,money),i=(money > 0) ? strlen(str)-3 : strlen(str)-4;
    for(; i>0; i-=3) strins(str,".",(money > 0) ? i : i+1,24);
    return str;
}[/pawn]
ili
https://github.com/thecodeah/pawn-humanize

- Vaše ime na forumu: Spejs
- Komanda x Funkcija :
[pawn]Float:GetVehicleSpeed(vehicleid, bool:kmh = true)
{
    new
        Float:vx,
        Float:vy,
        Float:vz,
        Float:speed;
       
    if(!GetVehicleVelocity(vehicleid, vx, vy, vz))
        return 0.0;

    speed = VectorSize(vx, vy, vz);
   
    return kmh ? floatround(speed * 195.12) : floatround(speed * 121.30);
}[/pawn]
- Opis: Brzina vozila u km/h iki mp/h

Citat: Spejs poslato Januar 06, 2023, 14:14:11 POSLE PODNE
- Vaše ime na forumu: Spejs
- Komanda x Funkcija :
[pawn]Float:GetVehicleSpeed(vehicleid, bool:kmh = true)
{
    new
        Float:vx,
        Float:vy,
        Float:vz,
        Float:speed;
       
    if(!GetVehicleVelocity(vehicleid, vx, vy, vz))
        return 0.0;

    speed = VectorSize(vx, vy, vz);
   
    return kmh ? floatround(speed * 195.12) : floatround(speed * 121.30);
}[/pawn]
- Opis: Brzina vozila u km/h iki mp/h
Fali ti tajmer od 1ms


- Vaše ime na forumu: deksyseksy emmett wajt
- Komanda x Funkcija :[pawn]stock SplitPlayerName(const playerid, const part[] = "name" /* part = name/lastname */)
{
   new
      name[MAX_PLAYER_NAME],
      option;

   GetPlayerName(playerid, name, sizeof(name));
   option = (!strcmp(part, "name", false) ? 1 : !strcmp(part, "lastname", false) ? 2 : 0xFFFF);

   for (new i = 0; i < sizeof(name); i++)
   {
      if (name == "_") // ovde umesto navodnika stavite apostrof
         strdel(name, option == 1 ? i : -1, option == 1 ? sizeof(name) - 1 : i);
   }
   return name;
}[/pawn]
- Opis: Odvoji igracevo ime od '_'
- Dodatak: //
- Credits: //

- Slike://

Koristi se npr:
Moje ime na serveru je Emmett_White
[pawn]SplitPlayerName(playerid, "lastname");[/pawn]
izlaz: White
[pawn]SplitPlayerName(playerid, "name");[/pawn]
izlaz: Emmett
najjaci skripter

Citat: deksyseksy (mozda emmett?) poslato Februar 28, 2023, 22:23:31 POSLE PODNE
- Vaše ime na forumu: deksyseksy emmett wajt
- Komanda x Funkcija :[pawn]stock SplitPlayerName(const playerid, const part[] = "name" /* part = name/lastname */)
{
   new
      name[MAX_PLAYER_NAME],
      option;

   GetPlayerName(playerid, name, sizeof(name));
   option = (!strcmp(part, "name", false) ? 1 : !strcmp(part, "lastname", false) ? 2 : 0xFFFF);

   for (new i = 0; i < sizeof(name); i++)
   {
      if (name == "_") // ovde umesto navodnika stavite apostrof
         strdel(name, option == 1 ? i : -1, option == 1 ? sizeof(name) - 1 : i);
   }
   return name;
}[/pawn]
- Opis: Odvoji igracevo ime od '_'
- Dodatak: //
- Credits: //

- Slike://

Koristi se npr:
Moje ime na serveru je Emmett_White
[pawn]SplitPlayerName(playerid, "lastname");[/pawn]
izlaz: White
[pawn]SplitPlayerName(playerid, "name");[/pawn]
izlaz: Emmett
https://github.com/pawn-lang/YSI-Includes/blob/5.x/YSI_Core/y_utils/y_utils_names.inc

a ne, ovo nema name surname, mb, mislio sam da ima njtf
Poslednja Izmena: Februar 28, 2023, 22:28:48 POSLE PODNE od Spejs