hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.27. 22:26



Jelenlévő felhasználók

Jelenleg 538 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 537 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Bing [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Achievement System hibás működése
HozzászólásElküldve: 2016.05.15. 18:16 
Offline
Tag

Csatlakozott: 2013.04.06. 22:23
Hozzászólások: 49
Megköszönt másnak: 14 alkalommal
Megköszönték neki: 2 alkalommal
Sziasztok!
Segítségeteket szeretném kérni a következő plugin javításában, mert a következő hiba üzenetet írja nekem debugolás után is:

Invalid player id 0
[AMXX] Displaying debug trace (plugin "achievement.amxx")
[AMXX] Run time error 10: native error (native "get_user_weapon")
[AMXX] [0] achievement.sma::Oles (line 419)


Kód:
#include <amxmodx>
#include <amxmisc>
#include <sqlx>
#include <fakemeta>
#include <hamsandwich>
#include <fun>
#include <csx>
#include <engine>
#include <fun>
#include <cstrike>

#define PLUGIN "Achievement System"
#define VERSION "1.1"
#define AUTHOR "IrOn"

new g_host, g_user, g_pass, g_db
new Handle:g_SqlTuple
new g_error[512]

new logfelhasznalo[32], logjelszo[32], regfelhasznalo[32], regjelszo[32];
new bool:bejelentkezve[33];

new belepescheck[512], felhasznalocheck[512], sqlmentes[512], sqloles[1024], sqltalalat[1024], sqldisconnect[1024];

new mentett_user[33][33], mentett_pw[33][33], mentett_userid[33], check_pass[33], check_user[33];
new megtett_tavolsag[33], second[33];
new hatastalanitott_bomba[33], lerakott_bomba[33], felrobbant_bomba[33], jatekido[33];
new talalat[33], oles[33], halal[33], ongyilkos[33];

//VIP
new is_user_vip[33];
new vip_ammo, vip_money;
new const MAXBPAMMO[] = {-1, 52, -1, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120,
      30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, -1, 100};

new const AMMOTYPE[][] = {"", "357sig", "", "762nato", "", "buckshot", "", "45acp", "556nato", "", "9mm",
      "57mm", "45acp", "556nato", "556nato", "556nato", "45acp", "9mm", "338magnum", "9mm", "556natobox",
      "buckshot", "556nato", "9mm", "762nato", "", "50ae", "556nato", "762nato", "", "57mm"};

public plugin_init()
{
   register_plugin(PLUGIN, VERSION, AUTHOR)
   register_clcmd("say /reg", "AchievementsMenu")
   
   g_host = register_cvar("achi_host", "")
   g_user = register_cvar("achi_user", "")
   g_pass = register_cvar("achi_pass", "")
   g_db = register_cvar("achi_db", "")
   
   register_clcmd("BEJELENTKEZESI_FELHASZNALO", "belepes_felhasznalo")
   register_clcmd("BEJELENTKEZESI_JELSZO", "belepes_jelszo")
   register_clcmd("FELHASZNALO", "reg_felhasznalo")
   register_clcmd("JELSZO", "reg_jelszo")
   
   register_event( "DeathMsg", "Oles", "a" );
   register_forward( FM_ClientKill, "Ongyilkossag" );
   RegisterHam(Ham_TraceAttack, "player", "Sebzes");
   
   //VIP
   RegisterHam(Ham_Spawn, "player", "vip_eledes", 1)
   
   register_cvar("vip_weapon1", "weapon_awp")
   register_cvar("vip_weapon2", "weapon_m4a1")
   register_cvar("vip_weapon3", "weapon_ak47")
   vip_ammo = register_cvar("vip_fullammo", "1")
   vip_money = register_cvar("vip_money", "16000")
   //VIP Vége
   
   set_task(60.0, "mentes")
}

public vip_eledes(id)
{
   if(is_user_vip[id])
   {
      //FEGYVER
      new weapon1[51], weapon2[51], weapon3[51];
      get_cvar_string("vip_weapon1", weapon1, 50)
      get_cvar_string("vip_weapon2", weapon2, 50)
      get_cvar_string("vip_weapon3", weapon3, 50)
      
      if(!(equal(weapon1, "")))
         give_item(id, weapon1);
      if(!(equal(weapon2, "")))
         give_item(id, weapon2);
      if(!(equal(weapon3, "")))
         give_item(id, weapon3);
      
      //TÖLTÉNY
      switch(get_pcvar_num(vip_ammo))
      {
         case 1:
         {
            new weapons[32], num;
            get_user_weapons(id, weapons, num);
               
            for (new i = 0; i < num; i++)
            {
               ExecuteHam(Ham_GiveAmmo, id, MAXBPAMMO[weapons[i]], AMMOTYPE[weapons[i]], MAXBPAMMO[weapons[i]]);
            }
         }
         
         case 0:
            return PLUGIN_CONTINUE;
      }
      
      //PÉNZ
      new penz = cs_get_user_money(id)+get_pcvar_num(vip_money)
      cs_set_user_money(id, penz)
   }
   return PLUGIN_CONTINUE;
}

public client_disconnect(id)
{
   if(bejelentkezve[id])
   {
      jatekido[id] = jatekido[id]+get_user_time(id)
      formatex(sqldisconnect, charsmax(sqldisconnect), "UPDATE `achi_felhasznalok` SET `megtett_tavolsag`=^"%d^", `jatekido`=^"%d^", `bomba_hatastalanitas`=^"%d^", `bomba_lerakas`=^"%d^", `bomba_robbanas`=^"%d^", `talalat`=^"%d^", `oles`=^"%d^", `halal`=^"%d^" , `ongyilkos`=^"%d^" WHERE id=^"%d^";", megtett_tavolsag[id], jatekido[id], hatastalanitott_bomba[id], lerakott_bomba[id], felrobbant_bomba[id], talalat[id], oles[id], halal[id], ongyilkos[id], mentett_userid[id])
      SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqldisconnect)
      mentett_user[id] = ""
      bejelentkezve[id] = false
      second[id] = 0;
      is_user_vip[id] = false;
   }
}

