Php Inventory Abfragen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Php Inventory Abfragen

      Hallo, ich hab schon so einiges versucht aber ich kriege es nicht hin also ich möchte per php das überprüft ob ein bestimmtes item in dem inventar eines bestimmten spielers vorhanden ist und wenn ja wie oft. Wie kann man so etwas in php machen oder geht es villeicht mit einer stored procedure nur hab ich leider auch keine ahnung wie man es damit machen könnte
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Watch doch mal at die Datenbank und schau nach wie das Inventory darin gespeichert
      wird. Totaler Müll, sogut wie unmöglich rauszufinden wie du das Inventory bearbeiten kannst.
      Warum guckst du nich mal die ganzen Prozeduren durch? Soweit ich weiß hats noch niemand
      aus der Szene geschafft die Items direkt ins Inventory per PHP zu bringen, mich und Lunatic
      eingeschlossen.
    • xxbenny90xx;146042 schrieb:

      der will es ja nicht bearbeiten der möchte sowas wie ein panel haben in php das auf die db zugreift und dann auf das invi bei jedem char denk ich mal aber sowas zu coden wäre eine sau arbeit


      oida das war mit meinem Post gemeint das Inventory zu bearbeiten. Denk mal nach
      wenn du jemanden berichtigst bevor du totalen Müll schreibst.
    • felix;146041 schrieb:

      Watch doch mal at die Datenbank und schau nach wie das Inventory darin gespeichert
      wird. Totaler Müll, sogut wie unmöglich rauszufinden wie du das Inventory bearbeiten kannst.
      Warum guckst du nich mal die ganzen Prozeduren durch? Soweit ich weiß hats noch niemand
      aus der Szene geschafft die Items direkt ins Inventory per PHP zu bringen, mich und Lunatic
      eingeschlossen.


      das habe ich ja aber dann probier ich halt mal alleine weiter wie man das iwie machen kann iwie muss man es doch auslesen können die files lesen es doch auch aus

      'EDIT: wie kann man bei der v15 db den char on/off status auslesen ich habs mit IsUse getestet aber das geht iwie nicht
    • felix;146078 schrieb:

      omg, sagmal seit ihr wirklich so beschränkt? Du willst auf ne MSSQL Datenbank mit
      MySQL zugreifen? Lachhaft.


      Ich glaube er Meinte, das es mit MySQL Ging ( Caali ? )

      und das auf MsSQL nicht verfügbar sein kann, weil es verschiedene Table's hat ?

      Naja, nur eine Vermutung ^^'

      //Edit Lol hatte vergessen zu Aktualisieren und schon waren da neue Beiträge, Sorri :D
    • Crasy;146083 schrieb:

      [FONT="Franklin Gothic Medium"][COLOR="DarkOrange"][SIZE="2"]Ich meinte nicht das du Vollpfosten...

      Ich meinte bei einer MySQL dB wie bei Caali du Bachdepp...[/SIZE][/COLOR][/FONT]


      Geht auch mit ner Anständigen MSSQL Datenbankstruktur du "Bachdepp". I lol'd

      und das auf MsSQL nicht verfügbar sein kann, weil es verschiedene Table's hat ?


      Hat überhaubt nix mit der Datenbanksprache zutun.
    • OverKiLL;146089 schrieb:



      Ich glaube er Meinte, das es mit MySQL Ging ( Caali ? )

      und das auf MsSQL nicht verfügbar sein kann, weil es verschiedene Table's hat ?

      Naja, nur eine Vermutung ^^'

      //Edit Lol hatte vergessen zu Aktualisieren und schon waren da neue Beiträge, Sorri :D


      item2row, klappt wunderbar. (CHR_DBF)

      [COLOR="DeepSkyBlue"]item2row_str[/COLOR]

      Quellcode

      1. CREATE proc [dbo].[item2row_str]
      2. as
      3. set nocount on
      4. truncate table item2row_tbl
      5. declare @m_idPlayer char(7),@serverindex char(2),@m_Inventory varchar(6000),@m_Bank varchar(6000)
      6. declare item2row_cursor cursor fast_forward for
      7. select m_idPlayer,serverindex,m_Inventory,m_Bank
      8. from view_character_level(nolock)
      9. order by m_idPlayer
      10. open item2row_cursor
      11. fetch next from item2row_cursor
      12. into @m_idPlayer,@serverindex,@m_Inventory,@m_Bank
      13. while @@fetch_status = 0
      14. begin
      15. if @m_Inventory <> '$'
      16. insert item2row_tbl
      17. (m_idPlayer,serverindex,m_dwObjId,m_dwItemId,m_nItemNum,m_nAbilityOption, ItemResist, ResistAbilityOpt, m_position)
      18. select m_idPlayer,serverindex,m_dwObjId,m_dwItemId,m_nItemNum,isnull(m_nAbilityOption,0), ItemResist, ResistAbilityOpt, 'I'
      19. -- from master.dbo.fn_item2row(@m_idPlayer,@serverindex,@m_Inventory)
      20. from dbo.fn_item2row(@m_idPlayer,@serverindex,@m_Inventory)
      21. if @m_Bank <> '$'
      22. insert item2row_tbl
      23. (m_idPlayer,serverindex,m_dwObjId,m_dwItemId,m_nItemNum,m_nAbilityOption, ItemResist, ResistAbilityOpt, m_position)
      24. select m_idPlayer,serverindex,m_dwObjId,m_dwItemId,m_nItemNum,isnull(m_nAbilityOption,0), ItemResist, ResistAbilityOpt, 'B'
      25. -- from master.dbo.fn_item2row(@m_idPlayer,@serverindex,@m_Bank)
      26. from dbo.fn_item2row(@m_idPlayer,@serverindex,@m_Bank)
      27. fetch next from item2row_cursor
      28. into @m_idPlayer,@serverindex,@m_Inventory,@m_Bank
      29. --print @m_idPlayer
      30. end
      31. close item2row_cursor
      32. deallocate item2row_cursor
      33. set nocount off
      34. return
      Alles anzeigen


      [COLOR="DeepSkyBlue"]item2row (Function)[/COLOR]

      Brainfuck-Quellcode

      1. CREATE function [dbo].[fn_item2row]
      2. (@m_idPlayer char(7),@serverindex char(2),@arr_item varchar(6000))
      3. returns @item_row table (m_idPlayer char(7),serverindex char(2),m_dwObjId int,m_dwItemId int, m_nItemNum int, m_nUniqueNo bigint, m_nAbilityOption int, ItemResist int, ResistAbilityOpt int)
      4. as
      5. begin
      6. declare @item varchar(255),@item_property varchar(50)
      7. declare @pos_s int,@pos_e int
      8. declare @pos_sub_s int,@pos_sub_e int
      9. declare @m_dwobjid varchar(11)
      10. declare @m_dwitemid varchar(11)
      11. declare @m_nitemnum varchar(11)
      12. declare @m_nUniqueNo varchar(11)
      13. declare @m_nabilityoption varchar(11)
      14. --------------------------------------------------
      15. /* 추가부분 Start */
      16. --------------------------------------------------
      17. declare @ItemResist varchar(11)
      18. declare @ResistAbilityOpt varchar(11)
      19. --------------------------------------------------
      20. /* 추가부분 End */
      21. --------------------------------------------------
      22. declare @idx int
      23. set @pos_e = 1
      24. while 1=1
      25. begin
      26. set @pos_s = charindex('/',@arr_item,@pos_e)
      27. if @pos_s = 0
      28. break
      29. set @item = substring(@arr_item,@pos_e,@pos_s-@pos_e)
      30. set @pos_sub_e = 1
      31. set @idx = 1
      32. while @idx <= 15 -- <- 13에서 15로 수정
      33. begin
      34. set @pos_sub_s = charindex(',',@item,@pos_sub_e)
      35. if @pos_sub_s = 0
      36. break
      37. set @item_property = substring(@item,@pos_sub_e,@pos_sub_s-@pos_sub_e)
      38. if @idx = 1
      39. set @m_dwobjid = @item_property
      40. if @idx = 2
      41. set @m_dwitemid = @item_property
      42. if @idx = 6
      43. set @m_nitemnum = @item_property
      44. if @idx=12
      45. set @m_nUniqueNo=@item_property
      46. if @idx = 13
      47. set @m_nabilityoption = @item_property
      48. --------------------------------------------------
      49. /* 추가부분 Start */
      50. --------------------------------------------------
      51. if @idx = 14
      52. set @ItemResist = @item_property
      53. if @idx = 15
      54. set @ResistAbilityOpt = @item_property
      55. --------------------------------------------------
      56. /* 추가부분 End */
      57. --------------------------------------------------
      58. set @idx = @idx + 1
      59. set @pos_sub_e = @pos_sub_s + 1
      60. end
      61. if not exists(select * from @item_row where m_dwObjId = @m_dwobjid) and @m_dwobjid is not null and @m_dwitemid is not null
      62. insert @item_row
      63. values
      64. (@m_idPlayer,@serverindex,@m_dwobjid,@m_dwitemid,@m_nitemnum,@m_nUniqueNo, @m_nabilityoption, @ItemResist, @ResistAbilityOpt)
      65. set @pos_e = @pos_s + 1
      66. end
      67. return
      68. end
      Alles anzeigen


      [COLOR="DeepSkyBlue"]item2row (Table)[/COLOR]

      Quellcode

      1. CREATE TABLE [dbo].[item2row_tbl](
      2. [m_idPlayer] [char](7) NULL,
      3. [serverindex] [char](2) NULL,
      4. [m_dwObjId] [int] NULL,
      5. [m_nItemNum] [int] NULL,
      6. [m_nAbilityOption] [int] NULL,
      7. [m_dwItemId] [varchar](32) NULL,
      8. [m_position] [char](1) NULL,
      9. [ItemResist] [int] NULL,
      10. [ResistAbilityOpt] [int] NULL
      11. ) ON [PRIMARY]
      12. GO
      13. SET ANSI_PADDING OFF
      14. GO
      15. ALTER TABLE [dbo].[item2row_tbl] ADD CONSTRAINT [DF__item2row___ItemR__153B1FDF] DEFAULT ((0)) FOR [ItemResist]
      16. GO
      17. ALTER TABLE [dbo].[item2row_tbl] ADD CONSTRAINT [DF__item2row___Resis__162F4418] DEFAULT ((0)) FOR [ResistAbilityOpt]
      18. GO
      Alles anzeigen


      Ich sag nur so viel:
      Die Prozedur erstellt rows für jeden Slot von jedem Char.
      Sollte als Tipp genügen oO
    • TwiLight;146096 schrieb:

      item2row, klappt wunderbar. (CHR_DBF)

      [COLOR="DeepSkyBlue"]item2row_str[/COLOR]

      Quellcode

      1. CREATE proc [dbo].[item2row_str]
      2. as
      3. set nocount on
      4. truncate table item2row_tbl
      5. declare @m_idPlayer char(7),@serverindex char(2),@m_Inventory varchar(6000),@m_Bank varchar(6000)
      6. declare item2row_cursor cursor fast_forward for
      7. select m_idPlayer,serverindex,m_Inventory,m_Bank
      8. from view_character_level(nolock)
      9. order by m_idPlayer
      10. open item2row_cursor
      11. fetch next from item2row_cursor
      12. into @m_idPlayer,@serverindex,@m_Inventory,@m_Bank
      13. while @@fetch_status = 0
      14. begin
      15. if @m_Inventory <> '$'
      16. insert item2row_tbl
      17. (m_idPlayer,serverindex,m_dwObjId,m_dwItemId,m_nItemNum,m_nAbilityOption, ItemResist, ResistAbilityOpt, m_position)
      18. select m_idPlayer,serverindex,m_dwObjId,m_dwItemId,m_nItemNum,isnull(m_nAbilityOption,0), ItemResist, ResistAbilityOpt, 'I'
      19. -- from master.dbo.fn_item2row(@m_idPlayer,@serverindex,@m_Inventory)
      20. from dbo.fn_item2row(@m_idPlayer,@serverindex,@m_Inventory)
      21. if @m_Bank <> '$'
      22. insert item2row_tbl
      23. (m_idPlayer,serverindex,m_dwObjId,m_dwItemId,m_nItemNum,m_nAbilityOption, ItemResist, ResistAbilityOpt, m_position)
      24. select m_idPlayer,serverindex,m_dwObjId,m_dwItemId,m_nItemNum,isnull(m_nAbilityOption,0), ItemResist, ResistAbilityOpt, 'B'
      25. -- from master.dbo.fn_item2row(@m_idPlayer,@serverindex,@m_Bank)
      26. from dbo.fn_item2row(@m_idPlayer,@serverindex,@m_Bank)
      27. fetch next from item2row_cursor
      28. into @m_idPlayer,@serverindex,@m_Inventory,@m_Bank
      29. --print @m_idPlayer
      30. end
      31. close item2row_cursor
      32. deallocate item2row_cursor
      33. set nocount off
      34. return
      Alles anzeigen


      [COLOR="DeepSkyBlue"]item2row (Function)[/COLOR]

      Brainfuck-Quellcode

      1. CREATE function [dbo].[fn_item2row]
      2. (@m_idPlayer char(7),@serverindex char(2),@arr_item varchar(6000))
      3. returns @item_row table (m_idPlayer char(7),serverindex char(2),m_dwObjId int,m_dwItemId int, m_nItemNum int, m_nUniqueNo bigint, m_nAbilityOption int, ItemResist int, ResistAbilityOpt int)
      4. as
      5. begin
      6. declare @item varchar(255),@item_property varchar(50)
      7. declare @pos_s int,@pos_e int
      8. declare @pos_sub_s int,@pos_sub_e int
      9. declare @m_dwobjid varchar(11)
      10. declare @m_dwitemid varchar(11)
      11. declare @m_nitemnum varchar(11)
      12. declare @m_nUniqueNo varchar(11)
      13. declare @m_nabilityoption varchar(11)
      14. --------------------------------------------------
      15. /* 추가부분 Start */
      16. --------------------------------------------------
      17. declare @ItemResist varchar(11)
      18. declare @ResistAbilityOpt varchar(11)
      19. --------------------------------------------------
      20. /* 추가부분 End */
      21. --------------------------------------------------
      22. declare @idx int
      23. set @pos_e = 1
      24. while 1=1
      25. begin
      26. set @pos_s = charindex('/',@arr_item,@pos_e)
      27. if @pos_s = 0
      28. break
      29. set @item = substring(@arr_item,@pos_e,@pos_s-@pos_e)
      30. set @pos_sub_e = 1
      31. set @idx = 1
      32. while @idx <= 15 -- <- 13에서 15로 수정
      33. begin
      34. set @pos_sub_s = charindex(',',@item,@pos_sub_e)
      35. if @pos_sub_s = 0
      36. break
      37. set @item_property = substring(@item,@pos_sub_e,@pos_sub_s-@pos_sub_e)
      38. if @idx = 1
      39. set @m_dwobjid = @item_property
      40. if @idx = 2
      41. set @m_dwitemid = @item_property
      42. if @idx = 6
      43. set @m_nitemnum = @item_property
      44. if @idx=12
      45. set @m_nUniqueNo=@item_property
      46. if @idx = 13
      47. set @m_nabilityoption = @item_property
      48. --------------------------------------------------
      49. /* 추가부분 Start */
      50. --------------------------------------------------
      51. if @idx = 14
      52. set @ItemResist = @item_property
      53. if @idx = 15
      54. set @ResistAbilityOpt = @item_property
      55. --------------------------------------------------
      56. /* 추가부분 End */
      57. --------------------------------------------------
      58. set @idx = @idx + 1
      59. set @pos_sub_e = @pos_sub_s + 1
      60. end
      61. if not exists(select * from @item_row where m_dwObjId = @m_dwobjid) and @m_dwobjid is not null and @m_dwitemid is not null
      62. insert @item_row
      63. values
      64. (@m_idPlayer,@serverindex,@m_dwobjid,@m_dwitemid,@m_nitemnum,@m_nUniqueNo, @m_nabilityoption, @ItemResist, @ResistAbilityOpt)
      65. set @pos_e = @pos_s + 1
      66. end
      67. return
      68. end
      Alles anzeigen


      [COLOR="DeepSkyBlue"]item2row (Table)[/COLOR]

      Quellcode

      1. CREATE TABLE [dbo].[item2row_tbl](
      2. [m_idPlayer] [char](7) NULL,
      3. [serverindex] [char](2) NULL,
      4. [m_dwObjId] [int] NULL,
      5. [m_nItemNum] [int] NULL,
      6. [m_nAbilityOption] [int] NULL,
      7. [m_dwItemId] [varchar](32) NULL,
      8. [m_position] [char](1) NULL,
      9. [ItemResist] [int] NULL,
      10. [ResistAbilityOpt] [int] NULL
      11. ) ON [PRIMARY]
      12. GO
      13. SET ANSI_PADDING OFF
      14. GO
      15. ALTER TABLE [dbo].[item2row_tbl] ADD CONSTRAINT [DF__item2row___ItemR__153B1FDF] DEFAULT ((0)) FOR [ItemResist]
      16. GO
      17. ALTER TABLE [dbo].[item2row_tbl] ADD CONSTRAINT [DF__item2row___Resis__162F4418] DEFAULT ((0)) FOR [ResistAbilityOpt]
      18. GO
      Alles anzeigen


      Ich sag nur so viel:
      Die Prozedur erstellt rows für jeden Slot von jedem Char.
      Sollte als Tipp genügen oO


      Vielen dank jezz hab ich noch ne frage und zwar wie man items aus dem inventar löschen kann per db