Balkan SA:MP

San Andreas Multiplayer - www.sa-mp.com => Tutorijali u vezi SA-MPa => Temu započeo: #CrniSkripter poslato Decembar 18, 2021, 14:26:56 POSLE PODNE

Naslov: Komanda /cc
Poruka od: #CrniSkripter poslato Decembar 18, 2021, 14:26:56 POSLE PODNE
Ovo je Clear Chat Sistem moj koji sam napravio sam bez gledanja od drugih servera nadam se da ce nekima posluziti...

1. Idite gde vam je #define i kucajte:
[pawn]#define SCMTA          SendClientMessageToAll
#define SCM          SendClientMessage
#define COLOR_RED      0xAA3333AA
#define COLOR_BLUE     0x0000BBAA[/pawn]

2. Trebate dodati stock:
[pawn]stock OcistioChat(playerid)
{
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   new string[268], frmstring[128], pName[MAX_PLAYER_NAME], status[20];
    if(PlayerInfo[playerid][pAdmin] == 4) status = "Admin Level 4";
    else if(PlayerInfo[playerid][pAdmin] == 5) status = "Head Admin";
    else if(PlayerInfo[playerid][pAdmin] == 6) status = "Vlasnik";
    else if(PlayerInfo[playerid][pAdmin] == 1337) status = "Skripter";
   GetPlayerName(playerid, pName, sizeof(pName));
   format(string, sizeof(string), "{ffff00}(( {ffffff}%s {bebebe}%s {ffffff}je osistio chat. {ffff00}))", status, pName);
   format(frmstring, sizeof(frmstring), "{ffff00}(( {ffffff}Forum : www.uskoro.com (http://www.uskoro.com) {ffff00}))");
   SCMTA(-1, string);
   SCMTA(-1, frmstring);
   return 1;
}[/pawn]

I zadnji korak je da napravite komandu:
[pawn]CMD:clearchat(playerid, params[]) return cmd_cc(playerid, params);
CMD:ocistichat(playerid, params[]) return cmd_cc(playerid, params);
CMD:cc(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 4) return SCM(playerid, COLOR_RED, "[SERVER]: {bebebe}Nemate dozvolu da koristite ovu komandu!");
    OcistioChat(playerid);
    SCM(playerid, COLOR_BLUE, "[SERVER]: {bebebe}Uspesno ste ocistili chat!");
   return 1;
}[/pawn]

Ako vam se svideo tutorijal komentarisite i ako nadjete negde gresku javite, ako hocete jos komandi takodjer javite
Naslov: Odg: Komanda /cc
Poruka od: noddy_ poslato Decembar 18, 2021, 15:05:45 POSLE PODNE
qrcu nevalja(pocetnicima ce posluziti)

Zasto raditi ovo

[pawn]stock OcistioChat(playerid)
{
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   SCMTA(-1, " ");
   new string[268], frmstring[128], pName[MAX_PLAYER_NAME], status[20];
    if(PlayerInfo[playerid][pAdmin] == 4) status = "Admin Level 4";
    else if(PlayerInfo[playerid][pAdmin] == 5) status = "Head Admin";
    else if(PlayerInfo[playerid][pAdmin] == 6) status = "Vlasnik";
    else if(PlayerInfo[playerid][pAdmin] == 1337) status = "Skripter";
   GetPlayerName(playerid, pName, sizeof(pName));
   format(string, sizeof(string), "{ffff00}(( {ffffff}%s {bebebe}%s {ffffff}je osistio chat. {ffff00}))", status, pName);
   format(frmstring, sizeof(frmstring), "{ffff00}(( {ffffff}Forum : www.uskoro.com (http://www.uskoro.com) {ffff00}))");
   SCMTA(-1, string);
   SCMTA(-1, frmstring);
   return 1;
}[/pawn]

Kada mozes ovo

[pawn]

