Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Shaw Salcedo poslato Decembar 14, 2015, 22:20:16 POSLE PODNE

Naslov: [Pomoc] Online Lideri
Poruka od: Shaw Salcedo poslato Decembar 14, 2015, 22:20:16 POSLE PODNE
Skripta koju koristim: UP
Detaljan opis problema: Znaci ne znam sta je nece da prikaze online lidere
Kucaj lideri izbaci mi dialog svi lideri udjem u online lideri nista se ne desi
Dio skripte:
if(dialogid == LIDERI)
{
    if(!response) return true;
    if(response)
    {
        switch(listitem)
        {
            case 0:
            {
                new onllideri[1024];
                for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if (PI[i][pLeader] > 0)
{
    new name[64];
    GetPlayerName(i, name, 64);
    if(strlen(name) > 2)
    {
new atext[128];
new orgtext[50];
            if(PI[i][pLeader] == 1) { orgtext = "Policija"; }
            else if(PI[i][pLeader] == 2) { orgtext = "Black Guerilla Family"; }
            else if(PI[i][pLeader] == 4) { orgtext = "Cripsy Joker"; }
            else if(PI[i][pLeader] == 6) { orgtext = "Novinari"; }
            else if(PI[i][pLeader] == 8) { orgtext = "F.B.I"; }
            else if(PI[i][pLeader] == 9) { orgtext = "The Red Brigade"; }
            else if(PI[i][pLeader] == 10) { orgtext = "La Cosa Nostra"; }
            else if(PI[i][pLeader] == 11) { orgtext = "Mara Salvatrucha 13"; }
            else if(PI[i][pLeader] == 12) { orgtext = "Parking Servis"; }
            else if(PI[i][pLeader] == 13) { orgtext = "Hitna Pomoc"; }
            else if(PI[i][pLeader] == 14) { orgtext = "The Escobar Cartel"; }
            else if(PI[i][pLeader] == 15) { orgtext = "Taxi"; }
format(atext, sizeof(atext), "{FFFFFF}%s", orgtext);
strcat(onllideri, atext);
strcat(onllideri, " | Lider: [");
strcat(onllideri, GetNameEx(i));
strcat(onllideri, "]");
strcat(onllideri, "\n");
}
}
}
}
if(strlen(onllideri) == 0) return SCM(playerid,-1,""ORANGE"HR: "SIVA"Trenutno nema online lidera!");
SPD(playerid, 1999999, DSM, ""COL_BE"Lista online lidera", onllideri, "OK", "");
            }
            case 1:
            {
                 new text[64];
     new File:lider1 = fopen("HR-RP/Lideri/1.txt", io_read);
     while(fread(lider1, text)) {
     strmid(ldr1, text, 0, strlen(text), 255); }
     fclose(lider1);

     new File:lider2 = fopen("HR-RP/Lideri/2.txt", io_read);
     while(fread(lider2, text)) {
     strmid(ldr2, text, 0, strlen(text), 255); }
     fclose(lider2);

     new File:lider3 = fopen("HR-RP/Lideri/3.txt", io_read);
     while(fread(lider3, text)) {
     strmid(ldr3, text, 0, strlen(text), 255); }
     fclose(lider3);

     new File:lider4 = fopen("HR-RP/Lideri/4.txt", io_read);
     while(fread(lider4, text)) {
     strmid(ldr4, text, 0, strlen(text), 255); }
     fclose(lider4);

     new File:lider5 = fopen("HR-RP/Lideri/5.txt", io_read);
     while(fread(lider5, text)) {
     strmid(ldr5, text, 0, strlen(text), 255); }
     fclose(lider5);

     new File:lider6 = fopen("HR-RP/Lideri/6.txt", io_read);
     while(fread(lider6, text)) {
     strmid(ldr6, text, 0, strlen(text), 255); }
     fclose(lider6);

     new File:lider8 = fopen("HR-RP/Lideri/8.txt", io_read);
     while(fread(lider8, text)) {
     strmid(ldr8, text, 0, strlen(text), 255); }
     fclose(lider8);

     new File:lider9 = fopen("HR-RP/Lideri/9.txt", io_read);
     while(fread(lider9, text)) {
     strmid(ldr9, text, 0, strlen(text), 255); }
     fclose(lider9);
     
     new File:lider10 = fopen("HR-RP/Lideri/10.txt", io_read);
     while(fread(lider10, text)) {
     strmid(ldr10, text, 0, strlen(text), 255); }
     fclose(lider10);

     new File:lider11 = fopen("HR-RP/Lideri/11.txt", io_read);
     while(fread(lider11, text)) {
     strmid(ldr11, text, 0, strlen(text), 255); }
     fclose(lider11);

     new File:lider12 = fopen("HR-RP/Lideri/12.txt", io_read);
     while(fread(lider12, text)) {
     strmid(ldr12, text, 0, strlen(text), 255); }
     fclose(lider12);

     new File:lider13 = fopen("HR-RP/Lideri/13.txt", io_read);
     while(fread(lider13, text)) {
     strmid(ldr13, text, 0, strlen(text), 255); }
     fclose(lider13);

     new File:lider14 = fopen("HR-RP/Lideri/14.txt", io_read);
     while(fread(lider14, text)) {
     strmid(ldr14, text, 0, strlen(text), 255); }
     fclose(lider14);

     new File:lider15 = fopen("HR-RP/Lideri/15.txt", io_read);
     while(fread(lider15, text)) {
     strmid(ldr15, text, 0, strlen(text), 255); }

new lideri1[2048], lideri2[2048], lideri[2048];
    format(lideri1,sizeof(lideri1),"{FFFFFF}Policija | %s\nBlack Guerilla Family | %s\nCripsy Joker | %s\nNovinari | %s\nF.B.I | %s\nThe Red Brigade | %s\nMara Salvatrucha 13 | %s\nParking Servis | %s\nHitna Pomoc | %s\nThe Escobar Cartel | %s",ldr1,ldr2,ldr3,ldr4,ldr5,ldr6,ldr7,ldr8,ldr9,ldr10);
     format(lideri2,sizeof(lideri2),"Taxi | %s",ldr11);
     format(lideri,sizeof(lideri),"%s\n%s",lideri1,lideri2);
     SPD(playerid, 199999, DSM, ""COL_BE"Lista svih lidera", lideri, "OK", "");
            }
}
}
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):
Naslov: Odg: [Pomoc] Online Lideri
Poruka od: Assassin007 poslato Decembar 14, 2015, 22:28:20 POSLE PODNE
Koji sistem cuvanja koristis zcmd yini dini ?
Naslov: Odg: [Pomoc] Online Lideri
Poruka od: K ROSE poslato Decembar 14, 2015, 22:30:19 POSLE PODNE
Citat: Assassin007 poslato Decembar 14, 2015, 22:28:20 POSLE PODNE
Koji sistem cuvanja koristis zcmd yini dini ?

Zcmd,YCMD, dcmd i ostalo  je procesor komandi.
Dini,Y_ini,Mysql,SQL je sistem spremanja.
Naslov: Odg: [Pomoc] Online Lideri
Poruka od: Shaw Salcedo poslato Decembar 14, 2015, 23:27:11 POSLE PODNE
Koristim Y_Ini
Naslov: Odg: [Pomoc] Online Lideri
Poruka od: Assassin007 poslato Decembar 14, 2015, 23:59:28 POSLE PODNE
YCMD:lideri(playerid,params[])
{
        new string2[340];
        format(string2,sizeof(string2),"Policija: %s\n BlackGurelliaFamily: %s\n Cripsy Joker:%s\n Novinari:%s\n F.B.I: %s\n TheRedBridge: %s\n Mara Salvatrucha 13: %s\n Parking Service: %s\n Hitna Pomoc: %s\n The Escobar Cartel: %s\n Taxi: %s ",PI[playerid][pLeader]);//itako za ostale
        ShowPlayerDialog(playerid,Lideri,DIALOG_STYLE_MSGBOX,"Lista svih lidera",string2,"Ok","");
        return 1;
}


Evo kako bih ja napravio umisto svog onog koda tamo napravio bih ovako jednustavnu komandu..
tu ti je bez provjere jeli igrac online ako oces da ti napravi da je online reci...
Naslov: Odg: [Pomoc] Online Lideri
Poruka od: CADILAB poslato Decembar 15, 2015, 00:17:40 PRE PODNE
Citat: Assassin007 poslato Decembar 14, 2015, 23:59:28 POSLE PODNE
YCMD:lideri(playerid,params[])
{
        new string2[340];
        format(string2,sizeof(string2),"Policija: %s\n BlackGurelliaFamily: %s\n Cripsy Joker:%s\n Novinari:%s\n F.B.I: %s\n TheRedBridge: %s\n Mara Salvatrucha 13: %s\n Parking Service: %s\n Hitna Pomoc: %s\n The Escobar Cartel: %s\n Taxi: %s ",PI[playerid][pLeader]);//itako za ostale
        ShowPlayerDialog(playerid,Lideri,DIALOG_STYLE_MSGBOX,"Lista svih lidera",string2,"Ok","");
        return 1;
}


