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
CoD Nowy

Po wgraniu klasy, nie łączy się z bazą(?)

cod nowy

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 Mdx

    Pomocny

  • Użytkownik

Reputacja: 4
Nowy

  • Postów:69
  • Lokalizacja:Wałbrzych
Offline

Napisano 07.04.2013 10:53

Dziś wgrałem klasę która ma 1/3 szansy na podpalenie gracza. Po wgraniu tej klasy nie można wybrać w ogóle klasy (wyświetla się komunikat "Poczekaj na klase a nie spamujesz", taki komunikat wyświetla się również gdy nie ma dostępu do bazy danych).

W logach znalazłem takie coś:
L 04/07/2013 - 11:37:55: [MySQL] Invalid column: -1
L 04/07/2013 - 11:37:55: [AMXX] Displaying debug trace (plugin "codsqlnew.amxx")
L 04/07/2013 - 11:37:55: [AMXX] Run time error 10: native error (native "SQL_ReadResult")
L 04/07/2013 - 11:37:55: [AMXX]    [0] codsqlnew_1405900.sma::KlasaHandle (line 721)

KlasaHandle:
public KlasaHandle(failstate, Handle:query, error[], errnum, Data[], size){
if(failstate != TQUERY_SUCCESS){
  log_amx("MySQL Select error: %s",error);
  return;
}
new id = Data[0]
new szTemp[2028], klasa[50], menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");

if(SQL_NumRows(query))
{
  new daneklasy[6][32];
  for(new i=1; i <= ilosc_klas; i++)
  {
   formatex(szTemp, charsmax(szTemp), "%i", i);
   SQL_ReadResult(query, SQL_FieldNameToNum(query, szTemp), szTemp, charsmax(szTemp))
  
   replace_all(szTemp, charsmax(szTemp), "#", " ");
   parse(szTemp, daneklasy[0], 31, daneklasy[1], 31, daneklasy[2], 31, daneklasy[3], 31, daneklasy[4], 31, daneklasy[5], 31);
   lvl_klasy_gracza[id][i] = str_to_num(daneklasy[0])
   xp_klasy_gracza[id][i] = str_to_num(daneklasy[1])
   int_klasy_gracza[id][i] = str_to_num(daneklasy[2])
   zdr_klasy_gracza[id][i] = str_to_num(daneklasy[3])
   wyt_klasy_gracza[id][i] = str_to_num(daneklasy[4])
   kon_klasy_gracza[id][i] = str_to_num(daneklasy[5])
  
   formatex(klasa, 49, "%s \yPoziom: %i", nazwy_klas[i], lvl_klasy_gracza[id][i]);
   menu_additem(menu, klasa);
  }
  menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  menu_display(id, menu);
 
  client_cmd(id, "spk QTM_CodMod/select");
  wczytane_dane[id] = 1;
}
else
{
  new iLen = 0, Table[32];
  new identyfikator[64], typ_zapisu = get_pcvar_num(cvar_typ_zapisu);
  get_cvar_string("cod_table", Table, 31);
  switch(typ_zapisu)
  {
   case 1:{
    copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]);
    replace_all(identyfikator, charsmax(identyfikator), "'", "\'");
    replace_all(identyfikator, charsmax(identyfikator), "`", "\`");
   }
   case 2: get_user_authid(id, identyfikator, charsmax(identyfikator));
   case 3: get_user_ip(id, identyfikator, charsmax(identyfikator));
  }
 
  iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "INSERT INTO `%s` (`nick`", Table);
  
  for(new i=1; i <= ilosc_klas; i++)
   iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, ", `%i`", i);
 
  iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ") VALUES (");
  iLen += formatex(szTemp[iLen], charsmax(szTemp)-iLen, "'%s'", identyfikator);
  
  for(new i=1; i <= ilosc_klas; i++)
   iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ", '1#0#0#0#0#0'");

  iLen += copy(szTemp[iLen], charsmax(szTemp)-iLen, ")");
  SQL_ThreadQuery(info, "IgnoreHandle", szTemp)
  
  for(new i=1; i <= ilosc_klas; i++)
  {
   formatex(klasa, 49, "%s \yPoziom: 1", nazwy_klas[i]);
   menu_additem(menu, klasa);
  }
  menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
  menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
  menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
  menu_display(id, menu);
 
  client_cmd(id, "spk QTM_CodMod/select");
}
polaczony_raz[id] = 0;
}


Kod klasy:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <fakemeta>
#include <xs>
#define MAX 32
	   
new const nazwa[]   = "Krol Piekla";
new const opis[]    = "Ma 1/3 szansy na podpalenie gracza";
new const bronie    = (1<<CSW_AK47)|(1<<CSW_M4A1);
new const zdrowie   = 20;
new const kondycja  = 35;
new const inteligencja = 5;
new const wytrzymalosc = 20;
   
new sprite_fire,
sprite_smoke;
new ma_klase[MAX+1], palenie_gracza[MAX+1];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("Damage", "Damage", "b", "2!=0");
}
public plugin_precache()
{
sprite_fire = precache_model("sprites/fire.spr")
sprite_smoke = precache_model("sprites/steam1.spr")
}
public cod_class_enabled(id)
{
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public Damage(id)
{
	    new attacker = get_user_attacker(id);
	    if(!is_user_alive(attacker))
			    return PLUGIN_CONTINUE;
	   
	    if(id == attacker)
			    return PLUGIN_CONTINUE;
	   
	    if(ma_klase[attacker] && random_num(1, 3) == 1)
	    {
			    if(task_exists(id+2936))
					    remove_task(id+2936);
			    palenie_gracza[id] = 25;
			    new data[2]
			    data[0] = id
			    data[1] = attacker
			    set_task(0.2, "burning_flame", id+2936, data, 2, "b");
	    }
	    return PLUGIN_CONTINUE;
}
public burning_flame(data[2])
{
new id = data[0]

if(!is_user_alive(id))
{
  palenie_gracza[id] = 0
  remove_task(id+2936);
  return PLUGIN_CONTINUE;
}

new origin[3], flags = pev(id, pev_flags)
get_user_origin(id, origin)

if(flags & FL_INWATER || palenie_gracza[id] < 1 || !get_user_health(id))
{
  message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
  write_byte(TE_SMOKE)
  write_coord(origin[0])
  write_coord(origin[1])
  write_coord(origin[2]-50)
  write_short(sprite_smoke)
  write_byte(random_num(15,20))
  write_byte(random_num(10,20))
  message_end()
 
  remove_task(id+2936);
  return PLUGIN_CONTINUE;
}

if(flags & FL_ONGROUND)
{
  static Float:velocity[3]
  pev(id, pev_velocity, velocity)
  xs_vec_mul_scalar(velocity, 0.5, velocity)
  set_pev(id, pev_velocity, velocity)
}
cod_inflict_damage(data[1], id, 2.0, 0.0, 0, DMG_BURN);

message_begin(MSG_PVS, SVC_TEMPENTITY, origin)
write_byte(TE_SPRITE)
write_coord(origin[0]+random_num(-5,5))
write_coord(origin[1]+random_num(-5,5))
write_coord(origin[2]+random_num(-10,10))
write_short(sprite_fire)
write_byte(random_num(5,10))
write_byte(200)
message_end()

palenie_gracza[id]--
return PLUGIN_CONTINUE;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1250\\ deff0\\ deflang1045{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/


Ktoś da adę pomóc? Może brakuje jakiegoś "include"?
  • +
  • -
  • 0





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

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

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