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.
|
sql + klasy
#1
Napisano 21.09.2009 13:16
klasa lvl itd
1------2
2-----30
3-----itd
4
5
6
7
8
9
I tutaj kieruje do Micza pytanie czy da sie zrobic tak ze mozna miec wiecej niz 9 klas ?? Np wciska sie 9 (wiecej - dalej ) i masz od nowa 1,2 itd
#2
Napisano 21.09.2009 19:50
Jesli masz dosc checi i zapalu to mozesz i zrobic 60 klas.
#3
Napisano 26.09.2009 19:41
Rozwijana lista nie jest niczym szczegolnym, wiec w czym problem?
Jesli masz dosc checi i zapalu to mozesz i zrobic 60 klas.
a możesz mi pomóc z tym rozwijanym menu
#4
Napisano 26.09.2009 20:13
public select_class(id,lx[]) { if(is_user_bot(id)) return new text[512] new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7) (1<<8) format(text, 511,"yWybierz Klase - ^nw1. Mag^t^trLevel :%d ^nw2. Paladyn^trLevel :%d ^nw3. Mnich^t^trLevel :%d ^nw4. Zabojca^trLevel :%d ^nw5. Barbarzynca^trLevel :%d ^nw6. Nekromanta^trLevel :%d ^nw7. Ninja^t^trLevel :%d ^nw8. Lowca^t^trLevel :%d"^nwNastepna strona,lx[Mag],lx[Paladyn],lx[Mnich],lx[Zabojca],lx[Barbarzynca],lx[Nekromanta],lx[Ninja],lx[Hunter] ) show_menu(id, keys, text) } public select_class_menu(id, key) { g_haskit[id] = 0 switch(key) { case 0: { player_class[id] = Mag } case 1: { player_class[id] = Paladyn count_jumps(id) } case 2: { player_class[id] = Mnich } case 3: { player_class[id] = Zabojca } case 4: { player_class[id] = Barbarzynca } case 5: { player_class[id] = Nekromanta g_haskit[id] = 1 } case 6: { player_class[id] = Ninja } case 7: { player_class[id] = Hunter g_GrenadeTrap[id] = 1 } case 8: { menuklasy2(id,lx) } case 9: { return PLUGIN_HANDLED } } LoadXP(id, player_class[id]) CurWeapon(id) give_knife(id) return PLUGIN_HANDLED } public menuklasy2(id,lx[]) { if(is_user_bot(id)) return new text[512] new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7) (1<<8) format(text, 511,"yWybierz Klase - ^nw1. Mag^t^trLevel :%d ^nw2. Paladyn^trLevel :%d ^nw3. Mnich^t^trLevel :%d ^nw4. Zabojca^trLevel :%d ^nw5. Barbarzynca^trLevel :%d ^nw6. Nekromanta^trLevel :%d ^nw7. Ninja^t^trLevel :%d ^nw8. Lowca^t^trLevel :%d"^nwNastepna strona,lx[Mag],lx[Paladyn],lx[Mnich],lx[Zabojca],lx[Barbarzynca],lx[Nekromanta],lx[Ninja],lx[Hunter] ) show_menu(id, keys, text) } public select_menu_klasy2(id, key) { g_haskit[id] = 0 switch(key) { case 0: { player_class[id] = Mag } case 1: { player_class[id] = Paladyn count_jumps(id) } case 2: { player_class[id] = Mnich } case 3: { player_class[id] = Zabojca } case 4: { player_class[id] = Barbarzynca } case 5: { player_class[id] = Nekromanta g_haskit[id] = 1 } case 6: { player_class[id] = Ninja } case 7: { player_class[id] = Hunter g_GrenadeTrap[id] = 1 } case 8: { menuklasy2(id,lx) return PLUGIN_HANDLED } case 9: { return PLUGIN_HANDLED } } LoadXP(id, player_class[id]) CurWeapon(id) give_knife(id) return PLUGIN_HANDLED }
I w plugin_init dodać
register_menucmd(register_menuid("blalblalbalba"), 1023, "select_menu_klasy2")
Może cie to jakoś naprowadzi
Czy działa nie wiem:D
#5
Napisano 27.09.2009 15:29
public select_class(id,lx[]) { if(is_user_bot(id)) return new text[512] new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9) format(text, 511,"yWybierz Klase - ^nr1. wMag^t^tLevel y:%d ^nr2. wPaladyn^tLevel y:%d ^nr3. wMnich^t^tLevel y:%d ^nr4. wZabojca^tLevel y:%d ^nr5. wBarbarzynca^tLevel y:%d ^nr6. wNekromanta^tLevel y:%d ^nr7. wNinja^t^tLevel y:%d ^nr8. wLowca^t^tLevel y:%d ^nr9. wdalej",lx[Mag],lx[Paladyn],lx[Mnich],lx[Zabojca],lx[Barbarzynca],lx[Nekromanta],lx[Ninja],lx[Hunter] ) show_menu(id, keys, text) } public select_class_menu(id, key) { g_haskit[id] = 0 switch(key) { case 0: { player_class[id] = Mag } case 1: { player_class[id] = Paladyn } case 2: { player_class[id] = Mnich } case 3: { player_class[id] = Zabojca } case 4: { player_class[id] = Barbarzynca } case 5: { player_class[id] = Nekromanta g_haskit[id] = 1 } case 6: { player_class[id] = Ninja } case 7: { player_class[id] = Hunter g_GrenadeTrap[id] = 1 } case 8: { select_class1(id, lx) } case 9: { return PLUGIN_HANDLED } } LoadXP(id, player_class[id]) CurWeapon(id) give_knife(id) return PLUGIN_HANDLED } public select_class1(id,lx[]) { if(is_user_bot(id)) return new text[512] new keys = (1<<0)|(1<<1) format(text, 511,"yTEST - ^nr1. wTEST^t^tLevel y:%d",lx[nowaklasa] ) show_menu(id, keys, text) } public select_class_menu1(id, key) { g_haskit[id] = 0 switch(key) { case 0: { player_class[id] = nowaklasa } case 1: { return PLUGIN_HANDLED } } return PLUGIN_HANDLED }
z tym
}
case 8:
{
select_class1(id, lx)
}
nie chce sie skompilować
#6
Napisano 27.09.2009 15:46
public select_class_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { if(Errcode) { log_to_file("addons/amxmodx/logs/diablo.log","Error on select_class_handle query: %s",Error) } if(FailState == TQUERY_CONNECT_FAILED) { log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.") return PLUGIN_CONTINUE } else if(FailState == TQUERY_QUERY_FAILED) { log_to_file("addons/amxmodx/logs/diablo.log","select_class_handle Query failed.") return PLUGIN_CONTINUE } if(SQL_MoreResults(Query)) { new name[64] new name2[64] if(get_cvar_num("diablo_sql_save")==0) { new num = SQL_FieldNameToNum(Query,"nick") SQL_ReadResult(Query,num,name,63) } else if(get_cvar_num("diablo_sql_save")==1) { new num = SQL_FieldNameToNum(Query,"ip") SQL_ReadResult(Query,num,name,63) } else if(get_cvar_num("diablo_sql_save")==2) { new num = SQL_FieldNameToNum(Query,"sid") SQL_ReadResult(Query,num,name,63) } new plays[32],num get_players(plays,num) for(new i=0;i<num;i++) { new id=plays[i] if(get_cvar_num("diablo_sql_save")==0) { get_user_name(id,name2,63) replace_all ( name2, 63, "'", "Q" ) replace_all ( name2, 63, "`", "Q" ) } else if(get_cvar_num("diablo_sql_save")==1) get_user_ip ( id, name2, 63, 1 ) else if(get_cvar_num("diablo_sql_save")==2) get_user_authid(id, name2 ,63) if(equal(name,name2)) { new lx[9] while(SQL_MoreResults(Query)) { new num = SQL_FieldNameToNum(Query, "klasa") new i = SQL_ReadResult(Query, num) num = SQL_FieldNameToNum(Query, "lvl") lx[i] = SQL_ReadResult(Query, num) player_class_lvl[id][i] = lx[i] SQL_NextRow(Query) } select_class(id,lx) return PLUGIN_CONTINUE } } } return PLUGIN_CONTINUE }
Czyli z tym trzeba jakiś patent bo tu jest odwołanie "select_class(id,lx)", może na to zmień select_class_menu1, chociaż to raczej nie zadziała :s
#7
Napisano 27.09.2009 16:19
A i jescze 1 pytanie tam gdzie jest select_class(id,lx) mam tez dodawać select_class1(id,lx) ??
#8
Napisano 27.09.2009 16:58
#9
Napisano 27.09.2009 17:31
#10
Napisano 27.09.2009 18:13
public select_class_menu(id, key) { g_haskit[id] = 0 switch(key) { case 0: { player_class[id] = Mag } case 1: { player_class[id] = Paladyn } case 2: { player_class[id] = Mnich } case 3: { player_class[id] = Zabojca } case 4: { player_class[id] = Barbarzynca } case 5: { player_class[id] = Nekromanta g_haskit[id] = 1 } case 6: { player_class[id] = Ninja } case 7: { player_class[id] = Hunter g_GrenadeTrap[id] = 1 } case 8: { menuklasy[id]=1 select_class_query(id) } case 9: { return PLUGIN_HANDLED } }
public select_class_query(id) { if(is_user_bot(id)) return PLUGIN_HANDLED if(loaded_<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' />[id]==0) load_<img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/tongue2.gif' class='bbc_emoticon' alt='xP' />(id) if(g_boolsqlOK) { new name[64] new lx[9] if(player_class_lvl_save[id]==0) { if(get_cvar_num("diablo_sql_save")==0) { get_user_name(id,name,63) replace_all ( name, 63, "'", "Q" ) replace_all ( name, 63, "`", "Q" ) new q_command[512] format(q_command,511,"SELECT * FROM `%s` WHERE `nick`='%s' ",g_sqlTable,name) SQL_ThreadQuery(g_SqlTuple,"select_class_handle", q_command) } else if(get_cvar_num("diablo_sql_save")==1) { get_user_ip(id, name ,63,1) new q_command[512] format(q_command,511,"SELECT * FROM `%s` WHERE `ip`='%s' ",g_sqlTable,name) SQL_ThreadQuery(g_SqlTuple,"select_class_handle",q_command) } else if(get_cvar_num("diablo_sql_save")==2) { get_user_authid(id, name ,63) new q_command[512] format(q_command,511,"SELECT * FROM `%s` WHERE `sid`='%s' ",g_sqlTable,name) SQL_ThreadQuery(g_SqlTuple,"select_class_handle",q_command) } /* if(ret == RESULT_FAILED) { new szError[126] dbi_error(sql,szError,125) log_to_file("addons/amxmodx/logs/diablo.log","[Command Log] nie moglem wczytac lvl'i dla %s | klasy <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/cmok.gif' class='bbc_emoticon' alt=':*' />** %s",name,szError) dbi_free_result(ret) g_boolsqlOK=0 player_class_lvl_save[id]=0 dbi_close(sql) return PLUGIN_HANDLED } else if(ret == RESULT_NONE) { log_to_file("addons/amxmodx/logs/diablo.log","[Command Log] nie ma danych dla /klasa") create_klass(id) return PLUGIN_HANDLED } else while(ret && dbi_nextrow(ret)>0) { new i = dbi_result(ret, "klasa") lx[i] = dbi_result(ret, "lvl") player_class_lvl[id][i] = lx[i] } dbi_free_result(ret) player_class_lvl_save[id]=1 */ } else { for(new i=1;i<9;i++) lx[i]=player_class_lvl[id][i] if (menuklasy[id]=1){ select_class1(id,lx) } else { select_class(id,lx) } } } else sql_start() return PLUGIN_HANDLED }Jeszcze do:
public changerace
menuklasy[id]=0 żeby zawsze od 1 strony zaczynało
Myślę, że nic nie zapomniałem ;D
#11
Napisano 27.09.2009 20:33
#12
Napisano 27.09.2009 20:50
Załączone pliki
#13
Napisano 27.09.2009 21:02
Miczu help ;/
#14
Napisano 03.10.2009 16:25
Zrobiles przy tworzeniu klasy wpis, ze jest wiecej klas?
Poza tym jest duzo zmiennych globalnych co jest dostosowana do ilosci klas... Nie chcialo mi sie jeszcze robic define o liczbie klas w modzie to troche sie pomeczycie
#15
Napisano 03.10.2009 16:46
Zrobilem to tak jak kolega tam mowił dalej wiec
public select_class(id,lx[]) { if(is_user_bot(id)) return new text[512] new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9) format(text, 511,"yWybierz Klase - ^nr1. wMag^t^tLevel y:%d ^nr2. wPaladyn^tLevel y:%d ^nr3. wMnich^t^tLevel y:%d ^nr4. wZabojca^tLevel y:%d ^nr5. wBarbarzynca^tLevel y:%d ^nr6. wNekromanta^tLevel y:%d ^nr7. wNinja^t^tLevel y:%d ^nr8. wLowca^t^tLevel y:%d ^nr9. wdalej",lx[Mag],lx[Paladyn],lx[Mnich],lx[Zabojca],lx[Barbarzynca],lx[Nekromanta],lx[Ninja],lx[Hunter] ) show_menu(id, keys, text) } public select_class_menu(id, key,lx[]) { g_haskit[id] = 0 switch(key) { case 0: { player_class[id] = Mag } case 1: { player_class[id] = Paladyn } case 2: { player_class[id] = Mnich } case 3: { player_class[id] = Zabojca } case 4: { player_class[id] = Barbarzynca } case 5: { player_class[id] = Nekromanta g_haskit[id] = 1 } case 6: { player_class[id] = Ninja } case 7: { player_class[id] = Hunter g_GrenadeTrap[id] = 1 } case 8: { select_class1(id, lx) } case 9: { return PLUGIN_HANDLED } } LoadXP(id, player_class[id]) CurWeapon(id) give_knife(id) return PLUGIN_HANDLED } public select_class1(id,lx[]) { if(is_user_bot(id)) return new text[512] new keys = (1<<0)|(1<<1) format(text, 511,"yTEST - ^nr1. wTEST^t^tLevel y:%d",lx[nowaklasa] ) show_menu(id, keys, text) } public select_class_menu1(id, key) { g_haskit[id] = 0 switch(key) { case 0: { player_class[id] = nowaklasa } case 1: { return PLUGIN_HANDLED } } return PLUGIN_HANDLED }
DOdałem 9 klase powiedzmy ze chodzi daje dalej i pisze ze ma lvl 120 wyglada to tak
chyba trzeba zmienic cos tutaj ale nie wiem jak
public select_class_query(id)
public select_class_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
#16
Napisano 03.10.2009 17:07
hmm...
Zgubiles funkcje z starego menu:
LoadXP(id, player_class[id]) CurWeapon(id) give_knife(id)
#17
Napisano 03.10.2009 17:12
#18
Napisano 03.10.2009 17:20
Zapewne laduje dane do systemu - jako ze nie masz w tym nowym menu tego, to masz bladzik :F
#19
Napisano 03.10.2009 17:44
#20
Napisano 03.10.2009 17:45
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych