Typy zmiennych
kotlet 01.12.2012
Mam taki kod:
Co mam w nim zmienić, żeby wszystko działało, tzn za każde 2 lvle dodawało mi 1 punkt do wykorzystania na rozwój umiejętności klasy?
new punkty_umiejetnosci[33]; new skill1[33]; new skill2[33]; new skill3[33]; new level_gracza = cod_get_user_level(id); punkty_umiejetnosci[id] = (level_gracza)/2-skill1[id]-skill2[id]-skill3[id]; new punkty[id] = floatround(punkty_umiejetnosci[id], floatround_floor); if(punkty[id] < 1) return PLUGIN_CONTINUE;
Co mam w nim zmienić, żeby wszystko działało, tzn za każde 2 lvle dodawało mi 1 punkt do wykorzystania na rozwój umiejętności klasy?
ogieR8
02.12.2012
Użyj floatround (_flooor) już jak ustawiasz wartość punkty_umiejetnosci, bo mając 81lvl, skill1=5, skill2=10, skill3=15 będzie to tak wyglądać: 81/2-5-10-15 = 40.5-30=10.5
A wartość przypisujesz do zwykłej zmiennej, co oznacza, że może przyjąć wartości liczb całkowitych (np. -10,-3,0,3,10). Więc, aby tego uniknąć zaokrąglij liczbę od razu, a powinno działać. Jeśli chcesz tak jak Ty, to rejestracja zmiennej punkty_umiejetnosci[33] powinna wyglądać tak:
Co się zmieniło ? Dodaliśmy "Float:" przed nazwą zmiennej, co oznacza, że rejestrujemy zmienną zmiennoprzecinkową, która może mieć ułamki w sobie
Polecam osobiście poradnik o typach zmiennych : http://amxx.pl/topic...ienne-co-i-jak/
Pozdrawiam.
Użytkownik ogieR- edytował ten post 02.12.2012 00:01
A wartość przypisujesz do zwykłej zmiennej, co oznacza, że może przyjąć wartości liczb całkowitych (np. -10,-3,0,3,10). Więc, aby tego uniknąć zaokrąglij liczbę od razu, a powinno działać. Jeśli chcesz tak jak Ty, to rejestracja zmiennej punkty_umiejetnosci[33] powinna wyglądać tak:
new Float:punkty_umiejetnosci[33]
Co się zmieniło ? Dodaliśmy "Float:" przed nazwą zmiennej, co oznacza, że rejestrujemy zmienną zmiennoprzecinkową, która może mieć ułamki w sobie
Polecam osobiście poradnik o typach zmiennych : http://amxx.pl/topic...ienne-co-i-jak/
Pozdrawiam.
Użytkownik ogieR- edytował ten post 02.12.2012 00:01
kotlet 02.12.2012
A co, jeśli mam coś takiego?
Plugin pokazuje punkty umiejętności jako -1, wystarczy dodać ten float:punkty, i pyknąć floatround?
Jest jeszcze jeden problem, nie zapisuje lvl'a(do pliku vault).
Edit: float:punkty[33], i punkty_umiejetnosci[id]=floatround(punkty[id],floatround_floor), nie podziałało.
Użytkownik kotlet edytował ten post 02.12.2012 11:14
public ZapiszDane(id) { new name[48]; get_user_name(id,name,47); new level = cod_get_user_level(id); new vaultkey[64],vaultdata[128]; formatex(vaultkey,63,"%s-umiejetnosci",name); formatex(vaultdata,127,"%i#%i#%i#%i", skill1[id], skill2[id], skill3[id], level); nvault_set(plik_vault,vaultkey,vaultdata); } public WczytajDane(id) { new name[48]; get_user_name(id,name,47); new vaultkey[64],vaultdata[128]; formatex(vaultkey,63,"%s-umiejetnosci",name); new level = cod_get_user_level(id); formatex(vaultdata,127,"%i#%i#%i#%i", skill1[id], skill2[id], skill3[id], level); nvault_get(plik_vault,vaultkey,vaultdata,127) new first[16], second[16], third[16], fourth[16]; parse(vaultdata, first, 15, second, 15, third, 15, fourth, 15); skill1[id] = str_to_num(first); skill2[id] = str_to_num(second); skill3[id] = str_to_num(third); level_gracza[id] = str_to_num(fourth); punkty_umiejetnosci[id] = (level_gracza[id]-1)/2-skill1[id]-skill2[id]-skill3[id]; }
Plugin pokazuje punkty umiejętności jako -1, wystarczy dodać ten float:punkty, i pyknąć floatround?
Jest jeszcze jeden problem, nie zapisuje lvl'a(do pliku vault).
Edit: float:punkty[33], i punkty_umiejetnosci[id]=floatround(punkty[id],floatround_floor), nie podziałało.
Użytkownik kotlet edytował ten post 02.12.2012 11:14
ogieR8
02.12.2012
Hmm, w zapisie przypisujesz według natywów wartość lvl do zmiennej level (bez indeksu na dodatek !), a w odczycie przypisujesz tą wartość do zmiennej level_gracza[id]. Hmm ? Po co robić zmienną 'level', jak masz 'level_gracza[id' ? Tak czy siak w zapisie brakuję Ci indexu.
Pokaż cały kod, bo się gubię po tym co piszesz, jak rejestrujesz dane zmienne itd
Pokaż cały kod, bo się gubię po tym co piszesz, jak rejestrujesz dane zmienne itd
kotlet 02.12.2012
new Float:punkty[33]; new punkty_umiejetnosci[33]; new skill1[33]; new skill2[33]; new skill3[33]; new level_gracza[33]; (...) public plugin_init() { plik_vault = nvault_open("pliczek"); if(plik_vault == INVALID_HANDLE) set_fail_state("Nie moge otworzyc pliku"); } public plugin_end() { nvault_close(plik_vault) } public client_authorized(id) { WczytajDane(id); } (...) public skills(id) { new pierwszy[65]; new drugi[60]; new trzeci[60]; new tytul[60]; punkty_umiejetnosci[id] = (level_gracza[id]-1)/2-skill1[id]-skill2[id]-skill3[id]; format(pierwszy, charsmax(pierwszy), "Stealth: \r%i", skill1[id]); format(drugi, charsmax(drugi), "Piercing Shot: \r%i", skill2[id]); format(trzeci, charsmax(trzeci), "Elixir: \r%i", skill3[id]); format(tytul, charsmax(tytul), "Ulepsz swoje umiejetnosci \r(%i)", punkty_umiejetnosci[id]); new skille = menu_create(tytul, "g_Skills"); new unlock = menu_makecallback("unlockmenu"); new lock = menu_makecallback("lockmenu"); if(skill1[id] >= 5) { menu_additem(skille, pierwszy,"",0, lock); } else { menu_additem(skille, pierwszy,"",0, unlock); } if(skill2[id] >= 5) { menu_additem(skille, drugi,"",0, lock); } else { menu_additem(skille, drugi,"",0, unlock); } if(skill3[id] >=5) { menu_additem(skille, trzeci,"",0, lock); } else { menu_additem(skille, trzeci,"",0, unlock); } menu_display(id, skille); } public g_Skills(id, menu, item){ if(item == MENU_EXIT){ menu_destroy(menu) return PLUGIN_HANDLED } if(punkty_umiejetnosci[id] < 1) { return PLUGIN_CONTINUE } if(punkty_umiejetnosci[id] > 1) { skills(id); } switch(item) { case 0:{ skill1[id]+=1; punkty_umiejetnosci[id]-=1; } case 1:{ skill2[id]+=1; punkty_umiejetnosci[id]-=1; } case 2:{ skill3[id]+=1; punkty_umiejetnosci[id]-=1; } } return PLUGIN_CONTINUE; } (...) public ZapiszDane(id) { new name[48]; get_user_name(id,name,47); new vaultkey[64],vaultdata[128]; formatex(vaultkey,63,"%s-umiejetnosci",name); formatex(vaultdata,127,"%i#%i#%i", skill1[id], skill2[id], skill3[id]); nvault_set(plik_vault,vaultkey,vaultdata); } public WczytajDane(id) { new name[48]; get_user_name(id,name,47); new vaultkey[64],vaultdata[128]; formatex(vaultkey,63,"%s-umiejetnosci",name); formatex(vaultdata,127,"%i#%i#%i", skill1[id], skill2[id], skill3[id]); nvault_get(plik_vault,vaultkey,vaultdata,127) new first[16], second[16], third[16], fourth[16]; parse(vaultdata, first, 15, second, 15, third, 15); skill1[id] = str_to_num(first); skill2[id] = str_to_num(second); skill3[id] = str_to_num(third); punkty[id] = (level_gracza[id]-1)/2-skill1[id]-skill2[id]-skill3[id]; punkty_umiejetnosci[id] = floatround(punkty[id], floatround_floor); }
Użytkownik kotlet edytował ten post 02.12.2012 15:20
Gość_21977_* 02.12.2012
Wiadomość wygenerowana automatycznie
Ten temat został zamknięty przez moderatora.
Powód: Autor tematu zbanowany
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL
Ten temat został zamknięty przez moderatora.
Powód: Autor tematu zbanowany
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL