2 problиmes
#1

Bonjour/Bonsoir а tous,


Je rencontre actuellement 2 problиmes, (( Le "GM" ne vient pas de moi, mais c'est un tutoriel disponible sur le forum anglais, j'ai rajoutй certaines choses pour en apprendre plus, mais bon passons.)).


1er Problиme:


Le soucis actuel est que lorsque je rajoute une ligne aprиs celle des "Skin", je recontre les erreurs et warnings suivant:

Beta.pwn(100) : error 075: input line too long (after substitutions)
Beta.pwn(101) : error 037: invalid string (possibly non-terminated string)
Beta.pwn(102) : error 037: invalid string (possibly non-terminated string)
Beta.pwn(102) : warning 215: expression has no effect
Beta.pwn(102) : error 001: expected token: ";", but found ")"
Beta.pwn(102) : error 029: invalid expression, assumed zero
Beta.pwn(102) : fatal error 107: too many error messages on one line


Code:
public OnGameModeInit()
{
	SetGameModeText("Apprend A script");
	mysql_debug(1); //Let's enable debugging so we can detect a problem(if there is)
    mysql = mysql_connect(host, user, db, pass); //This function will connect your server to database. Remember we have defined our host, username, database and password. It's time to use it here.
    if(mysql_errno(mysql) != 0) print(" Erreur de connexion a la BDD !"); //This will tell if your connection to database is successful or not. If it's not, check your host, username, database and password. Make sure they all right.
    
    //If we're cool, it's time to create a table for your database.
    mysql_tquery(mysql, "CREATE TABLE IF NOT EXISTS `joueurs`(\
                        `ID` int(10) NOT NULL AUTO_INCREMENT, \
                        `Username` varchar(24) NOT NULL, \
                        `Password` varchar(129) NOT NULL, \
                        `IP` varchar(16) NOT NULL, \
                        `Admin` int(10) NOT NULL, \
                        `VIP` int(10) NOT NULL, \
                        `Argent` int(10) NOT NULL, \
                        `posX` float NOT NULL, \
                        `posY` float NOT NULL, \
                        `posZ` float NOT NULL, \
			`Interieur` int(11) NOT NULL, \
			`World` int(11) NOT NULL, \
			`Skin` int(10) NOT NULL, \
			`Niveau` int(10) NOT NULL, \
                        PRIMARY KEY (`ID`))", "", "");
             return 1;
}
Si je supprime la ligne " `Niveau` int(10) NOT NULL, \"
Tout marche bien, mais si je la laisse, зa ne fonctionne plus.

Est-ce que je devrais separer ma requиte tquery en deux parties diffйrentes ou existe t'il une solution ?

Merci.



Second problиme

J'ai ici un soucis avec mon systиme d'enregistrement de compte, quand je me crйe un compte pour la 1иre fois, que je me dйplace, normalement quand je me deconnecte, зa sauvegarde ma position. Mais lа, non, je suis obligй de me deconnectй, puis reconnectй, et la prochaine fois que je vais deco, lа, зa sauvegardera ma position.


Je sais pas si je suis clair, mais quand je me crйe un compte, je spawn au point A par exemple, normalement, quand je vais jusqu'au point B, puis que je me deconnecte, зa enregistre ma position pour la prochaine reconnexion, mais lа, non, quand je viens de m'inscrire et me deconnecte, зa n'enregistre pas ma position.
Par contre, si je suis dйjа enregistrй, et que je me deconnecte, lа, зa va enregistrer la bonne position.


Donc je pense qu'il y a un soucis avec le systиme d'enregistrement de compte, mais oщ ? Et comment le rйsoudre ?

Je ne vois vraiment pas comment rйsoudre ce soucis, j'ai testй diffйrentes choses, mais а chaque fois je rencontre un problиme.

Pastbin: http://pastebin.com/5f2K5G1P


Si vous avez besoin du pastbin tout entier, faites le moi savoir




Voilа tout, D'avance, merci.
Reply
#2

Pour le premier, tu doit refaire ta requette, car la ligne est trop longue. Pour le second sans OnPlayerSpawn, je ne peux rien faire pour t'aidй.
Reply
#3

Pourrais tu m'expliquer le "refaire ma requиte".
C'est а dire ? La faire en 2 parties ? M'arrкter a Skin, puis refaire la mкme sans les mкmes informations, en mettant simplement ce que je souhaite ajoutй ?




Sinon pour OnPlayerSpawn:

Code:
public OnPlayerSpawn(playerid)
{
	return 1;
}

J'ai surtout mes les informations, dans OnAccountLoad, disponible dans le pastbin.
Reply
#4

PHP Code:
mysql_tquery(mysql"CREATE TABLE IF NOT EXISTS `joueurs`(\
                        `ID` int(10) NOT NULL AUTO_INCREMENT, \
                        `Username` varchar(24) NOT NULL, \
                        `Password` varchar(129) NOT NULL, \
                        `IP` varchar(16) NOT NULL, \
                        `Admin` int(10) NOT NULL, \
                        `VIP` int(10) NOT NULL, \
                        `Argent` int(10) NOT NULL, \
                        `posX` float NOT NULL, \
                        `posY` float NOT NULL, \
                        `posZ` float NOT NULL, \
            `Interieur` int(11) NOT NULL, \
            `World` int(11) NOT NULL, \
            `Skin` int(10) NOT NULL, \
            `Niveau` int(10) NOT NULL, \
                        PRIMARY KEY (`ID`))"
""""); 
en:
PHP Code:
mysql_tquery(mysql"CREATE TABLE IF NOT EXISTS `joueurs`(\
                        `ID` int(10) NOT NULL AUTO_INCREMENT, \
                        `Username` varchar(24) NOT NULL, \
                        `Password` varchar(129) NOT NULL, \
                        `IP` varchar(16) NOT NULL, \
                        `Admin` int(10) NOT NULL, \
                        `VIP` int(10) NOT NULL, \
                        `Argent` int(10) NOT NULL, \
                        `posX` float NOT NULL, \
                        PRIMARY KEY (`ID`))"
""""); 
PHP Code:
mysql_tquery(mysql"CREATE TABLE IF NOT EXISTS `joueurs`(\
                        `posY` float NOT NULL, \
                        `posZ` float NOT NULL, \
            `Interieur` int(11) NOT NULL, \
            `World` int(11) NOT NULL, \
            `Skin` int(10) NOT NULL, \
            `Niveau` int(10) NOT NULL, \
                        PRIMARY KEY (`ID`))"
""""); 
En deux parties. (je regarde le pastepin)

Edit: Si tu remplace OnAccountLoad par OnPlayerSpawn sa ne fait rien?
Reply
#5

@Chris53340: Non, tu n'ajoutes pas des champs comme ceci! Mais comme cela:

PHP Code:
ALTER TABLE `joueursADD  `newchampsINT NOT NULL AFTER  `Skin` ; 
Reply
#6

Je prйfиre crйer mes tables directement.. Donc que je me trompe c'est normale.
Reply
#7

EDIT: 1er soucis rйsolu, mais j'ai toujours un problиme pour l'enregistrement et la sauvegarde lors de la premiиre connexion.

Des idйes ?
Reply
#8

Dйsolй pour le UP, mais j'ai du "nouveau"


Code:
        case 2: //register dialog
        {
            if(!response) return Kick(playerid); //if they clicked Quit, we will kick them
            if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "S'enregistrer", "Ton mot de passe doit faire plus de 6 caractиres !", "S'enregistrer", "Quitter");
			if(strlen(inputtext) > 24) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "S'enregistrer", "Ton mot de passe doit faire moins de 24 caractиres !", "S'enregistrer", "Quitter");
            //strlen checks a lenght of a string. so if player types their password that is lower than 6, we tell them; Your password must be at least 6 characters long!
            WP_Hash(pInfo[playerid][Password], 129, inputtext); //hashing inputtext
            mysql_format(mysql, query, sizeof(query), "INSERT INTO `joueurs` (`Username`, `Password`, `IP`, `Admin`, `VIP`, `Argent`, `posX` ,`posY`, `posZ`, `Interieur`, `World`, `Skin`, `Niveau`) VALUES ('%e', '%s', '%s', 0, 0, 1000, 1527.5634, -1738.9218, 13.5469, 0, 0, 26, 1)", Name[playerid], pInfo[playerid][Password], IP[playerid]);
            //Now let's create a new row and insert player's information in it
            mysql_tquery(mysql, query, "", "");
            //let's execute the query
			printf("%f %f %f %d ",pInfo[playerid][posX], pInfo[playerid][posY], pInfo[playerid][posZ], pInfo[playerid][Argent]);
			SetSpawnInfo( playerid, 0, 26, 1527.5634,-1738.9218,13.5469, 0.0, 0, 0, 0, 0, 0, 0 );
			SetPlayerScore(playerid,pInfo[playerid][Niveau]);
			TogglePlayerSpectating(playerid, 0);
			SpawnPlayer(playerid);
        }
Dans la console, а l'aide du printf on peut voir 0 0 0 0, j'en conclus donc que les informations rentrй avant via la requкte ne sont pas rйcupйrйes aprиs, ou bien sont mal entrйes. Par contre sur Phpmyadmin, dans la base de donnйes, elles sont bien rentrйes. J'imagine que c'est un soucis de rйcupйrations des informations mais lа je suis bloquй, je ne trouve pas de solution а ce problиme. Serait-il possible de me guidй et de m'expliquer quels sont mes erreurs svp ? Merci.


(( Si je ne mets pas cette ligne de SetSpawnInfo зa me spawn en 0,0,0. Mкme si je tente de rйcuperйs les coordonйes de ma position avec pInfo[playerdi][posX] etc.


D'avance, encore merci.
Reply
#9

SELECT valeur FROM table;

Toi tu inserts juste des valeurs, tu n'en rйcupиres jamais.

Jonas
Reply
#10

Merci pour ta rйponse,

Je dois utiliser cette fonction de quel maniиre s'il te plaоt ?

Comme ceci ?
Code:
mysql_format(mysql, query, sizeof(query) SELECT (`Argent`, `Niveau` FROM `joueurs`, pInfo[playerid][Argent], pInfo[playerid][Niveau]);
Ou bien d'une maniиre diffйrente ?

Merci.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)