Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Bilsen_Jahjagic poslato April 09, 2013, 13:55:26 POSLE PODNE

Naslov: Mask
Poruka od: Bilsen_Jahjagic poslato April 09, 2013, 13:55:26 POSLE PODNE
Skripta koju koristim: nzm tacno
Detaljan opis problema: Zelio bih da napravim kad igrac stavi masku pise njegov id i pored tog pise maskiran i da je tako kad neko stisne tab.I da se to ime ne sacuvava u users i nakon restarta se vrati igracu pravo ime!
Dio skripte: if(strcmp(cmd, "/maskon", true) == 0) // by Ellis
{
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMask] == 0)
    {
         SendClientMessage(playerid, COLOR_GRAD1, "   Nemate masku");
         return 1;
    }
    if(AdminDuty[playerid] == 1 || GmDuty[playerid] == 1)
    {
         SendClientMessage(playerid, COLOR_WHITE, "[GRESKA] Ne mozete koristiti masku dok ste na duznosti !");
         return 1;
    }
    if(PlayerInfo[playerid][pLevel] < 3)
    {
        SendClientMessage(playerid, COLOR_GRAD1, "  Niste u mogucnosti da je koristite.");
        return 1;
    }
foreach (Player, i)
{
    ShowPlayerNameTagForPlayer(i, playerid, 0); //%d //ShowPlayerNameTagForPlayer(i, playerid, 0);
}
PlayerInfo[playerid][pMaskuse] = 1;
SendClientMessage(playerid, COLOR_WHITE, "Stavili ste vasu masku [/maskoff da je skinete].");
SetPlayerAttachedObject(playerid, 2, 18911, 2,0.078534, 0.041857, -0.001727, 268.970458, 1.533374, 269.223754);
GetPlayerName(playerid, sendername, sizeof(sendername));
  format(string, sizeof(string), "* %s stavlja masku.", sendername);
  ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
return 1;
}
if(strcmp(cmd, "/maskoff", true) == 0) // by Ellis
{
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMask] == 0)
    {
        SendClientMessage(playerid, COLOR_GRAD1, "   Nemate masku");
        return 1;
    }
    if(PlayerInfo[playerid][pLevel] < 3)
    {
        SendClientMessage(playerid, COLOR_GRAD1, "   Niste u mogucnosti da je koristite.");
        return 1;
    }
foreach (Player, i)
{
    ShowPlayerNameTagForPlayer(i, playerid, 1);
}
PlayerInfo[playerid][pMaskuse] = 0;
            RemovePlayerAttachedObject(playerid,2);
SendClientMessage(playerid, COLOR_WHITE, "Skinuli ste masku [/maskon da je opet stavite].");
GetPlayerName(playerid, sendername, sizeof(sendername));
      format(string, sizeof(string), "* %s skida masku.", sendername);
      ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
return 1;
}

Neke slike/video:/
Naslov: Odg: Mask
Poruka od: Bilsen_Jahjagic poslato April 09, 2013, 19:20:08 POSLE PODNE
Jel zna neko ?
Naslov: Odg: Mask
Poruka od: pax95 poslato April 09, 2013, 21:30:39 POSLE PODNE
Jednostavno koristi: http://wiki.sa-mp.com/wiki/SetPlayerName
Samo pre nego sto promenis ime igracu njegovo ime zapamti (moras zapamtiti) i onda na disconnectu prvo isto pomocu SetPlayerName vratis staro ime da bi sacuvao dobro. I ako jos negde imas cuvanje (a imas sigurno) tamo isto moras dodati tu naznaku ako igrac ima masku da koristis to ime koje si zapamtio na neku promenljivu da ti nebi kreirao novi fajl. I ako nista nisi skontao reci (a verovatno nisi ukapirao) :D
Naslov: Odg: Mask
Poruka od: --Lood-- poslato April 09, 2013, 23:35:38 POSLE PODNE
brt mzes ti to odradit ali moja preporuka ti je da kada se igrac disconectuje vrati staro ime ili vise ce biti rp kada igrac umre da mu se vrati staro ime..ili kad se spawna ..Znaci ja ti predlazem nesto od ovoga 3 da uzmes..evo ja cu kada se spawna
Jer ako uradist tako kosto ti oces imaces porblema sa ucitavanjem accova :)

Evo kako bi ja to uradio pa sada ti razmisli

new staroime[MAX_PLAYERS][24];


if(strcmp(cmd, "/maskon", true) == 0) // by Ellis
{
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMask] == 0)
    {
         SendClientMessage(playerid, COLOR_GRAD1, "   Nemate masku");
         return 1;
    }
    if(AdminDuty[playerid] == 1 || GmDuty[playerid] == 1)
    {
         SendClientMessage(playerid, COLOR_WHITE, "[GRESKA] Ne mozete koristiti masku dok ste na duznosti !");
         return 1;
    }
    if(PlayerInfo[playerid][pLevel] < 3)
    {
        SendClientMessage(playerid, COLOR_GRAD1, "  Niste u mogucnosti da je koristite.");
        return 1;
    }
foreach (Player, i)
{
    ShowPlayerNameTagForPlayer(i, playerid, 0); //%d //ShowPlayerNameTagForPlayer(i, playerid, 0);
}
PlayerInfo[playerid][pMaskuse] = 1;
SendClientMessage(playerid, COLOR_WHITE, "Stavili ste vasu masku [/maskoff da je skinete].");
SetPlayerAttachedObject(playerid, 2, 18911, 2,0.078534, 0.041857, -0.001727, 268.970458, 1.533374, 269.223754);
GetPlayerName(playerid, sendername, sizeof(sendername));
strmid(staroime, sendername, 0, strlen(sendername), 255);
new randbr=5555+random(99999);
new istr[24];
format(istr, sizeof(istr), "Maskiran_%d" randbr);//ovde broj ide zato da ti se nebi zbgali accovi :)
SetPlayerName(playerid, istr);

  format(string, sizeof(string), "* %s stavlja masku.", sendername);
  ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
return 1;
}
if(strcmp(cmd, "/maskoff", true) == 0) // by Ellis
{
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMask] == 0)
    {
        SendClientMessage(playerid, COLOR_GRAD1, "   Nemate masku");
        return 1;
    }
    if(PlayerInfo[playerid][pLevel] < 3)
    {
        SendClientMessage(playerid, COLOR_GRAD1, "   Niste u mogucnosti da je koristite.");
        return 1;
    }
foreach (Player, i)
{
    ShowPlayerNameTagForPlayer(i, playerid, 1);
}
PlayerInfo[playerid][pMaskuse] = 0;
            RemovePlayerAttachedObject(playerid,2);
SendClientMessage(playerid, COLOR_WHITE, "Skinuli ste masku [/maskon da je opet stavite].");
GetPlayerName(playerid, sendername, sizeof(sendername));
      format(string, sizeof(string), "* %s skida masku.", sendername);
SetPlayerName(playerid, staroime);
      ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
return 1;
}


onplayerspawn

if(PlayerInfo[playerid][pMaskuse] == 1)
{
SetPlayerName(playerid, staroime);
PlayerInfo[playerid][pMaskuse] = 0;
}

Naslov: Odg: Mask
Poruka od: Bilsen_Jahjagic poslato April 10, 2013, 16:17:49 POSLE PODNE
Lood upravo to i zelim ali u tvom kodu nema nikakavih komandi za promjenu imena
Naslov: Odg: Mask
Poruka od: --Lood-- poslato April 10, 2013, 16:55:56 POSLE PODNE

SetPlayerName(playerid, istr);
? :)