Jump to content
×
×
  • Create New...
  • 0

Problème liaison de pierre item IS


Stayms
 Share

Question

Bonjour a tous,

 

Je poste ce message car j'ai un petit problème au niveau du IS de mon site.

Lorsqu'un joueur achete une arme, celle ci va bien dans l'entrepot, mais une fois dans l'inventaire, il est impossible de lier de pierre dessus.

Pourtant lorsque je fait spawn une arme directement dans mon inventaire, les pierres se lient bien.

Je ne sais pas trop d'ou le problème peut venir, mais si vous avez des idées, merci de me les faires partagées.

 

Stayms

Mettez 11 imbéciles d'un coté, 10 philosophes de l'autre...
Les imbéciles l'emporteront !
C'est ca, la démocratie...

Link to comment
Share on other sites

  • Answers 18
  • Created
  • Last Reply

Top Posters For This Question

Top Posters For This Question

18 answers to this question

Recommended Posts

  • 0

mysql_query("INSERT INTO $db_player.item(id,vnum,owner_id,window,pos,socket2,count) VALUES((''),('". $vnum ."'),('". $id_sess ."'),('MALL'),('". $pos ."'),(select value0 from $db_player.item_proto where vnum=('" .$vnum ."')),('". $count ."'))");

 

Voici ma query, mais a aucun endroit le socket_pct n'est précisé dans la table item

Mettez 11 imbéciles d'un coté, 10 philosophes de l'autre...
Les imbéciles l'emporteront !
C'est ca, la démocratie...

Link to comment
Share on other sites

  • 0

Essaie avec ceci:

mysql_query("INSERT INTO $db_player.item(id,vnum,owner_id,window,pos,socket0,socket1,socket2,count) VALUES((''),('". $vnum ."'),('". $id_sess ."'),('MALL'),('". $pos ."'),('1'),('1'),('1'),('". $count ."'))");

" socket_pct " n'est pas présent dans l'exécution de query car tu pourras remarquer que dans aucun cas, " socket_pct " n'existe dans la table " item " de ta base de données " player ".

Link to comment
Share on other sites

  • 0

Bonsoir,

 

Petite information en vue de la tronche de ta query:

 

mysql_query("INSERT INTO $db_player.item(id,vnum,owner_id,window,pos,socket0,socket1,socket2,count) VALUES((''),('". $vnum ."'),('". $id_sess ."'),('MALL'),('". $pos ."'),('1'),('1'),('1'),('". $count ."'))");

 

pas besoin de parenthèses autour des valeurs que tu insert, ça fait du blabla en plus à transmettre et à interpréter.

 

mysql_query("INSERT INTO $db_player.item(id,vnum,owner_id,window,pos,socket0,socket1,socket2,count) VALUES('','". $vnum ."','". $id_sess ."','MALL','". $pos ."','1','1','1','". $count ."')");

 

Au passage, je ne sais pas si ton serveur a des joueurs mais tu risques d'être très rapidement confronté à une perte d'items achetés dans ta boutique car tu laisses l'auto-increment faire le boulot, et souvent le serveur vient insérer des items qui écrasent l'id de l'item acheté en boutique. Il serait donc judicieux que tu gères toi même cet id pour éviter toute perte d'item.

 

Onyx.

Link to comment
Share on other sites

  • 0

Oui, mon serveur commence a ce remplire, mais comment pense tu queje pourrais géré moi meme l'ID des items ? En incrémentant un gros nombre a tous mes items IS par exemple ? Histoire de ne pas me retrouvé avec des ID identiques pour autant qu'il n'incrémente pas en fonctione de l'ID le plus haut, mais bien en fonction de la place libre ?

 

Je ne sais pas, si tu as une idée, je suis la :)

 

Merci pour l'info

Mettez 11 imbéciles d'un coté, 10 philosophes de l'autre...
Les imbéciles l'emporteront !
C'est ca, la démocratie...

Link to comment
Share on other sites

  • 0

Bonjour,

 

Tu as une solution plutôt simple: Tu sélectionnes l'id le plus grand présent dans ta table item, et à cet id tu incrémente la valeur x que tu aura définie... ;)

 

Onyx.

Link to comment
Share on other sites

  • 0

Je ne comprend pas vraiment ce que ca change, a part si mon site ce base sur l'ID le plus haut et la game sur l'ID libre entre les deux, c'est le cas ?

Mettez 11 imbéciles d'un coté, 10 philosophes de l'autre...
Les imbéciles l'emporteront !
C'est ca, la démocratie...

Link to comment
Share on other sites

  • 0

Donc tu pense qu'il n'est pas possible qu'il y ai un bug a ce niveau ?

Mettez 11 imbéciles d'un coté, 10 philosophes de l'autre...
Les imbéciles l'emporteront !
C'est ca, la démocratie...

Link to comment
Share on other sites

  • 0

Sincèrement non, quand tu fait un insert, la clé primaire est OBLIGATOIREMENT unique.

Tant que ton id est inférieur au maximum de ta variable ici je crois que c'est un int(11) donc un chiffre à 11 chiffre, tu peux donc avoir au total 99.999.999.999 tuples (lignes) dans ta table

Link to comment
Share on other sites

  • 0

Okk, je pense aussi que la chanque qu'un tel cas se produise est sans doute nul :)

Mettez 11 imbéciles d'un coté, 10 philosophes de l'autre...
Les imbéciles l'emporteront !
C'est ca, la démocratie...

Link to comment
Share on other sites

  • 0

Alors ton site est mal coder ^^ c'est strictement impossible en fessant un insert décrasser une clé primaire c'est forcement un update

Essaye toi même tu crée une nouvelle ligne avec un id déjà existant, tu aura une erreur

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



  • Flux d'Activité

    1. 0

      Projet Genesis

    2. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    3. 0

      Metin2 Champions - Accès anticipé

    4. 0

      Barbok

    5. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    6. 2

      Partage Émulateur 2.63

    7. 2

      Partage Émulateur 2.63

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.