Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4353 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

(redaguota)

Kuriant aikštelių sistemą iškilo bėda, parašius komanda /aiksteles ir įvedus nick'ą viskas gerai veikia, bet kai prisijungia kitas žaidėjas pranyksta tekstas.
Kraunu [ onplayerconnect ]

    new file[MAX_PLAYER_NAME+8];
    GetPlayerName(playerid,file,sizeof(file));
    format(file,sizeof(file),"%s",playerDB[playerid][savininkasaiksteles]);
    dini_Get(file,"Savininkas");
    new string[200];
    format( string, sizeof(string),"{ff9900}Aikðtelës savininkas: {808080}%s", playerDB[playerid][savininkasaiksteles]);
    Update3DTextLabelText(test, -1, string);

Saugau [onplayerdisconnect]

   new file[MAX_PLAYER_NAME+12];
   GetPlayerName(playerid,file,sizeof(file));
   format(file,sizeof(file),"%s",playerDB[playerid][savininkasaiksteles]);
   dini_Set(file,"Savininkas",playerDB[playerid][savininkasaiksteles]);

Paskyrimo komanda:
 

    new name[MAX_PLAYER_NAME],msg[128],msgs[70];
    strmid(name,inputtext,0,sizeof(name));
    new id = GetPlayeridMid(name);
    if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0x33CCFFAA, "þaidejas neprisijunges");
    GetPlayerName(id,name,sizeof(name));
    format(msg,sizeof(msg),"{ff9900}Gavote aikðtelæ {808080}[ 1 ] {ff9900}!");
    SendClientMessage(id,Raudona,msg);
    format(msgs,sizeof(msgs),"{ff9900}Davëte aikðtelæ {808080}[ 1 ] [%s] {ff9900}!",name);
    SendClientMessage(playerid,Raudona,msgs);
    new file[100];
     format(file,sizeof(file),"%s", name);
     if(!fexist(file)) dini_Create(file);
     dini_Set(file,"Savininkas",playerDB[id][savininkasaiksteles]);
    new string[200];
    format( string, sizeof(string),"{ff9900}Aikðtelës savininkas: {808080}%s", name);
    Update3DTextLabelText(test, -1, string);

Žinau kad, gali būt daug klaidų, nesu dirbęs su 3dtextlabeliais...

Redaguota , nario Conver*

Pradėjau skaityt kodą... ir... tiesiog... neturiu ką pasakyt

new file[MAX_PLAYER_NAME+8];
    GetPlayerName(playerid,file,sizeof(file));
    format(file,sizeof(file),"%s",playerDB[playerid][savininkasaiksteles]);
    dini_Get(file,"Savininkas");

... Sukuri kintamąjį, gauni žaidėjo vardą į jį. Normalu. Tada perrašai tą string į playerDB[playerid][savininkasaiksteles] ir galiausiai naudoji dini_Get kad gautum string be niekur jo neįrašai....

 

 

Gal geriau plačiai aprašyk ką nori padaryt ir tikėkis kad kas nors padarys... Nes tavo kodas visiškai nelogiškas.

Reikia Pawn pagalbos? Skype nerašyk.

 

 

 

 

 

 

#if !defined isnull
     #define isnull(%1) \
                ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
#endif

#define DIALOG_AIKSTELES_PAVADINIMAS 2313
#define AIKSTELES_SAVININKO_FAILAS    "aiksteles_savininkas.txt"

// Globalūs kintamieji
new Text3D:AikstelesLabel;

public OnGameModeInit()
{
     KrautiAikstelesSavininka();
}

CMD:naujaspavadinimas(playerid)
{
    ShowPlayerDialog(playerid,DIALOG_AIKSTELES_PAVADINIMAS,DIALOG_STYLE_INPUT,"Keitimas","Iveskite nauja savininka","Keisti","Iseiti");
    return 1;
}

public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
{
   if(dialogid == DIALOG_AIKSTELES_PAVADINIMAS && response)
   {
      if(isnull(inputtext)) return SendClientMessage(playerid,0xFF0000FF,"Pamirsote ivesti teksta"); 
      // Dar galima pakoreguoti kad butinai prisijungusi zaideja ivestu ar pns.
      fremove(AIKSTELES_SAVININKO_FAILAS); 
      new File:failas = fopen(AIKSTELES_SAVININKO_FAILAS,io_append);
      if(file)
      {
          fwrite(failas, inputtext);
          fclose(failas);
      } 
      Delete3DTextLabel(AikstelesLabel);
      KrautiAikstelesSavininka();
      SendClientMessage(playerid,0xFF0000FF,"Savininkas pakeistas");
      return 1;
   }
   return 0;  
}

KrautiAikstelesSavininka()
{
    if(!fexist(AIKSTELES_SAVININKO_FAILAS))
    {
        AikstelesLabel = Create3DTextLabel("Aiksteles savininko nera",0xFF0000FF,0.0,0.0,0.0,30.0,-1,1);
    }
    new File:failas = fopen(AIKSTELES_SAVININKO_FAILAS,io_read);
     if(file)
     {
        new string[128];
        while(fread(failas,string)) // Sis ciklas leis perskaityti VISA faila
        {
            StripNewLine(string); // funkcija pridėjau žemiau. Ji pašalins naujos eilutės simbolius iš string.
            if(!isnull(string)) // jei eilute ne tuscia
            {
                 format(string,sizeof(string),"Aiksteles savininkas: %s",string);
                 AikstelesLabel = Create3DTextLabel(string,0xFF0000FF,0.0,0.0,0.0,30.0,-1,1);
                 break;
            }
        }
        fclose(failas);
     }
}

// Funkcija priklauso Tyler12(bent radau jo forumuose)
stock StripNewLine(string[]) { 
    new len = strlen(string); 
    if (string[0]==0) return ; 
    if ((string[len - 1] == '\n') || (string[len - 1] == '\r')) { 
        string[len - 1] = 0; 
        if (string[0]==0) return ; 
        if ((string[len - 2] == '\n') || (string[len - 2] == '\r')) string[len - 2] = 0; 
    } 
} 

Ar veiks? Net neįsivaizduoju. Rašiau čia..... Bet pagal idėja turėtų. Faile turėtų būti TIK savininko vardas.

Reikia Pawn pagalbos? Skype nerašyk.

 

 

 

 

 

 

Pabandyk funkciją pakeisti į šią:

KrautiAikstelesSavininka()
{
    if(!fexist(AIKSTELES_SAVININKO_FAILAS))
    {
        AikstelesLabel = Create3DTextLabel("Aiksteles savininko nera",0xFF0000FF,0.0,0.0,0.0,30.0,-1,1);
        return;
    }
    new File:failas = fopen(AIKSTELES_SAVININKO_FAILAS,io_read);
     if(file)
     {
        new string[128];
        while(fread(failas,string)) // Sis ciklas leis perskaityti VISA faila
        {
            StripNewLine(string); // funkcija pridėjau žemiau. Ji pašalins naujos eilutės simbolius iš string.
            if(!isnull(string)) // jei eilute ne tuscia
            {
                 format(string,sizeof(string),"Aiksteles savininkas: %s",string);
                 AikstelesLabel = Create3DTextLabel(string,0xFF0000FF,0.0,0.0,0.0,30.0,-1,1);
                 break;
            }
        }
        fclose(failas);
     }
}

Reikia Pawn pagalbos? Skype nerašyk.

 

 

 

 

 

 

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 4353 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...