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: 1
0 użytkowników, 1 gości, 0 anonimowych


Dodatki SourceMod



Temat jest zamknięty



dbmod_5.8dsql.amxx






