Jump to content
Autentificarea cu Google și Facebook nu mai este disponibilă. ×

Question

Posted

Problema intalnita (descriere):Incerc sa fac un stock sa il pun la coamnda /setleader sa imi salveze in scriptfiles/faction/leaders.ini numele celui pe care l-am pus lider. De exemplu

1=Extremys   1(numarul factiuni) Extremys(numele liderului)
2=Altnume

3=Nu are lider

etc.

De ce vreau sa fac asta? Vreau sa ma folosesc de acest lucru sa fac o comanda sa imi arate liderii la toate factiunile.Nu lucrez mysql si cred ca pentru "ini" asta e singura solutie (Sfat de la Mister).
Ero(area / rile) / warning-(ul / urile):-
Liniile de cod / sursa / script-ul(obligatoriu):-
Imagini / Video (optional):-
Ati incercat sa rezolvati singur?: Da am incercat dupa un model pe care il am in gamemode si salveaza preturile masinilor.

giphy.gif

15 answers to this question

Recommended Posts

  • 0
Posted (edited)

@Mister Pai nu prea am pricep cum sa fac, la comenzi ma pricep dar la asta cu salvarea etc nu.

Quote

stock SaveLeaders()
{
    new
        iStr[20],string[30],counth;

    format(iStr, sizeof(iStr), "Leader/Leaders.ini");
    if(INI_Open(iStr))
    {
        for(new x; x<15; x++)//sunt 15 factiuni
        {
            if(x<1 continue;
            format(string,sizeof(string),"%d",x);//daca ma duc pe sv si dau /setleader playerid factiune imi salveaza in scriptifiles 0=0 daca pun in leaders.ini 0=No si 1=No si dau /setleader 0 1 imi apare 0=0 Nustiu cum sa fac sa apara nuemle lui
             INI_WriteInt(string, Leaders[x]);
            if(Leaders[x]>0) counth++;
        }
        printf("Leader Saved %d \n",counth);
        INI_Save();
        INI_Close();
    }
    return 1;
}

 

Edited by Extremys

giphy.gif

  • 0
Posted
1 hour ago, Mister said:

Arata functia prin care incerci sa salvezi

Si ce nu merge? Salvarea sau incarcarea?

Up careva?

giphy.gif

  • 0
Posted

Salut, nu prea le am eu cu ini, insa incearca asa:

definesti: new leader[32];

iar la comanda /setleader pui undeva pe acolo: `leader = nume;` sau cum ai tu.

 

stock SaveLeaders()
{
    new iStr[124], string[124], counth;
    format(iStr, sizeof(iStr), "/Leader/Leaders.ini");
    if(INI_Open(iStr))
    {
        for(new x; x < 15; x++) //sunt 15 factiuni
        {
          if(x < 1) continue;
          format(string, sizeof(string),"%d=%s",x, leader);
          INI_WriteInt(iStr, string);
          if(Leaders[x] > ) counth++;
        }
        printf("Leader Saved %d \n",counth);
        INI_Save();
        INI_Close();
    }
    return 1;
}

 

  • 0
Posted

tot nu merge, am mai incercat sa schimb cate ceva dar tot nu merge, va rog ajutati-ma.

2 hours ago, АЖФ.[] said:

Salut, nu prea le am eu cu ini, insa incearca asa:

definesti: new leader[32];

iar la comanda /setleader pui undeva pe acolo: `leader = nume;` sau cum ai tu.

 


stock SaveLeaders()
{
    new iStr[124], string[124], counth;
    format(iStr, sizeof(iStr), "/Leader/Leaders.ini");
    if(INI_Open(iStr))
    {
        for(new x; x < 15; x++) //sunt 15 factiuni
        {
          if(x < 1) continue;
          format(string, sizeof(string),"%d=%s",x, leader);
          INI_WriteInt(iStr, string);
          if(Leaders[x] > ) counth++;
        }
        printf("Leader Saved %d \n",counth);
        INI_Save();
        INI_Close();
    }
    return 1;
}

 

 

giphy.gif

  • 0
Posted

nu cunosc functiile de la dini/yini/ini, nici nu ma intereseaza si asa ca m-am folosit de functiile de format. Asta e varianta mea, mentionez ca nu am testat-o dar ar trebui sa mearga, daca nu vezi ce zice debugg-ul

stock LeaderSave(playerid)
{
	new string[200], Day, Year, Month;
	new lista = fopen("Leader/Leaders.ini");
	getdate(Year, Month, Day);
	format(string, sizeof(), "NAME:%s FACTIONID:%d Day:%d Month:%d Year:%d", GetName(playerid), PlayerInfo[playerid][pLeader], Day, Month, Year);
	fwrite(lista, string);
	printf("%s", string); //debugg
	fclose(lista);
	return 1;
}

 

  • Upvote 1
  • 0
Posted
4 hours ago, WiDuAlK said:

nu cunosc functiile de la dini/yini/ini, nici nu ma intereseaza si asa ca m-am folosit de functiile de format. Asta e varianta mea, mentionez ca nu am testat-o dar ar trebui sa mearga, daca nu vezi ce zice debugg-ul


stock LeaderSave(playerid)
{
	new string[200], Day, Year, Month;
	new lista = fopen("Leader/Leaders.ini");
	getdate(Year, Month, Day);
	format(string, sizeof(), "NAME:%s FACTIONID:%d Day:%d Month:%d Year:%d", GetName(playerid), PlayerInfo[playerid][pLeader], Day, Month, Year);
	fwrite(lista, string);
	printf("%s", string); //debugg
	fclose(lista);
	return 1;
}

 

Iti multumesc man. RESPECT si +1.

Acum daca as vrea sa fac o comanda cu /leaders si sa am folosesc de acest stock sa imi arate liderii chiar daca nu sunt online, mi-ai putea da o idee?

giphy.gif

  • 0
  • 0
Posted
15 minutes ago, WiDuAlK said:

nu imi vine nici o idee pentru sistemul tau de stocare a datelor, daca era pe mysql imi era mult mai simplu....

Te mai gandesti, poate iti vine o idee?

giphy.gif

  • 0
Posted

nu stiu daca se poate ... pe mysql faci o selectie in baza de date de genu: "SELECT * FROM `accounts` WHERE `Leader` = '1/2/3/4/5'"

apoi faci un content cu numele si asta e, dar la ini... nu cred ca poti... ar fi o chestie sa faci load la toate conturile existente apoi sa treci prin fiecare cont cu for si sa verifici daca PlayerInfo[pLeader] > 1 il afisezi sau o alta solutie ar fi sa ii salvezi un fisier .txt cand dai makeleader de genu

stock LiderExistent(lider)
{
    new string[150]; // 150 cred ca ajunge la.... vro 11-12 persoane, avand in vedere ca maximul de caractere de la nume este 24 
    format(string, sizeof(string), "Leader/Leader%d.ini", lider);
    new lista = fopen(string);
    fread....// aici ii afisezi numele
	new nume[24];
	nume = fread...
    fclose
    return nume;
}
si cand faci /leaders
format(string... , "Numele liderului de la factiunea 1 este: %s", LiderExistent(1));
format(string... , "%sNumele liderului de la factiunea 2 este: %s", %s, LiderExistent(2));
....

succes.

Mentionez ca trb sa faci un fisier pt fiecare lider de la fiecare factiune, adica Leader1, Leader2, Leader3 .... ca sa iti mearga. metoda asta este mult mai rapida si eficienta.

  • 0
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.