GTAOnline.net
IV : Multiplayer (iv:mp) => Scripting IV:MP [Squirrel center] => Discussion démarrée par: Heisenberg le 08 Septembre 2011, 02:42:29
-
Bonjour à tous, j'ai voulu tout regrouper en un seul script afin de bosser mon GM méthodiquement, et au court de cette manoeuvre périlleuse, j'ai rencontré quelques problèmes; voici mon code :
function onPlayerConnect(playerid)
{
local ban = EasyINI("scripts/bannedaccs/"+getPlayerName(playerid)+".ban");
local ini = EasyINI("scripts/playerfiles/"+getPlayerName(playerid)+".cadmin");
if (playerFileExists("scripts/bannedaccs/"+getPlayerName(playerid)+".ban") && ban.getKey("PlayerBan", "banned") == "true")
{
sendPlayerMessage(playerid, "Tu es banni de ce serveur.", COLOR_RED, false);
sendMessageToAll(getPlayerName(playerid) + " a été auto-ban! Raison: Ban evade.", COLOR_RED, false);
banPlayer(playerid, 0);
}
if(!ini.keyExists("PlayerInfo", "password"))
return sendPlayerMessage(playerid, "Ce compte n'est pas enregistré, enregistre toi avec '/register (password)'!", COLOR_RED, false);
if (ini.keyExists("PlayerInfo", "password") && md5(getPlayerIp(playerid)) != ini.getKey("PlayerInfo", "ip"))
return sendPlayerMessage(playerid, "Ce compte est enregistré, logue toi!", COLOR_BLUE, false);
setPlayerModel(playerid, ini.getKey("PlayerInfo", "skin").tointeger());
Admin[playerid] = ini.getKey("PlayerInfo", "level").tointeger();
togglePlayerControls(playerid, true)
Logged[playerid] = 1;
if (Admin[playerid] == 0)
return log("[C'ADMIN]"+getPlayerName(playerid)+" a vient de se loguer");
sendPlayerMessage(playerid, "Admin level: "+Admin[playerid]+"!", COLOR_GRAYBLUE, false);
log("[C'ADMIN]"+getPlayerName(playerid)+" was auto logged in with Admin level "+Admin[playerid]+"!");
return 1;
}
Admin[playerid] = 0;
Logged[playerid] = 0;
Hide[playerid] = 0;
Warn[playerid] = 0;
Mute[playerid] = 0;
PMs[playerid] = 0;
Cmds[playerid] = 0;
SuperAdmin[playerid] = 0;
Text[playerid] = 0;
Repeat[playerid] = 0;
LoginAttempts[playerid] = 0;
SuperAdminAttempts[playerid] = 0;
addEvent("playerConnect", onPlayerConnect);
Et voici l'errueur :
AN ERROR HAS OCCURED [parameter 2 has an invalid type 'integer' ; expected: 'bool']
[2011-08-31 21:54:14] CALLSTACK
[2011-08-31 21:54:14] *FUNCTION [onPlayerCommand()] C:\Users\Vicky\Desktop\IVMP-0.1-T3-R1-Server-Win32\scripts/cadmin.nut line [1166]
[2011-08-31 21:54:14] LOCALS
[2011-08-31 21:54:14] [Logged] ARRAY
[2011-08-31 21:54:14] [Admin] ARRAY
[2011-08-31 21:54:14] [SuperAdmin] ARRAY
[2011-08-31 21:54:14] [SuperAdminAttempts] ARRAY
[2011-08-31 21:54:14] [PMs] ARRAY
[2011-08-31 21:54:14] [Cmds] ARRAY
[2011-08-31 21:54:14] [Hide] ARRAY
[2011-08-31 21:54:14] [Mute] ARRAY
[2011-08-31 21:54:14] [Warn] ARRAY
[2011-08-31 21:54:14] [closeChat] 0
[2011-08-31 21:54:14] [id] 0
[2011-08-31 21:54:14] [ini] INSTANCE
[2011-08-31 21:54:14] [cmd] ARRAY
[2011-08-31 21:54:14] [command] "/kick 0 test"
[2011-08-31 21:54:14] [playerid] 0
[2011-08-31 21:54:14] [this] TABLE
Voilà je galère bêtement sur ça, même si je sais que c'est tout con. Ca peut venir soit du fait que l'event n'est pas spécifique (pas le cas pour onPlayerConnect) ou soit de je sais pas quoi.
Si vous pouviez m'aider ça serait vraiment sympa, je cale vraiment.
Merci !
-
Analyse l'erreur :
AN ERROR HAS OCCURED [parameter 2 has an invalid type 'integer' ; expected: 'bool']
Même si tu ne connais pas l'anglais, avec un traducteur tu pourra sûrement trouver que le paramètre 2 de la ligne 1166 a un type "Integer" (qui signifie un entier), alors qu'on attent un booléen (true/false).
Exemple :
setPlayerFrozen(playerid, 50);
Ce n'est qu'un exemple, ici tu met un entier au lieu de true ou false.
Si tu ne trouve pas, donne nous ta ligne 1166.
-
Merci j'ai capté ! :)