Mask

Započeo Bilsen_Jahjagic, April 09, 2013, 13:55:26 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Bilsen_Jahjagic

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:/

Bilsen_Jahjagic


pax95

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

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;
}


Bilsen_Jahjagic

Lood upravo to i zelim ali u tvom kodu nema nikakavih komandi za promjenu imena