Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Zapis i odczyt zmiennych z plikuprosty plugin


  • Zamknięty Temat jest zamknięty
7 odpowiedzi w tym temacie

#1 Draba

    Początkujący

  • Użytkownik

Reputacja: 1
Nowy

  • Postów:11
  • Imię:B.
  • Lokalizacja:TT
Offline

Napisano 23.05.2011 20:04

Witam
Czy ktoś mógłby napisać prosty plugin (właściwie to jego część), który zapisywałby do pliku 3 zmienne i po zmianie mapy je wczytywał?

Zmienne:
[int] topexp
[string] topexpname
[string] topexplvl

Plik mógłby się znajdować np tutaj: "plugins/zp_top/zp_top.txt".

Dane powinny być zapisane w ten sposób:
[plik]
topexp
topexpname
topexplvl
[/plik]

Dodatkowo podczas zapisywania nowych wartości, te stare powinny być automatycznie usunięte.

Z góry dzięki, dam +.
  • +
  • -
  • 0

#2 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 23.05.2011 22:05

czyli chcesz mieć tylko load i save tak? i level w string? hmm :D jak to cyfra to mozna int ;d

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#3 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 24.05.2011 07:21

Sprawdź to pisane na szybko :
#include <amxmodx> 
#include <amxmisc>
new gi_topexp = 0, gsz_topexpname[64] = "none", gsz_topexplvl[64] = 0;
new gszFileDir[64];
public plugin_init()
{
register_plugin("", "Autorska", "Knopers");

get_basedir(gszFileDir, 31);
format(gszFileDir, 63, "%s/plugins/zp_top/zp_top.txt", gszFileDir);

readTop();
}
public plugin_end()
{
new pos[128];
formatex(pos, 127, "topexp ^"%d^"", gi_topexp);
write_file(gszFileDir, pos, 0);
formatex(pos, 127, "topexpname ^"%s^"", gsz_topexpname);
write_file(gszFileDir, pos, 1);
formatex(pos, 127, "topexplvl ^"%s^"", gsz_topexplvl);
write_file(gszFileDir, pos, 2);
}
bool:readTop()
{
if (file_exists(gszFileDir))
{
new Data[128], len;
new line = 0;
new pos[2][64];

while((line = read_file(gszFileDir, line, Data, 127, len)) != 0)
{
if (strlen(Data)<2 || Data[0] == '[' || Data[0] == ';')
continue;

parse(Data, pos[0], 63, pos[1], 63);

remove_quotes(pos[0]);
remove_quotes(pos[1]);

if(equali(pos[0], "topexp"))
gi_topexp = str_to_num(pos[1]);
else if(equali(pos[0], "topexpname"))
gsz_topexpname = pos[1];
else if(equali(pos[0], "topexplvl"))
gsz_topexplvl = pos[1];
}
}
else
{
write_file(gszFileDir, "topexp ^"0^"", 0);
write_file(gszFileDir, "topexp ^"none^"", 1);
write_file(gszFileDir, "topexp ^"0^"", 2);
return false;
}
return true;
}

  • +
  • -
  • 1

#4 Draba

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:11
  • Imię:B.
  • Lokalizacja:TT
Offline

Napisano 24.05.2011 15:15

Tak funfel, tylko save&load, a topexplvl typu string ponieważ ma przechowywać nazwę rangi :)

Knopers dzięki za zainteresowanie. Plugin poprawnie się skompilował, wygląda na to, że wszystko działa, wielki plus dla Ciebie! ;)
Dziękuje za pomoc.

Użytkownik Draba edytował ten post 24.05.2011 15:21

  • +
  • -
  • 0

#5 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 24.05.2011 15:19

po tym możesz spróbować wykonać funkcję plugin_end wtedy nie powinno być problemu z zapisem od razu do pliku, możliwe że event "końca mapy" nie nadaje się do zapisywania pliku.
  • +
  • -
  • 0

#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 24.05.2011 15:37

plugin end jest w porządku
  • +
  • -
  • 0

#7 mierzwi

    Banned

  • Zbanowany

Reputacja: 235
Wszechwidzący

  • Postów:651
  • Lokalizacja:Polska
Offline

Napisano 24.05.2011 16:31

mam pytanie: [int] topexp
[string] topexpname
[string] topexplvl
ma być zapisywane dla gracza czy tak ogólnie (chodzi że jak dla gracza to [id] - każdy gracz ma swój topexp i topexpname itp.)

jeśli masz fejsa i chcesz mi pomóc to wejdź tutaj: Zaproś kumpla by lubił nasz sklep | Facebook

na pewno jakoś C się odwdzięczę!


#8 Draba

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 1
Nowy

  • Postów:11
  • Imię:B.
  • Lokalizacja:TT
Offline

Napisano 24.05.2011 17:15

To jest ogólny zapis. Po wpisaniu komendy /gracze wyświetla się okno, w którym widać nick, poziom i exp najlepszego gracza na serwerze :) Wyświetla się także lista graczy będących aktualnie na serwerze (również ich nick, poziom, exp) ;P Dla graczy mam zapis do nvault.
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych