GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Antonio.C le 10 Janvier 2012, 12:35:36

Titre: Un petit problème sur mon script [Débutant]
Posté par: Antonio.C le 10 Janvier 2012, 12:35:36
Bonjour, je  viens de commencer à apprendre le script en pawn, j'ai farfouillé et regardé un peu partout, sur des vidéos, samp wiki...
Et j'ai réussi à dénicher quelques commandes : /handsup, /biere, /credits, /afk et /back.
Ce n'est qu'un début et j'ai déjà plusieurs érreurs... J'aimerai avoir l'aide et des conseils auprès de vous afin d'apprendre et de ne plus faire les mêmes érreurs

Voici les érreurs :

C:\Program Files (x86)\Rockstar Games\Samp server\pawno\Serveur test.pwn(88) : warning 217: loose indentation

Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


1 Warning.


Et le code : // This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

#include <a_samp>

#if defined FILTERSCRIPT

#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x9EC73DAA
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xDABB3EAA
#define COLOR_YELLOW2 0xF5DEB3AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_DBLUE 0x2641FEAA
#define COLOR_SPEC 0xBFC0C200
#define COLOR_BLUE 0x2641FEAA


public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by Antonio.C");
print("--------------------------------------\n");
return 1;
}

public OnFilterScriptExit()
{
return 1;
}

#else

main()
{
print("\n----------------------------------");
print(" Blank Gamemode by Antonio.C");
print("----------------------------------\n");
}

#endif

public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

public OnGameModeExit()
{
return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}

public OnPlayerConnect(playerid)
{
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
return 1;
}

public OnPlayerSpawn(playerid)
{
return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{

GivePlayerMoney(playerid, -500);

return 1;
}

public OnVehicleSpawn(vehicleid)
{
return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}

public OnPlayerText(playerid, text[])
{
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{

if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
}

if(strcmp(cmdtext, "/handsup", true) == 0)
    {
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
    return 1;
    }

if(strcmp(cmdtext, "/biere", true) == 0)
    {
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_DRINK_BEER);
    return 1;
    }
    
if (strcmp("/afk", cmdtext, true, 10) == 0)
{
TogglePlayerControllable(playerid,0);
SetPlayerChatBubble(playerid, " Mode AFK !", 0x9EC73DAA , 100.0, 1000000);
GameTextForPlayer(playerid, " Vous êtes maintenant AFK, tapez /back pour revenir au jeu.",6000, 5);
SetPlayerHealth(playerid,9999.999);
    return 1;
    }
    
if (strcmp("/back", cmdtext, true, 10) == 0)
{
TogglePlayerControllable(playerid,1);
SetPlayerChatBubble(playerid, "En plein jeu",0x9EC73DAA , 100.0, 1000000);
GameTextForPlayer(playerid, "  Vous êtes maintenant AFK, tapez /back pour revenir au jeu.",6000, 5);
SetPlayerHealth(playerid,100.0);
    return 1;
    }
    
if (strcmp("/credits", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid, 0xAFAFAFAA, " Ce serveur a été entièrement scripté par Antonio.C ");
return 1;
    }

return 0;

}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}

public OnRconCommand(cmd[])
{
return 1;
}

public OnPlayerRequestSpawn(playerid)
{
return 1;
}

public OnObjectMoved(objectid)
{
return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}

public OnPlayerExitedMenu(playerid)
{
return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}

public OnPlayerUpdate(playerid)
{
return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}

J'aimerai savoir ce qui va pas car ça me tracasse depuis un bon bout de temps.

Merci beaucoup d'avance !!  :happy

EDIT : Je suis passé de 26 érreurs a 3 en ayant fermé une parenthèse oubliée ^^ Puis j'ai corrigé quelques fautes et je suis passé a une érreur mais il reste toujours 1 warning et 1 erreur

Re-EDIT : L'érreur était dûe a un oubli de " ; ". Maintenant il me reste plus qu'un seul warning :)
Titre: Re : Un petit problème sur mon script [Débutant]
Posté par: cristab le 10 Janvier 2012, 13:40:40
de memoire c'est

GivePlayerMoney(playerid, -500); et non

GiveMoney(playerid, -500);
Titre: Re : Un petit problème sur mon script [Débutant]
Posté par: Antonio.C le 10 Janvier 2012, 13:41:59
Oui merci ^^ J'avais aussi un doute et j'ai vérifié sur le wiki samp puis j'ai corrigé.
Merci de ta réponse  :)
Titre: Re : Un petit problème sur mon script [Débutant]
Posté par: Xartrick le 10 Janvier 2012, 14:52:05
Maintenant, il ne reste plus qu'à ajouter une tabulation juste avant l'instruction pour l'indenter correctement !
Titre: Re : Un petit problème sur mon script [Débutant]
Posté par: Antonio.C le 10 Janvier 2012, 17:15:16
Bonjour et merci de ta réponse, je suis encore débutant et je n'ai pas encore vu ces termes :p Peux-tu, s'il te plaît, m'expliquer ce que sont la tabulation et l'indentation ?

Merci beacoup :)
Titre: Re : Un petit problème sur mon script [Débutant]
Posté par: Xartrick le 10 Janvier 2012, 17:21:55
Tabulation est une touche de ton clavier.

(http://www.ac-nancy-metz.fr/pres-etab/collbergpfadhamsousvarsberg/Disciplines/EPS/images_site/Touche_tabulation.jpg)

Pour l'indentation, va voir ces messages:

Quelques règles de base pour mieux scripter (http://www.gtaonline.fr/forums/index.php/topic,6250.0.html)
La programmation optimisée (http://www.gtaonline.fr/forums/index.php/topic,13368.0.html)
Titre: Re : Un petit problème sur mon script [Débutant]
Posté par: Antonio.C le 10 Janvier 2012, 17:29:02
Problème résolu !! Merci beaucoup pour vos réponses.

Bonne journée  :)