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

Tworzenie wlasnego EXP MOD'A nvault

tutorial

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
25 odpowiedzi w tym temacie

#1 ::Gogiel::

    Zaawansowany

  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:77
  • GG:
  • Imię:Hm... xD Patryk xD
  • Lokalizacja:Bydgoszcz
Offline

Napisano 23.07.2012 13:17

*
Popularny

Po pierwsze wszystkie prawa autorskie tego TUTORIALA NALEŻĄ DO fxfighter zhttp://forums.alliedmods.net

Wstawiam go na to forum aby pomóc poszukującym takich poradników w j. polskim.

Kolejnym powodem umieszczenia jest to iż opierałem sie na innych modach, lecz nie zawsze wszystko działało.

Zostało tutaj dodane kilka ciekawych funkcji które urozmaica troche ten podstawowy MOD.


"Postanowiłem wam pokazać jak stworzyć prosty exp MOD
Przed rozpoczęciem musisz się orjętować w średnim stopniu w scriptingu

Rejestrowanie Modułów

#include <amxmodx>
#include <amxmisc>
#include <nvault>


Definiujemy Maksymalną Liczbę Postaci
W obecnej postaci kodu mamy 5 postaci, natomiast może się tu znajdować dowolna liczba np: 2 lub 7

#define MAXCLASSES 5


Tworzymy Zmienne które będą odpowiadąły za zapisanie twojego poziomu klasy i doświadczenia

new PlayerXP[33],PlayerLevel[33],PlayerClass[33]
//to jest odpowiedzialne za przyznanie dodatkowego expa za zabicia
new XP_Kill,XP_Knife,XP_Hs,SaveXP
//To jest na potrzeby nVault, aby mógł zapisac twoje osiągnięcia
new g_vault

Tutaj mamy odwołanie do wcześniej zdefiniowanej maksymalnej ilości klas, Ibecne nazwy możemy zmienić na dowolne

new const CLASSES[MAXCLASSES][] = {
"None",
"Dog",
"Cat",
"Horse",
"Cow"
}

Tutaj jest 5 Postaci, ponieważ wcześniej zdefiniowaliśmy maksymalną liczbę = 5.


Teraz tworzymy Poziomy i to ile doświadczenia potrzeba, aby osiągnąc kolejny poziom.



new const LEVELS[7] = {
0,
100,//To określa ile doświadczenia potrzebujesz do danego poziomu
200,
400,
800,
1600,
3200
}

Teraz Tworzymy plugin_init()


public plugin_init()
{
register_plugin("XpMod", "1.0", "Fxfighter")

//Potrzebujemy tego do sprawdzenia twojego poziomu po tym jak kogoś zabijesz
register_event("DeathMsg", "eDeath", "a")
//Czy się zapisuje ??
SaveXP = register_cvar("SaveXP","1")
//Ile doświadczenia dostajesz za każde zabicie ?
XP_Kill=register_cvar("XP_per_kill", "20")
//Jeżeli komuś walniesz HS ile dostaniesz doświadczenia za ten wyczyn
XP_Hs=register_cvar("XP_hs_bonus","20")
//Tutaj jest ustawione doświadczenie za zabicie
XP_Knife=register_cvar("XP_knife_bonus","20")
//Właśnie wywołaliśmy nowe połączenie nvault
// Wywołaliśmy je jako animod
g_vault = nvault_open("animod")
// Rejestruje komendę odpowiedzialną za wywołanie i zmianę klasy
register_clcmd("say /class", "ChangeClass")
register_clcmd("say_team /class", "ChangeClass")
//Pokazuje ile masz doświadczenia
register_clcmd("say /xp", "ShowHud")
register_clcmd("say_team /xp", "ShowHud")
}

Teraz zabieramy sie do stworzenia funkcji Death . Pamiętacie jak zakomentowaliśmy "eDeath" w plugin_init()?Będzie Ona śledzić doświadczenie jeżeli zdobędziesz wyższy poziom.

