Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Debug poslato Januar 02, 2025, 17:53:45 POSLE PODNE

Naslov: Pomoc oko Admin Duty IC Chat-a.
Poruka od: Debug poslato Januar 02, 2025, 17:53:45 POSLE PODNE
Pitanje/savet*: Pitanje.
Opis*: Potrebna mi je pomoc oko IC Chata kada idem na /adminduty, da mi se promjeni i boja IC Chata u koji pisem. A kada skinem /adminduty da se vrati normalna bijela boja IC Chata.
Dodatne informacije: ///
Naslov: Odg: Pomoc oko Admin Duty IC Chat-a.
Poruka od: MaEsTrOo poslato Januar 02, 2025, 18:50:39 POSLE PODNE
Koliko sam te skontao
Kod provjere kad palis duty dodaj SetPlayerColor(playerid, 0xFF0000FF);
Naslov: Odg: Pomoc oko Admin Duty IC Chat-a.
Poruka od: Debug poslato Januar 02, 2025, 18:58:17 POSLE PODNE
Kad sam na Duty i kad napisem nesto da mi pise ovako IC Chat: https://imgur.com/a/Mo0ktvG
A kad nisam na Duty da pise ovako samo bijelo: https://imgur.com/a/ecMh4R3
Nadam se da je sada jasnije sta zelim :D
Naslov: Odg: Pomoc oko Admin Duty IC Chat-a.
Poruka od: V01D poslato Januar 02, 2025, 19:48:25 POSLE PODNE
public OnPlayerText(playerid, text[]) {

if(adminDuty[playerid]) { //proveravamo da li ne duty

new str[128]; //deklrisemo promenljivu koja ce da cuva kompletan tekst
format(str, sizeof(str), "(( Admin %s: {FFFFFF}%s {1C76FC}))", ImeIgraca(playerid), text); //formatiramo tekst onako kako hocemo
//funkcija ImeIgraca je da izvuce ime igraca na osnovu ID-a, ostavicu dole primer

PorukaRadius(25.0, playerid, str, 0x1C76FCFF); //Funkcija koja salje poruku svim igracima koji su u range-u, isto kao ProxDetector
//U nju unosimo sledece argumente ( range, ime igraca koji salje poruku, poruku koju salje, boja teksta)

return 0; //vracamo 0 da ne bi poslalo jos jednu poruku
}

return 1;
}

PorukaRadius( Float:radi, playerid, string[ ], col1) //ovo je sama funkcija, izvucena iz SM moda
{
if(IsPlayerConnected( playerid ) ) //proveravamo da li je playerid(onaj koji salje poruku) connect-ovan
{
foreach( Player, i ) { //ove koristimo loop kroz sve igrace koristeci y_iterate, mada mozes i klasican for(new i = 0; i < MAX_PLAYERS; i++)...
            if( IsPlayerNearPlayer( 25.0, playerid, i ) ) { //ostavicu dole ovu funkciju, proverava da li se igrac nalazi u odredjenom range-u drugog igraca
                SendClientMessage( i, col1, string ); //posalje poruku
            }
        }
}
return 1;
}

ImeIgraca( id ) { //funkcija koja vraca string ime igraca na osnovu id-a
new ime[ 32 ];
GetPlayerName( id, ime, sizeof ime);
return ime;
}

IsPlayerNearPlayer(Float:radi, playerid, targetid) //ukradena funkcija koja proverava da li je neki igrac u range-u drugog igraca ( range navodimo mi )
{
    if( IsPlayerConnected( playerid ) && IsPlayerConnected( targetid ) ) {
    if( GetPlayerVirtualWorld( playerid ) == GetPlayerVirtualWorld( targetid ) ) {

new Float:posx,
    Float:posy,
Float:posz,
    Float:oldposx,
Float:oldposy,
Float:oldposz,
    Float:tempposx,
Float:tempposy,
Float:tempposz;

GetPlayerPos( playerid, oldposx, oldposy, oldposz);

GetPlayerPos(targetid, posx, posy, posz);
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);

if(((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
}
}
return 0;
}

ovo je neki primer kako bi trebalo da radi, nije najbolje ali klasicno nesto
Naslov: Odg: Pomoc oko Admin Duty IC Chat-a.
Poruka od: markosimic poslato Januar 02, 2025, 20:34:44 POSLE PODNE
Uradi proveru ako admin salje poruku da izadje sa bojom koji zelis, prosto i jednostavno.
Naslov: Odg: Pomoc oko Admin Duty IC Chat-a.
Poruka od: Debug poslato Januar 02, 2025, 21:16:17 POSLE PODNE
Hvala na pomoci fixo sam.