←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

nvault zapis wielu zmiennych


Najlepsza odpowiedź GwynBleidD 09.03.2014 14:54

;o 50 wartości?
 

format(
    vd,255,"%i %i %i %i %i %i %i\
        %i %i %i %i %i %i %i",
    Q1, Q2, Q3, Q4,
    Q5, Q6, Q7
)

Nie musi być wszystko w jednej linii. Nie pamiętam tylko nigdy czy stringi w PAWNie przełamuje się znakiem \ czy ^, jeśli tak nie zadziała, to spróbuj zamienić na ^. I zmień na nazwy, które coś komuś mówią, a nie Q1, MQ itp. Możesz sobie nawet pieprznąć "czy_baba_jaga_wstala_lewa_noga", jeśli taką informację musisz zapisać. Nazwa może być dłuższa, a w kodzie nie będziesz się sam gubił (ani nikt inny).

Przejdź do postu
Zablokowany

  • +
  • -
Kmf!p - zdjęcie Kmf!p 09.03.2014

jak to zapisac bo brakuje mi miejsca ;) najlepiej jakby ktos podal gotowy kod lub zrobil dla dwoch wartosci wzor reszte bym sam zrobil, bo troche mi sie spieszy ;) patrzylem w innym temacie opisane jak pozmieniac ale nie wiem jak sie za to zabrac chodzi mi o odczytanie kazdej wartosci i o zapis tego najlepiej w jak najkrotszy sposob lub czytelny.
 
new Q0[33], Q1[33], Q2[33], Q3[33], Q4[33], Q5[33], Q6[33], Q7[33], Q8[33], Q9[33], Q10[33], Q11[33], Q12[33], Q13[33], Q14[33], Q15[33], Q16[33], Q17[33], Q18[33], Q19[33], Q20[33], Q21[33], Q22[33], Q23[33], Q24[33], Q25[33], Q26[33], Q27[33], Q28[33], Q29[33], Q30[33], Q31[33], Q32[33], Q33[33], Q34[33], Q35[33], Q36[33], Q37[33], Q38[33], Q39[33], Q40[33], Q41[33], Q42[33], Q43[33], Q44[33], Q45[33], Q46[33], Q47[33], Q48[33];




public SaveQuest(id)
{
new vaultkey[35], vd[256];
get_user_name(id,vaultkey,charsmax(vaultkey));
format(vd,255,"%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i",MQ[id],Q0[id],Q1[id],Q2[id],Q3[id],Q4[id],Q5[id],Q6[id],Q7[id],Q8[id],Q9[id],Q10[id],Q11[id],Q12[id],Q13[id],Q14[id],Q15[id],Q16[id],Q17[id],Q18[id],Q19[id],Q20[id],Q21[id],Q22[id],Q23[id],Q24[id],Q25[id],Q26[id],Q27[id],Q28[id],Q29[id],Q30[id],Q31[id],Q32[id],Q33[id],Q34[id],Q35[id],Q36[id],Q37[id],Q38[id],Q39[id],Q40[id],Q41[id],Q42[id],Q43[id],Q44[id],Q45[id],Q46[id],Q47[id],Q48[id]);
nvault_set(vault, vaultkey, vd);


return PLUGIN_CONTINUE; 
}


public LoadQuest(id)
{
new vaultkey[35], vd[256];
get_user_name(id,vaultkey,charsmax(vaultkey));
nvault_get(vault, vaultkey, vd,255);


new mq[32], q0[32], q1[32], q2[32], q3[32], q4[32], q5[32], q6[32], q7[32], q8[32], q9[32], q10[32], q11[32], q12[32], q13[32], q14[32], q15[32], q16[32], q17[32], q18[32], q19[32], q20[32], q21[32], q22[32], q23[32], q24[32], q25[32], q26[32], q27[32], q28[32], q29[32], q30[32], q31[32], q32[32], q33[32], q34[32], q35[32], q36[32], q37[32], q38[32], q39[32], q40[32], q41[32], q42[32], q43[32], q44[32], q45[32], q46[32], q47[32], q48[32];
parse(vd, mq, 31, q0, 31, q1, 31, q2, 31, q3, 31, q4, 31, q5, 31, q6, 31, q7, 31, q8, 31, q9, 31, q10, 31, q11, 31, q12, 31, q13, 31, q14, 31, q15, 31, q16, 31, q17, 31, q18, 31, q19, 31, q20, 31, q21, 31, q22, 31, q23, 31, q24, 31, q25, 31, q26, 31, q27, 31, q28, 31, q29, 31, q30, 31, q31, 31, q32, 31, q33, 31, q34, 31, q35, 31, q36, 31, q37, 31, q38, 31, q39, 31, q40, 31, q41, 31, q42, 31, q43, 31, q44, 31, q45, 31, q46, 31, q47, 31, q48, 31);


MQ[id] = str_to_num(mq);
Q0[id] = str_to_num(q0);
Q1[id] = str_to_num(q1);
Q2[id] = str_to_num(q2);
Q3[id] = str_to_num(q3);
Q4[id] = str_to_num(q4);
Q5[id] = str_to_num(q5);
Q6[id] = str_to_num(q6);
Q7[id] = str_to_num(q7);
Q8[id] = str_to_num(q8);
Q9[id] = str_to_num(q9);
Q10[id] = str_to_num(q10);
Q11[id] = str_to_num(q11);
Q12[id] = str_to_num(q12);
Q13[id] = str_to_num(q13);
Q14[id] = str_to_num(q14);
Q15[id] = str_to_num(q15);
Q16[id] = str_to_num(q16);
Q17[id] = str_to_num(q17);
Q18[id] = str_to_num(q18);
Q19[id] = str_to_num(q19);
Q20[id] = str_to_num(q20);
Q21[id] = str_to_num(q21);
Q22[id] = str_to_num(q22);
Q23[id] = str_to_num(q23);
Q24[id] = str_to_num(q24);
Q25[id] = str_to_num(q25);
Q26[id] = str_to_num(q26);
Q27[id] = str_to_num(q27);
Q28[id] = str_to_num(q28);
Q29[id] = str_to_num(q29);
Q30[id] = str_to_num(q30);
Q31[id] = str_to_num(q31);
Q32[id] = str_to_num(q32);
Q33[id] = str_to_num(q33);
Q34[id] = str_to_num(q34);
Q35[id] = str_to_num(q35);
Q36[id] = str_to_num(q36);
Q37[id] = str_to_num(q37);
Q38[id] = str_to_num(q38);
Q39[id] = str_to_num(q39);
Q40[id] = str_to_num(q40);
Q41[id] = str_to_num(q41);
Q42[id] = str_to_num(q42);
Q43[id] = str_to_num(q43);
Q44[id] = str_to_num(q44);
Q45[id] = str_to_num(q45);
Q46[id] = str_to_num(q46);
Q47[id] = str_to_num(q47);
Q48[id] = str_to_num(q48);


return PLUGIN_CONTINUE; 
}

 

Odpowiedz

  • +
  • -
Najlepsza odpowiedź GwynBleidD - zdjęcie GwynBleidD 09.03.2014

;o 50 wartości?
 

format(
    vd,255,"%i %i %i %i %i %i %i\
        %i %i %i %i %i %i %i",
    Q1, Q2, Q3, Q4,
    Q5, Q6, Q7
)

Nie musi być wszystko w jednej linii. Nie pamiętam tylko nigdy czy stringi w PAWNie przełamuje się znakiem \ czy ^, jeśli tak nie zadziała, to spróbuj zamienić na ^. I zmień na nazwy, które coś komuś mówią, a nie Q1, MQ itp. Możesz sobie nawet pieprznąć "czy_baba_jaga_wstala_lewa_noga", jeśli taką informację musisz zapisać. Nazwa może być dłuższa, a w kodzie nie będziesz się sam gubił (ani nikt inny).

Odpowiedz

  • +
  • -
Kmf!p - zdjęcie Kmf!p 09.03.2014

ja wiem o co chodzi z tymi nazwami byly dluzsze ale myslalem ze zmieszcze 50 wartosci skracajac nazwy ale nie udalo sie.

wlasnie chodzi o ta linijke bo jest zbyt dluga

 

znalazlem cos takiego jak to uzyc?

Maksymalna długość stringu w PAWN to 498, teksty dłuższe będą powodować błąd

error 075: input line too long (after substitutions)

By go ominąć należy podzielić string na teksty długości 498 lub mniejsze (byle jak, nie muszą być dzielone tam gdzie spacje itp. pamiętaj też by nie przedzielać znaków z backslashem '\' )

By to ominąć można użyć przykładu z format lub użyć funkcji strcat:

new xyz[500];

strcat(xyz, "tekst pierwszy 498");

strcat(xyz, "tekst drugi 498");

strcat(xyz, "itd.");

jak by to wygladalo dla format bo nie dziala mi z tym \ i ^

format(vd,255,"%i %i %i %i %i %i %i %i %i %i %i" |tu podzielic o ile mozna|,MQ[id],Q0[id],Q1[id],Q2[id],Q3[id],Q4[id],Q5[id],Q6[id],Q7[id],Q8[id],Q9[id],Q10[id]);

Użytkownik Kmf!p edytował ten post 09.03.2014 15:23
Odpowiedz

  • +
  • -
Kmf!p - zdjęcie Kmf!p 09.03.2014

ale to proste ;P

wystarczy kliknac enter tam gdzie chcemy przedzielic i sie kompiluje.

zobacze tylko czy problemow nie bedzie na serwie i pozniej dam znac.


Użytkownik Kmf!p edytował ten post 09.03.2014 15:47
Odpowiedz

  • +
  • -
Kmf!p - zdjęcie Kmf!p 14.03.2014

ok dziala. musialem tylko do tego zapisu dodac nick gracza bo jak ktos zmienil nick na serwerze to sie resetowal zapis ;) mozna zamknac.

Odpowiedz
Zablokowany