public eDeath( ) //Nazwa Funkcji
{
// If the player's Class is nothing, then dont bother to do any of the below
if(PlayerClass[attacker] == 0)
return PLUGIN_CONTINUE

// Tworzy zmienną do przechowywania informacji o ID atakującego
new attacker = read_data( 1 )
// Stworzyliśmy zmiennądo przechowywania informacji o zaatakowanym
// Jeżeli gracz został zabity
new iVictim = read_data( 2 )
// Jeżeli Gracz został zabity Hs'em, ta funkcja mu przyzna doświadczenie korzystając z cvaru Xp_Hs
new headshot = read_data( 3 )

// Jaka broń została użyta
new clip, ammo, weapon = get_user_weapon(attacker,clip,ammo);
PlayerXP[attacker] += get_pcvar_num(XP_Kill)
// Używamy xp_hs cvaru
// Sprawdza czy ofiara została zabita poprzez HS
if(headshot)
// Daj jemu / jej dodatkowe doświadczenie
PlayerXP[attacker] += get_pcvar_num(XP_Hs)
// Sprawdza czy ofiarazostała zabita nożem
if(weapon == CSW_KNIFE)
// Daj jemu / jej dodatkowe doświadczenie
PlayerXP[attacker] += get_pcvar_num(XP_Knife)
// Sprawdza czy gracz ma dostateczna liczbę doświadczenia do awanswania na anstępny poziom

while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
{ // this will create the Congratulations message.
client_print(attacker, print_chat, "[Animal Mod] Gratulacje! Jestes masz teraz poziom %i %s!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
// Add his/her level
PlayerLevel[attacker] += 1
}
// Pokazuje graczowi jego poziom w HUD
ShowHud(attacker)

}


To jest funkcja odpowiadająca za wyświetlanie poziomu, doświadczenia i klasy gracza w HUD

public ShowHud(id)
{
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0)
show_hudmessage(id, "Poziom: %i^nDoswiadczenie: %i^nPostac: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
}

Informacja: ^n Określa nową linię


Tutaj jest Menu.W nim jest możliwośc wyboru Zwierzątka jakim będziesz grać. Używa nowego systemu menu.Nie mam ochoty na dodawanie nowcyh funkcji do tego menu, here is the original tutorial on that


public ChangeClass(id)
{
new menu = menu_create("Class Menu" , "Class_Handle");
menu_additem(menu ,"Dog", "1" , 0);
menu_additem(menu ,"Cat", "2" , 0);
menu_additem(menu ,"Horse", "3" , 0);
menu_additem(menu ,"Cow", "4" , 0);
menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
menu_display(id , menu , 0);
return PLUGIN_CONTINUE;
}

public Class_Handle(id , menu , item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
}
new szCommand[6] , szName[64]; new access , callback;
menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
new i = str_to_num(szCommand)
if(PlayerClass[id] != i)
{
PlayerClass[id] = i client_print(id,print_chat,"You are now a %s",CLASSES[i])
}
else
{
client_print(id,print_chat,"You are alredy a %s",CLASSES[i])
}
menu_destroy(menu);
return PLUGIN_CONTINUE
}


To jest funkcja odpowiadająca za wywołanie odpowiednich działań gdy z serwerem łączy sie gracz


public client_connect(id)
{
// OTylko wtedy gdy zapis jest włączony
if(get_pcvar_num(SaveXP) == 1)
{
// Ładuje twoje dane GRACZA
LoadData(id)
}
}

To jest funkcja odpowiadająca za wywołanie odpowiednich działań gdy Gracz wychodzi z serwera

public client_disconnect(id)
{
// To się dzieje tylko gdy zapis jest włączony
if(get_pcvar_num(SaveXP) == 1)
{
// Zapiszmy danę
SaveData(id)
}
}

Teraz tworzymy funkcje odpowiedzialną za zapis danych


public SaveData(id)
{
// Wybierz Steam id gracza, potrzebujemy tego ponieważ w tym modzie zapis jest na SID
new AuthID[35] get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
// Co ma byc w animod pliku
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
// zapisuje dane
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}


Teraz tworzymy funkcje odpowiedzialną za ładowanie danych postaci


public LoadData(id)
{
new AuthID[35] get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
// szuka
format(vaultkey,63,"%s-Mod",AuthID)
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id])
// ładuje dane
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
PlayerXP[id] = str_to_num(playerxp)
PlayerLevel[id] = str_to_num(playerlevel)
return PLUGIN_CONTINUE
}



I teraz możemy dodać to co chcemy bo mamy szkielet :D

Wszystkie komentarze zostały przetłumaczone na "Mój Język"
I są one tym co chciał nam przekazać właściciel TUTORIALA.

Jeżeli są jakieś błędy w nazewnictwie ect. najmocniej przepraszam.

Jeżeli złamałem tym tematem jakiś regulamin Proszę o Wyrozumiałą Karę :)

TUTEK NIE MÓJ !!

Oparte na New XP Mod tutorial - AlliedModders

Mam nadzieje że komuś się przyda :)
Jeżeli cos pominąłem w tłumaczeniu I'm so sory but I am Only Person.
Błędów nie popełnia tylko ten kto nic nie robi :)
Testowałem wszystko poza zapisem.... ::Ggiel::

Użytkownik benio101 edytował ten post 24.07.2012 07:29
Usunięcie niepotrzebnych znaków nowej linii na początku niektórych fragmentów kodu SMA

  • +
  • -
  • 8
Dołączona grafika
Dołączona grafika
Dołączona grafika
SERWER SA:MP 194.28.50.14:25064
Zapraszamy Do Gry http://cs-pobojowisko.eu

#2 Pan PrO

    Wszechpomocny

  • Użytkownik

Reputacja: 99
Zaawansowany

  • Postów:388
  • Lokalizacja:PC
Offline

Napisano 24.07.2012 15:13

W zapisie jest błąd. Na każdej klasie będziemy mieli taki sam lvl
  • +
  • -
  • 0

#3 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 981
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 24.07.2012 17:42

format -> formatex

format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id]
to można usunąć w LoadData

kod mógłby być lepszy
  • +
  • -
  • 0

#4 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 24.07.2012 19:02

Dużo błędów i niedociągnięć, ale wiem, że to nie Twój kod, więc nie można mieć do Ciebie żadnych uwag, choć wypadało by poprawić kod przed taką publikacją.
  • +
  • -
  • 3

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#5 ::Gogiel::

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:77
  • GG:
  • Imię:Hm... xD Patryk xD
  • Lokalizacja:Bydgoszcz
Offline

Napisano 24.07.2012 22:26

Sebul co do błędów i nie dociągnięc byłbym wdzięczny za wypisanie ich Aby po prostu ktoś bazując na tym ich nie popełnił :D

Oczywiście jakbyś miał ochotę i czas.

Problemem jest to iż nie mam już możliwości edycji tego postu....

I jak zaznaczyłem kod nie jest mój więc nie odpowiadam za poziom napisania, natomiast przyznam że odpowiadam za PUBLIKACJĘ, co zobowiązuje mnie do poprawienia, lecz nie bardzo wiem co jest źle....
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika
SERWER SA:MP 194.28.50.14:25064
Zapraszamy Do Gry http://cs-pobojowisko.eu

#6 unknowN.

    Profesjonalista

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:196
  • Imię:Mateusz
  • Lokalizacja:polska
Offline

Napisano 27.07.2012 10:20

A pomógł byś mi w pisaniu prostego exp moda na hns ganiany?
  • +
  • -
  • 0

#7 ::Gogiel::

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:77
  • GG:
  • Imię:Hm... xD Patryk xD
  • Lokalizacja:Bydgoszcz
Offline

Napisano 27.07.2012 11:56

Załóż temat a Ci pomożemy :D Nie tylko ja ale sądzę że większość społeczności Amxx.pl Która charakteryzuj się pomocniczością i daj link w tym temacie lub na pw :)
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika
SERWER SA:MP 194.28.50.14:25064
Zapraszamy Do Gry http://cs-pobojowisko.eu

#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 27.07.2012 12:31

*
Popularny

#include <amxmodx>
#include <amxmisc>
#include <nvault>


new const CLASSES[][] = {
"None",
"Dog",
"Cat",
"Horse",
"Cow"
}

new const LEVELS[] = {
0,
100,
200,
400,
800,
1600,
3200
}

new PlayerXP[33], PlayerLevel[33], PlayerClass[33];
new XP_Kill, XP_Knife, XP_Hs, SaveXP, g_vault;

public plugin_init() {
register_plugin("XpMod", "1.0", "Fxfighter");

register_event("DeathMsg", "eDeath", "a");

SaveXP = register_cvar("SaveXP", "1");
XP_Kill = register_cvar("XP_per_kill", "20");
XP_Hs = register_cvar("XP_hs_bonus", "20");
XP_Knife = register_cvar("XP_knife_bonus", "20");
g_vault = nvault_open("animod");

register_clcmd("say /class", "ChangeClass");
register_clcmd("say_team /class", "ChangeClass");
register_clcmd("say /xp", "ShowHud");
register_clcmd("say_team /xp", "ShowHud");
}

public eDeath() {
new attacker = read_data(1);
new iVictim = read_data(2);

if(!is_user_connected(attacker) || !is_user_connected(iVictim))
return;

if(attacker == iVictim) // mozna tez dodac sprawdzanie druzyn
return;

new headshot = read_data(3);
new weaponname[32];
read_data(4, weaponname, 31);

if(equal(weaponname, "grenade")) {
format(weaponname, 31, "weapon_he%s", weaponname);
}
else if(!equal(weaponname, "weapon_", 7))
format(weaponname, 31, "weapon_%s", weaponname);

new weapon = get_weaponid(weaponname);

PlayerXP[attacker] += get_pcvar_num(XP_Kill);

if(headshot)
PlayerXP[attacker] += get_pcvar_num(XP_Hs);

if(weapon == CSW_KNIFE)
PlayerXP[attacker] += get_pcvar_num(XP_Knife);

new bool:zdobyl, bool:stracil;
while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
{
++PlayerLevel[attacker];
zdobyl = true;
}
while(PlayerXP[attacker] < LEVELS[PlayerLevel[attacker]])
{
--PlayerLevel[attacker];
stracil = true;
}
if(stracil) {
client_print(attacker, print_chat, "Spadles do %i poziomu!", PlayerLevel[attacker]);
}
else if(zdobyl) {
client_print(attacker, print_chat, "Awansowales do %i poziomu!", PlayerLevel[attacker]);
}
ShowHud(attacker);
SaveData(attacker);
}

public ShowHud(id) {
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0);
show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s", PlayerLevel[id], PlayerXP[id], CLASSES[PlayerClass[id]]);

return PLUGIN_HANDLED;
}

public ChangeClass(id) {
new menu = menu_create("Class Menu", "Class_Handle");

new ile = sizeof(CLASSES);
for(new i=1; i<ile; ++i)
menu_additem(menu, CLASSES[i]);

menu_display(id, menu);

return PLUGIN_HANDLED;
}

public Class_Handle(id, menu, item) {
if(item++ == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}

if(PlayerClass[id] != item) {
PlayerClass[id] = item;
client_print(id, print_chat, "You are now a %s", CLASSES[item]);
}
else {
client_print(id, print_chat, "You are alredy a %s", CLASSES[item]);
}

menu_destroy(menu);
return PLUGIN_HANDLED;
}

public client_authorized(id) {
PlayerXP[id] = 0;
PlayerLevel[id] = 1;
PlayerClass[id] = 0;

if(get_pcvar_num(SaveXP) == 1)
LoadData(id);
}

public client_disconnect(id) {
if(get_pcvar_num(SaveXP) == 1)
SaveData(id);

PlayerXP[id] = 0;
PlayerLevel[id] = 1;
PlayerClass[id] = 0;
}

public SaveData(id) {
if(g_vault == INVALID_HANDLE)
return;

new AuthID[32]; get_user_authid(id, AuthID, 31);

new vaultkey[64], vaultdata[128];
format(vaultkey, 63, "%s-Mod", AuthID);
format(vaultdata, 127, "%i %i", PlayerXP[id], PlayerLevel[id]);
nvault_set(g_vault, vaultkey, vaultdata);
}

public LoadData(id) {
if(g_vault == INVALID_HANDLE)
return;

new AuthID[32]; get_user_authid(id, AuthID, 31);

new vaultkey[64], vaultdata[128];
format(vaultkey, 63, "%s-Mod", AuthID);
if(nvault_get(g_vault, vaultkey, vaultdata, 127)) {
new playerxp[11], playerlevel[11];
parse(vaultdata, playerxp, 10, playerlevel, 10);

PlayerXP[id] = str_to_num(playerxp);
PlayerLevel[id] = str_to_num(playerlevel);
}
}

Według mnie, tak powinna wyglądać całość (mniej niż 200 linijek :D).
  • +
  • -
  • 12

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#9 ::Gogiel::

    Zaawansowany

  • Autor tematu
  • Użytkownik

Reputacja: 18
Początkujący

  • Postów:77
  • GG:
  • Imię:Hm... xD Patryk xD
  • Lokalizacja:Bydgoszcz
Offline

Napisano 27.07.2012 12:51

Sebul a z zapisem każdego exp i lvl na osobną klasę jakby wyglądała funkcja ??


I jakbyś był uprzejmy dodać jak stworzyć zapis na sql tego moda, bo próbuję samodzielnie ale nie zapisuje niczego .....tylko tabele tworzy ....
  • +
  • -
  • 0
Dołączona grafika
Dołączona grafika
Dołączona grafika
SERWER SA:MP 194.28.50.14:25064
Zapraszamy Do Gry http://cs-pobojowisko.eu

#10 unknowN.

    Profesjonalista

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:196
  • Imię:Mateusz
  • Lokalizacja:polska
Offline

Napisano 27.07.2012 12:59


::Gogiel:: to ja jeszcze wszystkie szczegóły ustalę,wszystko napisze co i jak i dam ci znać.

  • +
  • -
  • 0

#11 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 07.08.2012 06:58

@sebul

Czy twój kod czasem nie bd pokazywał co rundę że straciłeś poziom ??
  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#12 Jak się nazwać

    Wszechmogący

  • Power User

Reputacja: 169
Profesjonalista

  • Postów:617
  • Imię:a
  • Lokalizacja:a
Offline

Napisano 07.08.2012 11:33

Ciekawe w jaki sposób skoro tam nie ma nawet rejestracji eventu nowa runda / hltv / początek rundy / resethud / respawnu więc ciekawe jak wyświetlałaby się taka informacja...
  • +
  • -
  • 0
Pisze na zamówienie statystyki pod nvault. GG: 15600964

#13 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 07.08.2012 12:29

@Up

jak to nie ma ??

while(PlayerXP[attacker] < LEVELS[PlayerLevel[attacker]])
{
--PlayerLevel[attacker];
stracil = true;
}
if(stracil) {
client_print(attacker, print_chat, "Spadles do %i poziomu!", PlayerLevel[attacker]);
}

  • +
  • -
  • 0

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#14 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 07.08.2012 12:48

@sebul

Czy twój kod czasem nie bd pokazywał co rundę że straciłeś poziom ??

Nie i nie minusuj kogoś za to, że nie masz racji.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#15 kyriuch

    Zaawansowany

  • Użytkownik

Reputacja: -6
Nowy

  • Postów:82
  • GG:
  • Imię:Tomek
  • Lokalizacja:Bydgoszcz
Offline

Napisano 10.10.2012 10:16

if(PlayerClass[attacker] == 0) return PLUGIN_CONTINUE


Przed deklaracją id attackera -.-

client_print(attacker, print_chat, "[Animal Mod] Gratulacje! Jestes masz teraz poziom %i %s!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])


Przed dodaniem levela użytkownikowi -.-
  • +
  • -
  • 0

#16 Dyktator

    Banned

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:5
  • Imię:Eryk
  • Lokalizacja:Częstochowa
Offline

Napisano 03.12.2012 15:06

sebul jakoś glut1997 ma racje u mnie tak jest że nie pisze Awansowałeś tylko Spadłeś do pozmiomu np.: 5 ...

#17 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.12.2012 19:25

A niby w czym ma rację? W tym, że co rundę będzie pokazywać, że straciło się poziom? :facepalm:

Jedyne co może wpłynąć na to, że poziom może tak po prostu spadać, to brak sprawdzania, czy nie przekroczyło się wielkości tablicy z expem.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#18 Dyktator

    Banned

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:5
  • Imię:Eryk
  • Lokalizacja:Częstochowa
Offline

Napisano 03.12.2012 19:30

Brak słów. Ja tylko piszę jak jest... Nie wiem czy jak jest nowa runda tylko jak Awansujesz to pisze spadłeś do x lvl a ty że to ujmę "plujesz się"...

Zrobiłeś błąd każdemu może się zdarzyć.

Użytkownik Dyktator edytował ten post 03.12.2012 19:33


#19 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 03.12.2012 20:12

Brak słów. Ja tylko piszę jak jest... Nie wiem czy jak jest nowa runda tylko jak Awansujesz to pisze spadłeś do x lvl a ty że to ujmę "plujesz się"...

Zrobiłeś błąd każdemu może się zdarzyć.

Nie wiem gdzie się pluję, ale dobra.

Lepiej by było jakbyś rzeczywiście pisał jak jest, a nie pisał bzdury, bo tak jak to wcześniej zostało wyjaśnione, w pluginie nigdzie nie ma rejestrowania eventu nowej rundy, itp. W każdym bądź razie był problem z tak jakby spadaniem poziomu, bo pętla while była źle napisana, więc na przyszłość opisywać bardziej trafnie problem/bład/bug, bo nikt nie będzie czegoś sprawdzał/poprawiał jeśli ktoś będzie pisał jakieś bzdury. W załączniku dałem trochę inną wersję xpmoda, bez buga z wyświetlaniem się tekstu o spadku poziomu oraz z zapisem na każdą klasę oddzielnie.

P.S. Prawdopodobnie niedługo się pożegnamy ;]

Załączone pliki


  • +
  • -
  • 3

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#20 aaaaaa

    Pomocny

  • Użytkownik

Reputacja: -1
Nowy

  • Postów:59
  • GG:
  • Lokalizacja:Ostrołęka
Offline

Napisano 16.05.2013 10:00

Niepowinienem odświeżac tak starego tematu ale chcialbym sie zapytac odnosnie tego pluginu czy moznabyloby dodac skille do tych postaci ? i rozdawanie co level punktow ?


  • +
  • -
  • 0

b_350_20_A40A0B_000000_F4D7D7_BD0F0F.png

b_350_20_A40A0B_000000_F4D7D7_BD0F0F.png

b_350_20_A40A0B_000000_F4D7D7_BD0F0F.png

b_350_20_A40A0B_000000_F4D7D7_BD0F0F.png






Również z jednym lub większą ilością słów kluczowych: tutorial

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

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