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

[ROZWIĄZANE] zapytanie sql


  • Zamknięty Temat jest zamknięty
9 odpowiedzi w tym temacie

#1 M@nkovsky

    Zaawansowany

  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 16.11.2011 17:36

Potrzebuje zapytania sql dzięki któremy będę mógł dodać tam 2 zmienne (coś jak statystyki)
korzytsam z optymalizacji sebula (mówie bo nie wiem czy to czegoś nie zmienia)
Jeśli ktoś się na tym za to proszę o pomoc

Z góry dzięki

#2 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 16.11.2011 17:53

O jakie zapytanie chodzi :P ?
O wczytanie z bazy ?
Czy o zapis do bazy ?
  • +
  • -
  • 0

If you can dream it, you can do it.


#3 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 16.11.2011 17:55

http://www.w3schools...l/sql_alter.asp
http://dev.mysql.com...lter-table.html
  • +
  • -
  • 0

serwer-1.png
IP: ts3.cserwerek.pl


#4 M@nkovsky

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 16.11.2011 18:09

Chce dodać wszytskim nowa zmienna. Tak jest masz statystyki zapis str , int itd na integral to chce jeszcze 2 dodać. potrzebuje zapytanai do tego

#5 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 16.11.2011 18:12

Chce dodać wszytskim nowa zmienna. Tak jest masz statystyki zapis str , int itd na integral to chce jeszcze 2 dodać. potrzebuje zapytanai do tego

Łaskaw był by Pan przeanalizować to co parobek podał na tacy?
  • +
  • -
  • 1

serwer-1.png
IP: ts3.cserwerek.pl


#6 Gh0st

    :)

  • Power User

Reputacja: 852
Czempion

  • Postów:920
  • GG:
  • Imię:Tomek
  • Lokalizacja:Rabka-Zdrój
Offline

Napisano 16.11.2011 18:30

ALTER TABLE nazwa_tabeli_diablo
ADD nazwa_statystyki_1 int(11),
ADD nazwa_statystyki_2 int(11)

int(11)
Dlatego że statystyka to pole liczbowe a nie string ^^ tak jak ja kiedyś robiłem głupie błędy


O jakie zapytanie chodzi :P ?
O wczytanie z bazy ?
Czy o zapis do bazy ?


Chodziło mu o zapytanie które doda do bazy kolumnę

Użytkownik Gh0st edytował ten post 16.11.2011 18:33

  • +
  • -
  • 1

#7 M@nkovsky

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 57
Pomocny

  • Postów:110
  • GG:
  • Steam:steam
  • Imię:Mariusz
  • Lokalizacja:Poland
Offline

Napisano 16.11.2011 19:03

hmm , wybaczcie moje zakłopotanie ale w tych sprawach średnio się orientuje

Jeśli wszystkie statystyki mam na int(3) to to nie am znaczenia jak dodam int(11)?

#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 16.11.2011 19:10

Niby nie ma, ale lepiej daj 3, bo 11 cyfrowych liczb i tak tam nie będziesz miał.
  • +
  • -
  • 1

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


#9 Leszcz

    Życzliwy

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:29
  • GG:
  • Imię:Bartek
  • Lokalizacja:Białystok
Offline

Napisano 29.11.2011 18:18

jesli dobrze mysle to :

zaprezentuje nowa statystyke,ktora bedzie dodawac pancerza.
A wiec zaczynamy!
1.
robisz nowa zmienna np:
new amxx[33]


2.
pozniej szukasz:
public sql_start()


i zamieniasz go na to:
public sql_start()
{
if(sqlstart<0) return
if(g_boolsqlOK) return

new host[128]
new user[64]
new pass[64]
new database[64]

get_cvar_string("diablo_sql_database",database,63)
get_cvar_string("diablo_sql_host",host,127)
get_cvar_string("diablo_sql_user",user,63)
get_cvar_string("diablo_sql_pass",pass,63)

g_SqlTuple = SQL_MakeDbTuple(host,user,pass,database)



get_cvar_string("diablo_sql_table",g_sqlTable,63)

new q_command[512]
format(q_command,511,"CREATE TABLE IF NOT EXISTS `%s` ( `nick` VARCHAR( 64 ),`ip` VARCHAR( 64 ),`sid` VARCHAR( 64 ), `klasa` integer( 2 ) , `lvl` integer( 3 ) DEFAULT 1, `exp` integer( 9 ) DEFAULT 0, `str` integer( 3 ) DEFAULT 0, `int` integer( 3 ) DEFAULT 0, `dex` integer( 3 ) DEFAULT 0, `agi` integer( 3 ) DEFAULT 0, `amx` integer( 3 ) DEFAULT 0 ) ",g_sqlTable)
SQL_ThreadQuery(g_SqlTuple,"TableHandle",q_command)
}


3.
szukasz:
public SaveXP(id)

i zamieniasz na:
public SaveXP(id)
{
if(g_boolsqlOK)
{
if(!is_user_bot(id) && player_xp[id]!=player_xp_old[id])
{
new name[64]
new ip[64]
new sid[64]

get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )

get_user_ip(id, ip ,63,1)
get_user_authid(id, sid ,63)

if(get_cvar_num("diablo_sql_save")==0)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `ip`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`amx`='%i' WHERE `nick`='%s' AND `klasa`='%i' ",g_sqlTable,ip,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],player_amxx[id],name,player_class[id])

SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
else if(get_cvar_num("diablo_sql_save")==1)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`amx`='%i',` WHERE `ip`='%s' AND `klasa`='%i' ",g_sqlTable,name,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],player_amxx[id]ip,player_class[id])

SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
else if(get_cvar_num("diablo_sql_save")==2)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`ip`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`amx`='%i' WHERE `sid`='%s' AND `klasa`='%i' ",g_sqlTable,name,ip,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],player_amxx[id],sid,player_class[id])

SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
player_xp_old[id]=player_xp[id]

}
}
else sql_start()

return PLUGIN_HANDLED
}


5.
szukasz
public Load_xp_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)


i zamieniasz na:
public Load_xp_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
new id = Data[0]
asked_sql[id]=0

if(Errcode)
{
log_to_file("addons/amxmodx/logs/diablo.log","Error on Load_xp 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","Load_xp Query failed.")
return PLUGIN_CONTINUE
}

if(SQL_MoreResults(Query))
{

player_class[id] = Data[1]
player_lvl[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"lvl"))
player_xp[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"exp"))
player_xp_old[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"exp"))

player_intelligence[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"int"))
player_strength[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"str"))
player_agility[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"agi"))
player_amxx[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"amx"))
mana_gracza[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"man"))
player_dextery[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"dex"))

player_point[id]=(player_lvl[id]-1)*2-player_intelligence[id]-player_strength[id]-player_dextery[id]-player_agility[id]-player_amxx[id]
if(player_point[id]<0) player_point[id]=0
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
}
return PLUGIN_CONTINUE
}


6.
szukasz
public reset_skill(id)

i zamieniasz na:
public reset_skill(id)
{
ColorChat(id,GREEN,"[DiabloMod]^x01 Reset skill'ow")
player_point[id] = player_lvl[id]*2-2
player_intelligence[id] = 0
player_strength[id] = 0
player_agility[id] = 0
player_amxx[id] = 0
player_dextery[id] = 0
BoostRing(id)
BoostStats(id,player_b_extrastats[id])

skilltree(id)
set_speedchange(id)
player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100)
}


7.
szukasz
public ResetHUD(id)


i zamieniasz na:
public ResetHUD(id)
{

if (is_user_connected(id))
{
remove_task(id+GLUTON)
change_health(id,9999,0,"")



if (c4fake[id] > 0)
{
remove_entity(c4fake[id])
c4fake[id] = 0
}
SubtractStats(id,player_b_extrastats[id])
SubtractRing(id)
if ((player_intelligence[id]+player_strength[id]+player_agility[id]+player_amxx[id]+player_dextery[id])>(player_lvl[id]*2)) reset_skill(id)

BoostStats(id,player_b_extrastats[id])
BoostRing(id)

fired[id] = 0

player_ultra_armor_left[id]=player_ultra_armor[id]

player_b_dagfired[id] = false
ghoststate[id] = 0
earthstomp[id] = 0

if (player_b_blink[id] > 0)
player_b_blink[id] = 1

if (player_b_usingwind[id] > 0)
{
player_b_usingwind[id] = 0
}

if (player_point[id] > 0 ) skilltree(id)
if (player_class[id] == 0) select_class_query(id)

add_bonus_gamble(id) //MUST be first
c4state[id] = 0
client_cmd(id,"hud_centerid 0")
auto_help(id)
add_money_bonus(id)
set_gravitychange(id)
add_redhealth_bonus(id)
SelectBotRace(id)
set_renderchange(id)
if (gRestart[id])
{
gRestart[id] = false
return
}
if (gUpdate[id])
{
gUpdate[id] = false
return
}
if (gHooked[id])
{
remove_hook(id)
}
if (get_pcvar_num(pMaxHooks) > 0)
{
gHooksUsed[id] = 0
statusMsg(0, "[Hook] 0 of %d hooks used.", get_pcvar_num(pMaxHooks))
}
}
}


8.
public skilltree(id)
{
new text[513]
new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)
format(text, 512, "\yWybierz Staty- \rPunkty: \w[\r%i\w]^n^n\w1. \yInteligencja \w[\r%i\w] [\dWieksze obrazenia czarami\w]^n\w2. \ySila \w[\r%i\w] [\dWiecej zycia o \r%i\w]^n\w3. \yZrecznosc \w[\r%i\w] [\dBronie zadaja ci mniejsze obrazenia\w]^n\w4. \yZwinnosc \w[\r%i\w] [\dSzybciej biegasz i magia zadaje ci mniejsze obrazenia\w]^n\w5. \yPancerz \w[\r%i\w] [\dDostajesz armor na start\w]"
,player_point[id],player_intelligence[id],player_strength[id],player_strength[id]*2,player_agility[id],player_dextery[id],player_amxx[id])
keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)
show_menu(id, keys, text)
return PLUGIN_HANDLED
}
public skill_menu(id, key)
{
switch(key)
{
case 0:
{
if (player_intelligence[id]<70){
player_point[id]-=1
player_intelligence[id]+=1
}
else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety")

}
case 1:
{
if (player_strength[id]<70){
player_point[id]-=1
player_strength[id]+=1
}
else client_print(id,print_center,"Maxymalny poziom sily osiagniety")
}
case 2:
{
if (player_agility[id]<70){
player_point[id]-=1
player_agility[id]+=1
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]<70){
player_point[id]-=1
player_dextery[id]+=1
set_speedchange(id)
}
else client_print(id,print_center,"Maxymalny poziom zwinnosci osiagniety")
}
case 4:
{
if (player_armor[id]<70){
player_point[id]-=1
player_armor[id]+=1
set_armorchange(id)
}
else client_print(id,print_center,"Maxymalny poziom pancerza osiagniety")
}
}
if (player_point[id] > 0)
skilltree(id)

return PLUGIN_HANDLED
}


9. i na koncu sma dodajesz:
public set_armorchange(id)
{
if(is_user_alive(id))
{
new armo = get_user_armor(id)
new armorr = player_armor[id]*2
if (armo>99)
{
set_user_armor(id,get_user_armor(id)+armorr)
}
set_user_armor(id,armorr)

}
}

sebul (29.11.2011 18:36):
Odkop...

Użytkownik Leszcz edytował ten post 29.11.2011 18:19

  • +
  • -
  • 1

#10 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

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

Napisano 29.11.2011 18:36

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0

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





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

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