Tutaj proponuje kod do podmianki aby ułatwić graczom rozdzielanie punktów.
Należy podmienić obie funkcje
public skilltree(id) i public skill_menu(id, key)
na przyciskach 5-8 możemy przydzielić wszystkie punkty w jedną umiejętność a na przyciskach od 1-4 jest przyśpieszone rozdawanie punktów (zamiast 1 to 2)
Na samym początku public skill_menu(id,key) jest zadeklarowana maksymalna ilość punktów jakie możemy dać dla jednej umiejętności ( new
max_skill=Xi dla 100 leveli za X podstawiamy 50, dla 200 leveli to bedzie 100, dla 400 to bedzie 200
Przykład: Gracz ma 44 level - 86 punktów do rozdzielenia, wciska 5 i 6 i ma już rozdzielone punkty 50 w inteligencje a to co zostało czyli 36 punktów w siłe a to wszystko po 2 kliknięciach.
public skilltree(id) { new text[513] new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7) format(text, 512, "\yWybierz Staty- \rPunkty: %i^n^n\w1. Inteligencja [%i] [Wieksze obrazenia czarami]^n\w2. Sila [%i] [Wiecej zycia]^n\w3. Zrecznosc [%i] [Bronie zadaja ci mniejsze obrazenia]^n\w4. Zwinnosc [%i] [Szybciej biegasz i magia zadaje ci mniejsze obrazenia]^n\w5. Wszystko w Inteligencje ^n\w6. Wszystko w sile ^n\w7. Wszystko w zrecznosc ^n\w8. Wszystko w zwinosc",player_point[id],player_intelligence[id],player_strength[id],player_agility[id],player_dextery[id]) keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7) show_menu(id, keys, text) return PLUGIN_HANDLED } public skill_menu(id, key) { new max_skill=X switch(key) { case 0: { if (player_intelligence[id]<max_skill){ player_point[id]-=2 player_intelligence[id]+=2 } else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety") } case 1: { if (player_strength[id]<max_skill){ player_point[id]-=2 player_strength[id]+=2 } else client_print(id,print_center,"Maxymalny poziom sily osiagniety") } case 2: { if (player_agility[id]<max_skill){ player_point[id]-=2 player_agility[id]+=2 player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100) } else client_print(id,print_center,"Maxymalny poziom zrecznosci osiagniety") } case 3: { if (player_dextery[id]<max_skill){ player_point[id]-=2 player_dextery[id]+=2 set_speedchange(id) } else client_print(id,print_center,"Maxymalny poziom zwinnosci osiagniety") } case 4: { if (player_point[id]+player_intelligence[id] <= max_skill) { player_intelligence[id]+=player_point[id] player_point[id]=0 } else { player_point[id]-=max_skill-player_intelligence[id] player_intelligence[id]=max_skill client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety") } } case 5: { if (player_point[id]+player_strength[id] <= max_skill) { player_strength[id]+=player_point[id] player_point[id]=0 } else { player_point[id]-=max_skill-player_strength[id] player_strength[id]=max_skill client_print(id,print_center,"Maxymalny poziom sily osiagniety") } } case 6: { if (player_point[id]+player_agility[id]<max_skill) { player_agility[id]+=player_point[id] player_point[id]=0 } else { player_point[id]-=max_skill-player_agility[id] player_agility[id]=max_skill client_print(id,print_center,"Maxymalny poziom zrecznosci osiagniety") } player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100) } case 7: { if (player_point[id]+player_dextery[id]<max_skill) { player_dextery[id]+=player_point[id] player_point[id]=0 } else { player_point[id]-=max_skill-player_dextery[id] player_dextery[id]=max_skill client_print(id,print_center,"Maxymalny poziom zwinnosci osiagniety") } set_speedchange(id) } } if (player_point[id] > 0) skilltree(id) return PLUGIN_HANDLED }
Mala poprawka, dla punktow zwinnosci byla literowka w funkcji i jesli ktos mial mniej punktow niz max_skill i wrzucal je w zwinnosc to wychodzily liczby ujemne. Kod juz jest poprawiony a Ci ktorzy wgrali go wczesniej proszeni sa o aktualizacje.
Użytkownik ZiuTeK edytował ten post 27.04.2010 19:08