Evo kako bih ja napravio umisto svog onog koda tamo napravio bih ovako jednustavnu komandu..
tu ti je bez provjere jeli igrac online ako oces da ti napravi da je online reci...

To sto si ti napisao nema nikakve veze, prvo %s predstavlja string, a ne broj, drugo pLeader se cuva kao broj i to bas tako se ne slaze, ne ?

Evo kako bi ja to odradio

[PAWN]stock ImeIgraca(playerid)
{
   new Ime[MAX_PLAYER_NAME];
   GetPlayerName(playerid, Ime, sizeof(Ime));
   return Ime;
}

CMD:lideri(playerid, params[])
{
   foreach(Player, i)
   {
       if(PI[pLeader] > 0)
       {
         new lider = PI[pLeader], str[24], sup[2100], tmpstr[300];

           if(lider == 1) { str = "Organizacija"; }
           else if(lider == 2) { str = "Organizacija"; }
           else if(lider == 3) { str = "Organizacija"; }
           else if(lider == 4) { str = "Organizacija"; }

         format(tmpstr, sizeof(tmpstr), "Ime: %s | Organizacija: %s\n", ImeIgraca(i), str);
          strcat(sup, tmpstr, sizeof(sup));

          SPD(playerid, 9999, DSM, ""COL_BE"Lista svih lidera", sup, "OK", "");
       }
      else
      {
          // Nema lidera
      }
   }
   return 1;
}[/PAWN]

Nisam ulazio u pawno ima dve godine ali verovatno ce raditi :P

Edit: Nisam video da si u dialogu to radio posto sam malo srljao, ali samo izvuci od foreacha sve u dialog :)
Naslov: Odg: [Pomoc] Online Lideri
Poruka od: Assassin007 poslato Decembar 15, 2015, 00:33:19 PRE PODNE
Citat: Shoorty poslato Decembar 15, 2015, 00:17:40 PRE PODNE
Citat: Assassin007 poslato Decembar 14, 2015, 23:59:28 POSLE PODNE
YCMD:lideri(playerid,params[])
{
        new string2[340];
        format(string2,sizeof(string2),"Policija: %s\n BlackGurelliaFamily: %s\n Cripsy Joker:%s\n Novinari:%s\n F.B.I: %s\n TheRedBridge: %s\n Mara Salvatrucha 13: %s\n Parking Service: %s\n Hitna Pomoc: %s\n The Escobar Cartel: %s\n Taxi: %s ",PI[playerid][pLeader]);//itako za ostale
        ShowPlayerDialog(playerid,Lideri,DIALOG_STYLE_MSGBOX,"Lista svih lidera",string2,"Ok","");
        return 1;
}


Evo kako bih ja napravio umisto svog onog koda tamo napravio bih ovako jednustavnu komandu..
tu ti je bez provjere jeli igrac online ako oces da ti napravi da je online reci...

To sto si ti napisao nema nikakve veze, prvo %s predstavlja string, a ne broj, drugo pLeader se cuva kao broj i to bas tako se ne slaze, ne ?

Evo kako bi ja to odradio

[PAWN]stock ImeIgraca(playerid)
{
   new Ime[MAX_PLAYER_NAME];
   GetPlayerName(playerid, Ime, sizeof(Ime));
   return Ime;
}

CMD:lideri(playerid, params[])
{
   foreach(Player, i)
   {
       if(PI[pLeader] > 0)
       {
         new lider = PI[pLeader], str[24], sup[2100], tmpstr[300];

           if(lider == 1) { str = "Organizacija"; }
           else if(lider == 2) { str = "Organizacija"; }
           else if(lider == 3) { str = "Organizacija"; }
           else if(lider == 4) { str = "Organizacija"; }

         format(tmpstr, sizeof(tmpstr), "Ime: %s | Organizacija: %s\n", ImeIgraca(i), str);
          strcat(sup, tmpstr, sizeof(sup));

          SPD(playerid, 9999, DSM, ""COL_BE"Lista svih lidera", sup, "OK", "");
       }
      else
      {
          // Nema lidera
      }
   }
   return 1;
}[/PAWN]

Nisam ulazio u pawno ima dve godine ali verovatno ce raditi :P

Edit: Nisam video da si u dialogu to radio posto sam malo srljao, ali samo izvuci od foreacha sve u dialog :)

Ma ja sam ovo sklopao u 2 min nisam ni gledao dali je tocno ista ili kako tako da trebalo bih mi barem 5 min da mu optimiziram za njegov mod....
Naslov: Odg: [Pomoc] Online Lideri
Poruka od: Shaw Salcedo poslato Decembar 15, 2015, 14:50:16 POSLE PODNE
Da li mi mozete reci sta sam pogresio da ja to fixam znaci ne prikaze mi online lidere
Naslov: Odg: [Pomoc] Online Lideri
Poruka od: gReeDy.aMx poslato Decembar 15, 2015, 15:28:28 POSLE PODNE

new big_String[1110], string[74], orgtext[25]; //ove stringove povecavaj po potrebi
strdel(big_String, 0, sizeof(big_String));
    for(new i=0; i<MAX_PLAYERS; i++) //preporucio bih ti da koristis foreach
{
if(PI[i][pLeader] > 0)
{
  if(PI[i][pLeader] == 1) { orgtext = "Policija"; }
      else if(PI[i][pLeader] == 2) { orgtext = "Black Guerilla Family"; }
        else if(PI[i][pLeader] == 4) { orgtext = "Cripsy Joker"; }
          else if(PI[i][pLeader] == 6) { orgtext = "Novinari"; }
          else if(PI[i][pLeader] == 8) { orgtext = "F.B.I"; }
            else if(PI[i][pLeader] == 9) { orgtext = "The Red Brigade"; }
            else if(PI[i][pLeader] == 10) { orgtext = "La Cosa Nostra"; }
            else if(PI[i][pLeader] == 11) { orgtext = "Mara Salvatrucha 13"; }
            else if(PI[i][pLeader] == 12) { orgtext = "Parking Servis"; }
            else if(PI[i][pLeader] == 13) { orgtext = "Hitna Pomoc"; }
            else if(PI[i][pLeader] == 14) { orgtext = "The Escobar Cartel"; }
            else if(PI[i][pLeader] == 15) { orgtext = "Taxi"; }
            else { orgtext = "Nepoznat"; }
           
            format(string,sizeof(string),"LIDER: %s | ORGANIZACIJA: %s\n", GetNameEx(i), orgtext);
strcat(big_String, string);

}
}
if(strlen(big_String) == 0) return SCM(playerid,-1,""ORANGE"HR: "SIVA"Trenutno nema online lidera!");
if(strlen(big_String) > 1110) return SCM(playerid,-1,"Preveliki string!");
SPD(playerid, 1999999, DSM, ""COL_BE"Lista online lidera", big_String, "OK", "");


Naslov: Odg: [Pomoc] Online Lideri
Poruka od: Dobrica poslato Decembar 15, 2015, 16:27:37 POSLE PODNE
SPD(playerid, 1999999, DSM, ""COL_BE"Lista online lidera", big_String, "OK", ""); - Vidis koji si stavio dialog ID?
Ovako uradi.


SPD (playeris, 90987, DSM,""COL_BE"Lista online lidera", big_String,"OK","");
Naslov: Odg: [Pomoc] Online Lideri
Poruka od: Shaw Salcedo poslato Decembar 15, 2015, 17:09:09 POSLE PODNE
Sredjeno je :D