public client_connect(id)
{
   mentett_user[id] = ""
   bejelentkezve[id] = false
   second[id] = 0;
   is_user_vip[id] = false;
}

public mentes()
{
   new Players[32], pnum;
   get_players(Players, pnum, "ch")
   for(new i = 0; i < pnum; i++)
   {
      new id = Players[i];
      if(bejelentkezve[id])
      {
         formatex(sqldisconnect, charsmax(sqldisconnect), "UPDATE `achi_felhasznalok` SET `megtett_tavolsag`=^"%d^", `bomba_hatastalanitas`=^"%d^", `bomba_lerakas`=^"%d^", `bomba_robbanas`=^"%d^", `talalat`=^"%d^", `oles`=^"%d^", `halal`=^"%d^" , `ongyilkos`=^"%d^" WHERE id=^"%d^";", megtett_tavolsag[id], hatastalanitott_bomba[id], lerakott_bomba[id], felrobbant_bomba[id], talalat[id], oles[id], halal[id], ongyilkos[id], mentett_userid[id])
         SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqldisconnect)
      }
   }
   set_task(60.0, "mentes")
}

public client_PreThink(id)
{
   if(get_user_button(id) & IN_FORWARD && bejelentkezve[id])
   {
      new Float: speed[33];
      speed[id] = get_user_maxspeed(id);
      new speedr[33];
      speedr[id] = floatround(speed[id], floatround_round);
      second[id]++;
      megtett_tavolsag[id] = (speedr[id] * second[id])/1000;
   }
}

public plugin_cfg()
{
   new Host[64], User[32], Pass[32], DB[128];
   get_pcvar_string(g_host, Host, charsmax(Host))
   get_pcvar_string(g_user, User, charsmax(User))
   get_pcvar_string(g_pass, Pass, charsmax(Pass))
   get_pcvar_string(g_db, DB, charsmax(DB))
   
   g_SqlTuple = SQL_MakeDbTuple(Host, User, Pass, DB)
   new errorcode, Handle:SqlConnection = SQL_Connect(g_SqlTuple, errorcode, g_error, charsmax(g_error))
   new Handle:Query
   Query = SQL_PrepareQuery(SqlConnection, "CREATE TABLE IF NOT EXISTS `achi_felhasznalok` (`id` INT(255) NOT NULL AUTO_INCREMENT ,`user` VARCHAR(255) NOT NULL ,`pw` VARCHAR(255) NOT NULL ,PRIMARY KEY (`id`) ,INDEX (`id`));")
   SQL_FreeHandle(Query)
   SQL_FreeHandle(SqlConnection)
}

public QuerySetData(FailState, Handle:Query, error[],errcode, data[], datasize)
{
        if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
        {
                return
        }
}

public AchievementsMenu(id)
{
   new menu = menu_create("\rAchievements Rendszer:", "AchievementsMenu_handler");
   if(bejelentkezve[id])
      menu_additem(menu, "\wKijelentkezes", "1", 0);
   else
   {
      menu_additem(menu, "\wRegisztracio", "1", 0);
      menu_additem(menu, "\wBelepes", "2", 0);
   }
   
   menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
   menu_display(id, menu, 0);
}

public AchievementsMenu_handler(id, menu, item)
{
   if(item == MENU_EXIT)
   {
      menu_destroy(menu);
      return PLUGIN_HANDLED;
   }
   new data[6], szName[64];
   new access, callback;
   menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
   new key = str_to_num(data);
   switch(key)
   {
      case 1:
      {
         if(bejelentkezve[id])
         {
            bejelentkezve[id] = false;
            client_print(id, print_chat, "Kijelentkeztel!")
            AchievementsMenu(id)
         }
         else
            client_cmd(id, "messagemode FELHASZNALO")
      }
      case 2:
      {
         if(bejelentkezve[id])
            client_print(id, print_chat, "Mar be vagy jelentkezve!")
         else
            client_cmd(id, "messagemode BEJELENTKEZESI_FELHASZNALO")
      }
   }
   menu_destroy(menu);
   return PLUGIN_HANDLED;
}

public belepes_felhasznalo(id)
{
   read_args(logfelhasznalo, charsmax(logfelhasznalo))
   remove_quotes(logfelhasznalo)

   if(equal(logfelhasznalo, ""))
      return PLUGIN_HANDLED
      
   mentett_user[id] = logfelhasznalo
   client_cmd(id, "messagemode BEJELENTKEZESI_JELSZO")
   return PLUGIN_CONTINUE
}

public belepes_jelszo(id)
{
   read_args(logjelszo, charsmax(logjelszo))
   remove_quotes(logjelszo)

   if(equal(logfelhasznalo, ""))
      return PLUGIN_HANDLED
      
   mentett_pw[id] = logjelszo
   Belepesellenorzese(id)
   return PLUGIN_CONTINUE
}

public Belepesellenorzese(id)
{
   new data[1]
   data[0] = id
   formatex(belepescheck, charsmax(belepescheck), "SELECT `id`, `user`, `pw`, `megtett_tavolsag`, `jatekido`, `bomba_hatastalanitas`, `bomba_lerakas`, `bomba_robbanas`, `vip`, `talalat`, `oles`, `halal`, `ongyilkos` FROM `achi_felhasznalok` WHERE user = ^"%s^" AND pw = ^"%s^";", mentett_user[id], mentett_pw[id])   
   SQL_ThreadQuery(g_SqlTuple, "QuerySelectDataBejelentkezes", belepescheck, data, 1)
}

public QuerySelectDataBejelentkezes(FailState, Handle:Query, error[], errorcode, data[], datasize, Float:fQueueTime)
{
   if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
   {
      log_amx("%s", error)
      return
   }
   else
   {
      new id = data[0];
      new col_user = SQL_FieldNameToNum(Query, "user")
      new col_pw = SQL_FieldNameToNum(Query, "pw")
      new col_id = SQL_FieldNameToNum(Query, "id")
      new col_tavolsag = SQL_FieldNameToNum(Query, "megtett_tavolsag")
      new col_hatastalanitott = SQL_FieldNameToNum(Query, "bomba_hatastalanitas")
      new col_lerakott = SQL_FieldNameToNum(Query, "bomba_lerakas")
      new col_robbant = SQL_FieldNameToNum(Query, "bomba_robbanas")
      new col_jatekido = SQL_FieldNameToNum(Query, "jatekido")
      new col_vip = SQL_FieldNameToNum(Query, "vip")
      new col_talalat = SQL_FieldNameToNum(Query, "talalat")
      new col_oles = SQL_FieldNameToNum(Query, "oles")
      new col_halal = SQL_FieldNameToNum(Query, "halal")
      new col_ongyilkos = SQL_FieldNameToNum(Query, "ongyilkos")

      while(SQL_MoreResults(Query))
      {
         SQL_ReadResult(Query, col_user, check_user, charsmax(check_user))
         SQL_ReadResult(Query, col_pw, check_pass, charsmax(check_pass))
         mentett_userid[id] = SQL_ReadResult(Query, col_id)
         megtett_tavolsag[id] = SQL_ReadResult(Query, col_tavolsag)
         hatastalanitott_bomba[id] = SQL_ReadResult(Query, col_hatastalanitott)
         lerakott_bomba[id] = SQL_ReadResult(Query, col_lerakott)
         felrobbant_bomba[id] = SQL_ReadResult(Query, col_robbant)
         jatekido[id] = SQL_ReadResult(Query, col_jatekido)
         talalat[id] = SQL_ReadResult(Query, col_talalat)
         oles[id] = SQL_ReadResult(Query, col_oles)
         halal[id] = SQL_ReadResult(Query, col_halal)
         ongyilkos[id] = SQL_ReadResult(Query, col_ongyilkos)
         new vip[33];
         vip[id] = SQL_ReadResult(Query, col_vip)
         
         if(vip[id] == 1)
            is_user_vip[id] = true
         else
            is_user_vip[id] = false
         
         new Float: speed[33];
         speed[id] = get_user_maxspeed(id);
         new speedr[33];
         speedr[id] = floatround(speed[id], floatround_round);
         second[id] = ((megtett_tavolsag[id]*1000)/speedr[id])
         
         if(equal(mentett_user[id], check_user) && equal(mentett_pw[id], check_pass))
         {
            bejelentkezve[id] = true;
            client_print(id, print_chat, "Sikeres bejelentkezes!")
            AchievementsMenu(id)
         }
         SQL_NextRow(Query)
      }
   }
}

public reg_felhasznalo(id)
{
   read_args(regfelhasznalo, charsmax(regfelhasznalo))
   remove_quotes(regfelhasznalo)

   if(equal(regfelhasznalo, ""))
      return PLUGIN_HANDLED
      
   mentett_user[id] = regfelhasznalo
   Felhasznalo_Ellenorzese(id)
   client_cmd(id, "messagemode JELSZO")
   return PLUGIN_CONTINUE
}

public reg_jelszo(id)
{
   read_args(regjelszo, charsmax(regjelszo))
   remove_quotes(regjelszo)

   if(equal(regjelszo, ""))
      return PLUGIN_HANDLED
      
   mentett_pw[id] = regjelszo
   
   formatex(sqlmentes, charsmax(sqlmentes), "INSERT INTO `achi_felhasznalok`(`user`, `pw`) VALUES (^"%s^",^"%s^");", mentett_user[id], mentett_pw[id])
   SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqlmentes)
   client_print(id, print_chat, "Sikeresen regisztraltal!")
   Belepesellenorzese(id)
   return PLUGIN_CONTINUE
}

public Felhasznalo_Ellenorzese(id)
{
   new data[1]
   data[0] = id
   
   formatex(felhasznalocheck, charsmax(felhasznalocheck), "SELECT `user` FROM `achi_felhasznalok` WHERE user = ^"%s^";", mentett_user[id])
   SQL_ThreadQuery(g_SqlTuple, "QuerySelectDataFelhasznalo", felhasznalocheck, data, 1)
}

public QuerySelectDataFelhasznalo(FailState, Handle:Query, error[], errorcode, data[], datasize, Float:fQueueTime)
{
   if(FailState == TQUERY_CONNECT_FAILED || FailState == TQUERY_QUERY_FAILED)
   {
      log_amx("%s", error)
      return
   }
   else
   {
      new id = data[0];
      new col_user = SQL_FieldNameToNum(Query, "user")

      while(SQL_MoreResults(Query))
      {
         SQL_ReadResult(Query, col_user, check_user, charsmax(check_user))
         if(equal(mentett_user[id], check_user))
         {
            client_print(id, print_chat, "Ez a felhasznalo mar letezik!")
            client_cmd(id, "messagemode FELHASZNALO")
         }
         SQL_NextRow(Query)
      }
   }
}

public Oles()
{
   new killer = read_data( 1 );
   new victim = read_data( 2 );
   
   if(killer == victim)
   {
      if(bejelentkezve[killer])
      {
         ongyilkos[killer]++
         formatex(sqloles, charsmax(sqloles), "INSERT INTO `achi_ongyilkossag`(`userid`) VALUES (^"%d^");", mentett_userid[killer])
         SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqloles)
      }
      return PLUGIN_HANDLED;
   }
   halal[victim]++
   oles[killer]++
   new fegyver = get_user_weapon(killer)
   new hp = get_user_health(killer)
   new armor = get_user_armor(killer)
   
   if(bejelentkezve[killer] && bejelentkezve[victim])
   {
      formatex(sqloles, charsmax(sqloles), "INSERT INTO `achi_olesek`(`killer_id`, `halott_id`, `fegyverid`, `killer_hp`, `killer_armor`) VALUES (^"%d^",^"%d^",^"%d^",^"%d^",^"%d^");", mentett_userid[killer], mentett_userid[victim], fegyver, hp, armor)
      SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqloles)
   }
   else if(bejelentkezve[killer])
   {
      formatex(sqloles, charsmax(sqloles), "INSERT INTO `achi_olesek`(`killer_id`, `halott_id`, `fegyverid`, `killer_hp`, `killer_armor`) VALUES (^"%d^",^"0^",^"%d^",^"%d^",^"%d^");", mentett_userid[killer], fegyver, hp, armor)
      SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqloles)
   }
   else if(bejelentkezve[victim])
   {
      formatex(sqloles, charsmax(sqloles), "INSERT INTO `achi_olesek`(`killer_id`, `halott_id`, `fegyverid`, `killer_hp`, `killer_armor`) VALUES (^"0^",^"%d^",^"%d^",^"%d^",^"%d^");", mentett_userid[victim], fegyver, hp, armor)
      SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqloles)
   }
   return PLUGIN_CONTINUE;
   
}

public Ongyilkossag(id)
{
   if(bejelentkezve[id])
   {
      ongyilkos[id]++
      formatex(sqloles, charsmax(sqloles), "INSERT INTO `achi_ongyilkossag`(`userid`) VALUES (^"%d^");", mentett_userid[id])
      SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqloles)
   }
}

public Sebzes(Vic, Att, Float:dmg, Float:dir[3], traceresult, dmgbits)
{
   new talalat_helye = get_tr2(traceresult, TR_iHitgroup)
   new fegyver = get_user_weapon(Att)
   if(bejelentkezve[Vic] && bejelentkezve[Att])
   {
      formatex(sqltalalat, charsmax(sqltalalat), "INSERT INTO `achi_talalatok`(`attacker_id`, `victim_id`, `fegyverid`, `talalat_helye`, `sebzes_erteke`) VALUES (^"%d^",^"%d^",^"%d^",^"%d^",^"%f^");", mentett_userid[Att], mentett_userid[Vic], fegyver, talalat_helye, dmg )
      SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqltalalat)
   }
   else if(bejelentkezve[Vic])
   {
      formatex(sqltalalat, charsmax(sqltalalat), "INSERT INTO `achi_talalatok`(`attacker_id`, `victim_id`, `fegyverid`, `talalat_helye`, `sebzes_erteke`) VALUES (^"0^",^"%d^",^"%d^",^"%d^",^"%f^");", mentett_userid[Vic], fegyver, talalat_helye, dmg )
      SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqltalalat)
   }
   else if(bejelentkezve[Att])
   {
      formatex(sqltalalat, charsmax(sqltalalat), "INSERT INTO `achi_talalatok`(`attacker_id`, `victim_id`, `fegyverid`, `talalat_helye`, `sebzes_erteke`) VALUES (^"%d^",^"0^",^"%d^",^"%d^",^"%f^");", mentett_userid[Att], fegyver, talalat_helye, dmg )
      SQL_ThreadQuery(g_SqlTuple, "QuerySetData", sqltalalat)
   }
   talalat[Att]++
   return HAM_IGNORED;
}

public bomb_defused(defuser)
   hatastalanitott_bomba[defuser]++;
   
public bomb_explode(planter)
   felrobbant_bomba[planter]++;
   
public bomb_planted(planter)
   lerakott_bomba[planter]++;



Ez a rész direkt üres:
g_host = register_cvar("achi_host", "")
g_user = register_cvar("achi_user", "")
g_pass = register_cvar("achi_pass", "")
g_db = register_cvar("achi_db", "")


Segítségeteket előre is köszönöm.


Hozzászólás jelentése
Vissza a tetejére
   
HozzászólásElküldve: 2016.05.18. 08:22 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
Ellenőrizd, hogy a játékos kapcsolódott-e már, vagy hogy az ID-je 1 és 32 között van-e.


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 2 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 70 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole