Jump to content
  • 0

Ajutor stock


Extremys

Question

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

Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Arata functia prin care incerci sa salvezi

Si ce nu merge? Salvarea sau incarcarea?

Edited by Mister

 

    __  ____      __           
   /  |/  (_)____/ /____  _____
  / /|_/ / / ___/ __/ _ \/ ___/
 / /  / / (__  ) /_/  __/ /    
/_/  /_/_/____/\__/\___/_/     
SERVICII SCRIPTING DE CALITATE
Pagina     Scripting     pawn
Link to comment
Share on other sites

  • 0

@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

Link to comment
Share on other sites

  • 0

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

 

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

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
Link to comment
Share on other sites

  • 0
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

Link to comment
Share on other sites

  • 0
  • 0

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.

Link to comment
Share on other sites

  • 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.