|
|
| Auteur | Message |
|---|
grouik5962 Bavard
Nombre de messages: 13 Age: 32 Localisation: France / Nord Date d'inscription: 08/07/2006
 | Sujet: Re: saluto! Mer 19 Juil - 13:35 | |
| Je crois que tu peux utiliser webcron même pour un test en local. Il suffit que tu donnes l'adresse exacte de ton script : en l'occurence l'IP de ta machine. Ca devrait ressembler à çà : http://81.10.120.40/script/credit_point.php_________________ Dans le chameau, tout est bon : www.chamoland.infoNouveau niveau 2 : en Prod ! Vérification script mission 8 (Nouveau système de bénéfice boutique) |
|
 | |
Pif Bavard
Nombre de messages: 15 Age: 24 Date d'inscription: 19/07/2006
 | Sujet: Re: saluto! Mer 19 Juil - 13:50 | |
| oui mais moi le probleme c'est qu'il faut que je soit totalement independant car je part en vacance bientot et je vait embarquer mon portable pour commencer a faire des test.(oui oui je sait il y en a qui on des vacances et qui passe leur journee a coder,mais bon.).Donc je serait entirement en local sans connection internet donc pas la peine de penser a webcron pour l'instant. Or sur le premier lien que j'ai donner tout a leur j'ai pu remarquer sur la capture d'ecran qu'il y avait un dossier Crons Job ,j'en ait donc deduit qu'il devait y avoir un programme (executable),afinde simuler un Crons. |
|
 | |
naholyr Langue pendue
Nombre de messages: 97 Date d'inscription: 08/06/2006
 | |
 | |
Pif Bavard
Nombre de messages: 15 Age: 24 Date d'inscription: 19/07/2006
 | Sujet: Re: saluto! Jeu 20 Juil - 6:58 | |
| Donc si j'ai bien compris et d'apres ce que j'ai pu trouver sur le net Cygwin et une sorte d'emulateur de commande unix. Merci pour tes renseignement il me sont d'une aide precieuse mais je n'est besoin que de cygwin pour utiliser les crons? ou dois-je installer autre chose ou est-ce compris dans Cygwin? je vait quand meme installer Cygwin sur mon pc et tester les ligne de commande que tu ma fourni encore. |
|
 | |
Korfuri Grand habitué
Nombre de messages: 201 Date d'inscription: 20/11/2005
 | Sujet: Re: saluto! Jeu 20 Juil - 9:56 | |
| Il est probable que ton hébergeur sera sous linux, un bsd ou un autre unix. Donc cygwin te permet de t'entrainer à utiliser la ligne de commande. Mais si tu veux aller un peu plus loin, tu peux toujours essayer ce truc : http://www.damnsmalllinux.org/download.htmlUn live CD qui peut se lancer au boot ou directement depuis windows. _________________ Editeur PHP : Kwrite Serveur maison : Linux SuSE OSS 10.0 + Apache 2.0.54 + PHP 4.4.0 + MySQL 5.1.6-alpha + phpMyAdmin 2.6.4-pl3 Hébergement : free.fr
|
|
 | |
Pif Bavard
Nombre de messages: 15 Age: 24 Date d'inscription: 19/07/2006
 | Sujet: Re: saluto! Jeu 20 Juil - 13:59 | |
| ok merci,j'essayerai ca un peu plus tard parce que mon pc en ce moment galere(probleme:il se prendre pour les pompier  il fait la sirene exactement pareil  ,mais bon). J'ai put remarquer que ton hebergeur c'est free (dans ta signature).Est-ce qu'il le prennent une charge les crons eux et si oui est-ce payant. Sinon y a t'il un hebergeur qui les prennent en charge. au fait y a quelque chose qui me chagrinne sur webcron j'ai pu voir que l'on pouvait le faire toutes les heures seulement j'ai donc chercher d'autre service du meme type mais pour la plupart je n'est trouver que au mieux une heure,pourtant certain jeux sur le net le font toutes les 3 ou 4 secondes. :scratch: Donc la ya un truc que je comprend pas,en plus ca va poser probleme si les ressources ne grimpe que toute les heures. |
|
 | |
naholyr Langue pendue
Nombre de messages: 97 Date d'inscription: 08/06/2006
 | Sujet: Re: saluto! Jeu 20 Juil - 14:25 | |
| | Pif a écrit: | | Sinon y a t'il un hebergeur qui les prennent en charge. | Il y a 1&1, probablement d'autres il faut leur demander.
| Citation: | | au fait y a quelque chose qui me chagrinne sur webcron j'ai pu voir que l'on pouvait le faire toutes les heures seulement j'ai donc chercher d'autre service du meme type mais pour la plupart je n'est trouver que au mieux une heure,pourtant certain jeux sur le net le font toutes les 3 ou 4 secondes. :scratch: Donc la ya un truc que je comprend pas,en plus ca va poser probleme si les ressources ne grimpe que toute les heures. | Attention au script que tu vas lancer toutes les 3 secondes, il a intérêt à être très léger pour ne pas plomber tes performances. |
|
 | |
grouik5962 Bavard
Nombre de messages: 13 Age: 32 Localisation: France / Nord Date d'inscription: 08/07/2006
 | Sujet: Re: saluto! Jeu 20 Juil - 15:54 | |
| A mon avis, plutôt que de lancer un script toutes les 3 à 4 secondes pour incrémenter les ressources. Il vaut mieux gérer çà en interne en calculant l'intervalle entre la dateCourante et la date de dernière mise à jour du joueur courant pour lui créditer ses nouvelles ressources. Et se sera surement beaucoup moins gourmand en ressource. En plus je ne vois pas trop l'interêt de mettre à jour un compte joueurs toutes les 3 secondes si ce même joueur se connecte 10 minutes dans la journée. Voir ne se connecte pas ce jour là :? _________________ Dans le chameau, tout est bon : www.chamoland.infoNouveau niveau 2 : en Prod ! Vérification script mission 8 (Nouveau système de bénéfice boutique) |
|
 | |
Pif Bavard
Nombre de messages: 15 Age: 24 Date d'inscription: 19/07/2006
 | Sujet: Re: saluto! Ven 21 Juil - 17:58 | |
| vous pensez que une heure c'est un bon delai? l'avantage averc ce genre de rafraichissement c'est que si tu doit faire une evo et que ta pas les ressources et en plus que ta pas besoin de tout ce qu'on pourrai te donner en une heure bin tes pas obliger d'attendre une heure pour l'avoir. Mais je suis d'accord il faut pas un script trop gourmand.(mais je pense que ca sera le cas.Donc...). | Citation: | Jeu 20 Juil - 16:54 A mon avis, plutôt que de lancer un script toutes les 3 à 4 secondes pour incrémenter les ressources. Il vaut mieux gérer çà en interne en calculant l'intervalle entre la dateCourante et la date de dernière mise à jour du joueur courant pour lui créditer ses nouvelles ressources. Et se sera surement beaucoup moins gourmand en ressource.
|
tu pourrais m'expliquer les principe plus en detail,car la je comprend pas trop ou tu veut en venir. |
|
 | |
KosMos Nouveau
Nombre de messages: 3 Age: 22 Date d'inscription: 31/07/2006
 | Sujet: Re: saluto! Lun 31 Juil - 18:50 | |
| | Pif a écrit: |
| Citation: | Jeu 20 Juil - 16:54 A mon avis, plutôt que de lancer un script toutes les 3 à 4 secondes pour incrémenter les ressources. Il vaut mieux gérer çà en interne en calculant l'intervalle entre la dateCourante et la date de dernière mise à jour du joueur courant pour lui créditer ses nouvelles ressources. Et se sera surement beaucoup moins gourmand en ressource.
|
tu pourrais m'expliquer les principe plus en detail,car la je comprend pas trop ou tu veut en venir. |
En réalité c'est très simple (Bien plus pratique que des crons...) il suffit juste d'y penser.
A chaque fois que l'utilisateur execute ton script, tu modifies l'enregistrement lui correspondant dans la table "utilisateurs" de ta base de donnée de façon a garder en mémoire l'heure actuelle, c'est à dire l'heure à laquelle il a exécuté pour la dernière fois le script. Mieux vaux même enregistrer sous forme de timestamp pour plus de précision.
Sur cette même page, avant de mettre à jour l'heure actuelle dans ta base de donnée comme je viens de te l'expliquer plus haut, tu récupère cette valeur, elle correspond donc à la date de la dernière exécution de ce script par cet utilisateur précis. Tu la soustrais à l'heure actuelle et tu obtient le temps qu'il s'est écoulé depuis la dernière exécution du script par cet utilisateur et tu peux donc calculer le nombre de ressources qu'il a ammassé pendant cette durée. Ensuite à la fin de ton script, tu mémorises l'heure actuelle, comme expliqué plus haut.
En gros :
1) Tu récupère le timestamp qui correspond à la dernière exécution du script par l'utilisateur (qui est stoqué dans une colone de ta table "utilisateurs")
2) Tu récupère l'heure actuelle via la fonction time() et tu soustrais l'heure précédement récupéré : Tu obtiens le nombre de seconde qui s'est déroulé depuis la dernière exécution du script et tu peut faire toute ta cuisine avec.
3) Tu met à jour ton utilisateur dans ta base en mémorisant l'heure actuelle
Voilà, essaye de comprendre ce systeme, tu vas te prendre la tête avec des crons. Celui ci est bien plus simple, précis et fiable. |
|
 | |
alfanor Bavard
Nombre de messages: 41 Date d'inscription: 14/06/2006
 | Sujet: Re: saluto! Lun 31 Juil - 22:18 | |
| D'ailleurs pour ce que te dit KosMos il y a un tutorial dans la partie "Tutoriaux - Scripts", donc pour encore mieux comprendre tu peut le regarder. |
|
 | |
Pif Bavard
Nombre de messages: 15 Age: 24 Date d'inscription: 19/07/2006
 | Sujet: Re: saluto! Mer 2 Aoû - 12:07 | |
| oui merci je l'avais vu mais moi j'ai fait ce tuto mais il correspond pas vraiment a ce que je veut faire. j'ai bidouiller un petit script qui fonctionne.il est pas super bien optimiser pour l'instant niveau requete mais se n'est pas le soucis pour le moment. En fait j'ai une table avec tout les niveaux de mes mines. a chaque niveau il y a la consommation par secondes. mais maintenant mon probleme est de trouver les coefficients adequats parce que j'ai calculer a l'avance ce que devait produire mais mine mais je l'ai fait en conso par heure et pas par seconde le probleme c'est que mais conso quand je l'ai divise par 3600 je me retrouve avec des chiffres a virgules or moi je ne veut pas que mais ressources possede des virgules. donc j'ai changer de tactique est je stocke les intervalles d'approvisionnement: je m'explique: dans ma base je stocke tout les intervalles de mises a jour en seconde:ex: lvl1->60 pour le fer,c'est a dire que toutes les 60secondes j'augmente de 1 mon stocke de fer mais se systeme a des limites et je ne peut pas faire varier les autre production de mes autres mines.Et cela casse le realiste car pour un meme niveau je voudrez avoir une production differente pour mes ressources(ex: Pour un lvl1 -> prod de fer: 60/s et prod d'or: 30/s.Donc si vous avez une idee miracles pour les niveaux je vous ecoutes car moi je suis a cour d'idees. |
|
 | |
KosMos Nouveau
Nombre de messages: 3 Age: 22 Date d'inscription: 31/07/2006
 | Sujet: Re: saluto! Mer 2 Aoû - 17:23 | |
| Avec mon systeme suffit d'arrondir à chaque fois le total obtenu avec la fonction round()... |
|
 | |
Pif Bavard
Nombre de messages: 15 Age: 24 Date d'inscription: 19/07/2006
 | Sujet: Re: saluto! Jeu 3 Aoû - 10:58 | |
| |
|
 | |
naholyr Langue pendue
Nombre de messages: 97 Date d'inscription: 08/06/2006
 | Sujet: Re: saluto! Jeu 3 Aoû - 16:15 | |
| | KosMos a écrit: | En gros :
- Tu récupère le timestamp qui correspond à la dernière exécution du script par l'utilisateur (qui est stoqué dans une colone de ta table "utilisateurs")
- Tu récupère l'heure actuelle via la fonction time() et tu soustrais l'heure précédement récupéré : Tu obtiens le nombre de seconde qui s'est déroulé depuis la dernière exécution du script et tu peut faire toute ta cuisine avec.
- Tu met à jour ton utilisateur dans ta base en mémorisant l'heure actuelle
Voilà, essaye de comprendre ce systeme, tu vas te prendre la tête avec des crons. Celui ci est bien plus simple, précis et fiable. |
Hmmm, fiable ? J'ai un doute.
Mettons que mes joueurs gagnent 1 pièce d'or toutes les 5 secondes. J'ai un joueur particulièrement assidu : il fait un refresh toutes les 4 secondes. Avec ton système il ne va jamais gagner la moindre pièce 
avec T le timestamp à l'exécution du script :1. Récupération du dernier timestamp = T-4, donc delta = 4 2. Nombre de pièces d'or à ajouter = delta/5 = 0 3. Mémorisation du timestamp actuel = T Et ce, à chaque exécution toutes les 4 secondes, il ne gagnera donc jamais rien.
Tu vas me dire : "oui mais c'est parce qu'il faut arrondir au supérieur". Ok :1. Récupération du dernier timestamp = T-4, donc delta = 4 2. Nombre de pièces d'or à ajouter = delta/5 = 1 3. Mémorisation du timestamp actuel = T Et ce, à chaque exécution toutes les 4 secondes, il gagne donc une pièce d'or toutes les 4 secondes au lieu d'en gagner une toutes les 5 secondes !
Il faut donc stocker intelligemment le timestamp, dans mon cas (1po / 5sec) il faut que je stocke non pas le timestamp actuel à chaque fois mais le timestamp de la dernière pièce ajoutée !1. Récupération du timestamp dans la base = T-4, donc delta = 4 2. Nombre de pièces d'or à ajouter = delta/5 = 0 3. Dernière pièce ajoutée = 0, pas de modification dans la base. 4 secondes plus tard il rafraichit à nouveau :1. Récupération du timestamp dans la base = T-8, donc delta = 8 2. Nombre de pièce d'or à ajouter = delta/5 = 1, reste 3. 3. Dernière pièce ajoutée = T-reste = T-3. 4 secondes plus tard il rafraîchit à nouveau :1. Récupération du timestamp dans la base = T-3-7, donc delta = 7 2. Nombre de pièce d'or à ajouter = delta/5 = 1, reste 2. 3. Dernière pièce ajoutée = T-reste = T-2. Etc...
Méthode à ne pas appliquer "bêtement" car les effets de bord selon la façon dont on calcul peuvent être désastreux. Le timestamp stocké en base doit à tout prix être calculé intelligemment. |
|
 | |
|