stock ClearChat( ) {
    for(new i = 0; i < 36; i++)
    {
        SendClientMessageToAll(-1, " ");
    }
    SendClientMessagToAll(-1, "{737BE1}www.server-name.cf{FFFFFF}Chat Ociscen!);
}

[/pawn]
Naslov: Odg: Komanda /cc
Poruka od: realplaya poslato Decembar 18, 2021, 15:55:01 POSLE PODNE
sta je ovo?

nisi nigde napomenuo da je za ovo potreban zcmd. Nigde nema definisan pAdmin, takodje skracenice ti nisu potrebne. Uradi ovo sto je Nodi rekao, zasto imati 50 linija kad moze samo 3? To se takodje moze uraditi sve u jednoj liniji, samo malo razmisli. Poradi na imenovanju, vise o tome mozes pronaci na open.mp/docs pa citaj.

[pawn]"{ffff00}(( {ffffff}Forum : www.uskoro.com (http://www.uskoro.com) {ffff00}))"[/pawn]sta je ovo?

A i ovo nije nikakav tutorijal, napravio si jednu funkciju i jednu komandu.. Zasto si ovde objavio? I momak, sta ti je sa imenom? #CrniSkripter?
Naslov: Odg: Komanda /cc
Poruka od: PazzOnee poslato Decembar 18, 2021, 16:48:40 POSLE PODNE
"Trebate dodati stock"
Idiot ne zna ni cemu sluzi stock
Naslov: Odg: Komanda /cc
Poruka od: index poslato Decembar 18, 2021, 17:36:25 POSLE PODNE
#define DeleteChatPage(%0,%1)  for(new i = 0; lines < %1; lines++) SendClientMessage(%0, -1, " ")


...
Naslov: Odg: Komanda /cc
Poruka od: Fr0z3n poslato Decembar 25, 2021, 00:31:47 PRE PODNE
Evo i ja da budem kvazi skripter :D

[pawn]CMD:cc( playerid, params[] ) {

    #pragma unused params

    static const
        str[] = !#;

    new i = 100;

    __emit   push.c      str;
    __emit   push.S      0;
    __emit   push.S      playerid;
    __emit   push.c      12;

    do {

        __emit sysreq.c SendClientMessage;
    }

    while(--i);

    __emit stack 16;

    return
        SendClientMessage(playerid, -1, "Chat Ociscen!");
}[/pawn]
Naslov: Odg: Komanda /cc
Poruka od: index poslato Decembar 25, 2021, 00:42:48 PRE PODNE
Citat: Fr0z3n poslato Decembar 25, 2021, 00:31:47 PRE PODNE
Evo i ja da budem kvazi skripter :D

[pawn]CMD:cc( playerid, params[] ) {

    #pragma unused params

    static const
        str[] = !#;

    new i = 100;

    __emit   push.c      str;
    __emit   push.S      0;
    __emit   push.S      playerid;
    __emit   push.c      12;

    do {

        __emit sysreq.c SendClientMessage;
    }

    while(--i);

    __emit stack 16;

    return
        SendClientMessage(playerid, -1, "Chat Ociscen!");
}[/pawn]
cemu to kada mozes sve to napraviti sa jednom linijom?
Naslov: Odg: Komanda /cc
Poruka od: Fr0z3n poslato Decembar 25, 2021, 00:53:31 PRE PODNE
Stabilnije, Optimizovanije, kada treba da se vrsi loop kroz ceo server mnogo je bitnije da ima "stabilni" kod nego da stedim na desetak linija
Naslov: Odg: Komanda /cc
Poruka od: index poslato Decembar 25, 2021, 01:08:37 PRE PODNE
Citat: Fr0z3n poslato Decembar 25, 2021, 00:53:31 PRE PODNE
Stabilnije, Optimizovanije, kada treba da se vrsi loop kroz ceo server mnogo je bitnije da ima "stabilni" kod nego da stedim na desetak linija
Pricamo o stabilnosti i optimizaciji a i dalje je najakutelniji mod na balkanu SM/ATH/MW/VIBE - SA/UP?  :-*
Naslov: Odg: Komanda /cc
Poruka od: Fr0z3n poslato Decembar 25, 2021, 01:15:23 PRE PODNE
To nije moj problem.
Naslov: Odg: Komanda /cc
Poruka od: // xunder poslato Decembar 25, 2021, 02:08:47 PRE PODNE
Citat: Fr0z3n poslato Decembar 25, 2021, 00:31:47 PRE PODNE
Evo i ja da budem kvazi skripter :D

[pawn]CMD:cc( playerid, params[] ) {

    #pragma unused params

    static const
        str[] = !#;

    new i = 100;

    __emit   push.c      str;
    __emit   push.S      0;
    __emit   push.S      playerid;
    __emit   push.c      12;

    do {

        __emit sysreq.c SendClientMessage;
    }

    while(--i);

    __emit stack 16;

    return
        SendClientMessage(playerid, -1, "Chat Ociscen!");
}[/pawn]

Vrlo slicno onome sto je Cortez napisao prije 5 godina ako ne i vise.


==========================================
|                                        |
|         STARTING PROFILINGS...         |
|                                        |
==========================================

Timing "EmitCC"...
          Mean = 15798.00ns
          Mode = 15798.00ns
        Median = 15798.00ns
         Range = 0.00ns

Timing "LoopCC"...
          Mean = 19382.00ns
          Mode = 19382.00ns
        Median = 19382.00ns
         Range = 0.00ns

*** Profilings: 2

==========================================
|                                        |
|          PROFILINGS COMPLETE!          |
|                                        |
==========================================

*** Time: 35181ms


Cestitam, ustedio si 3584ns sto je 0.003584ms.

Citat: Fr0z3n poslato Decembar 25, 2021, 00:53:31 PRE PODNE
Stabilnije, Optimizovanije, kada treba da se vrsi loop kroz ceo server mnogo je bitnije da ima "stabilni" kod nego da stedim na desetak linija

Stabilnije? Nije.
Optimizovanije? Ne, rijec za to je mikro optimizovanije.
Naslov: Odg: Komanda /cc
Poruka od: BoTa poslato Januar 26, 2022, 01:38:07 PRE PODNE
dobro je :D
Naslov: Odg: Komanda /cc
Poruka od: Shakur. poslato Januar 26, 2022, 09:55:24 PRE PODNE
Ne kontam svrhu ovoga, Ne treba ti 100 linija "praznih" kada mozes to staviti u par linija, nisi definisao nigdje ovo " pAdmin" , za sta ti sluzi ovo [url] ?
Ako si pocetnik nije lose, ali ne mozes to tako raditi...
Pohvale za trud, jer nije kao na SA/UP/BS/ATH moda..
3/10
Naslov: Odg: Komanda /cc
Poruka od: Bit Frosty poslato Januar 30, 2022, 10:05:46 PRE PODNE
Citat: Fr0z3n poslato Decembar 25, 2021, 00:53:31 PRE PODNE
Stabilnije, Optimizovanije, kada treba da se vrsi loop kroz ceo server mnogo je bitnije da ima "stabilni" kod nego da stedim na desetak linija
Postoji granica kod optimizacije kada se ona vise ne isplati i postaje nepotrebna glavobolja. Onaj emit je jedan od primera. Ako mi ne verujes uzmi za primer y_va koji je Y_Less napravio bas iz tog razloga sto pisati masinski kod je jako nesigurno zbog ljudskog faktora.
Slazem se sa time da nekada je bolje uzeti stvar u svoje ruke i optimizovati neke stvari rucno zato sto compiler nemoze (obican ili JIT nebitno). Ali to se ne radi sa funkcijama koje ce biti pozvane jednom dnevno nego sa onima koje su pozvane nekoliko puta u sekundi, zato jedino tu mozes da osetis neku razliku.
Naslov: Odg: Komanda /cc
Poruka od: .ysi poslato Januar 30, 2022, 11:24:02 PRE PODNE
Citat: PazzOnee poslato Decembar 18, 2021, 16:48:40 POSLE PODNE
"Trebate dodati stock"
Idiot ne zna ni cemu sluzi stock
Bitno je da ti znas,momak se potrudio,a ti ga tu blatis...