GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: dylle76620 le 27 Septembre 2008, 22:48:06
-
bonsoir j'ai un probleme , connaissez vous la commande /bk? c'ets une commande qui permet au flic de savoir ou se trouve celui qui a fait cette commande (pour appeller du renfort) j'ai pris ce bout de code d'un gm mais j'ai 8 error
http://pastebin.com/m55885b71
et voici la commande
http://pastebin.com/m527d92d2
merci a vous
-
Et voila quand on fait du copié collé....
Sinon les lignes des erreurs correspondent elles au ligne du code ??
-
oui , je sait c'est pas bien de copié coller mais sa fait des semaine j'essaye je n'y arrive pas je sait creer la commande /bk oui mais je sait pas faire le checkpoint sur la carte etc
-
Un checkpoint c'est pas bien compliqué :
Dans ton pawn tu a une fonction SetPlayerCheckpoint
qui veut dire ?? Créer un checkpoint ^^ Voila alors bon, heu ^^ lol c'est pas dur hein ^^
pour détruire ton checkpoint tu utilise ça DisablePlayerCheckpoint(playerid);
pour créer un checkpoint tu mettra dans ton code
SetPlayerCheckpoint(playerid, x, y, z, Taille (entre 1 et 5 ));
-
ok emrci :D mais j'ai pas compris pourquoi j'avais ces erreurs
-
C'est bon t'as plus de prob ?? résolu ?? ^^
-
nan je sait pas ou placé le checkpoint et comment faire pour que le joueur soit affiché sur la carte (celui qu itape la commande)
-
Bah le joueur tape la commande, alors tu as un SetPlayerCheckpoint dans la commande
exemple :
if (strcmp(cmdtext, "/check", true)==0)
{
SetPlayerCheckpoint(playerid, X, Y, Z, 3); // le checkpoint ne sera visible que par le joueur qui a taper la commande, si tu veut qu'il soit visible par tout le mode, tu ajoutera un bout de code que je te filerais plus bas
return 1;
}
de par cette commande, le checkpoint sera visible sur la carte, par un carré rouge, ou un triangle suivant le dénivelé ;)
Maintenant si tu veut que ton joueur soit visible sur la carte aussi, tu ajoute :
ShowPlayerMarkers(1);
dans OnGameModeInit, a moins que tu ne veuille qu'il soit visible que si la commande a été tapé, donc pour ça essaye de mettre ça dans ta commande :
ShowPlayerMarkers(playerid);
je ne sais pas si ça marche, faut tenter ^^
Donc pour que le checkpoint soit visible par tout le monde :
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerCheckpoint(i, X, Y, Z, 3);
return 1;
}
donc toi dans ta commande ça donnera :
if (strcmp(cmdtext, "/check", true)==0)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
SetPlayerCheckpoint(i, X, Y, Z, 3);
return 1;
}
return 1;
}
;)
-
et pour que il soit visible seulement pour la famille 1 2 3 comment on fait ? qui sont la police, le fbi et l'armée
-
Je te fait le code et je te l envoie plus tard des que je rentre des cours
-
merci beacoup :D
-
t as de la chance mes prof sont pas la tien le code pour que ca soit visible que pour FBI et FLIC
ca c' est la cmd
if(strcmp(cmd,"/rd",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
{
if (PlayerInfo[playerid][pRequestingBackup] != 1)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "A TOUTES LES UNITES Police et FBI: %s demande des renforts, allez au marqueur jaune sur le radar.", sendername);
PlayerInfo[playerid][pRequestingBackup] = 1;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[pMember] == 1||PlayerInfo[pLeader] == 1||PlayerInfo[pMember] == 2||PlayerInfo[pLeader] == 2)
{
SetPlayerMarkerForPlayer(i, playerid, 0xFFFF00AA);
SendClientMessage(i, TEAM_BLUE_COLOR, string);
}
}
}
SendClientMessage(playerid, TEAM_BLUE_COLOR, "Tapez /res pour arreter la demande de renfort.");
SetTimerEx("BackupClear", 180000, false, "ii", playerid, 1);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous avez déjà demandé du renfort!");
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'êtez pas un Policier / Agent du FBI!");
}
}
return 1;
}
tu met ce public la
public BackupClear(playerid, calledbytimer)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
{
if (PlayerInfo[playerid][pRequestingBackup] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[pMember] == 1||PlayerInfo[pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
{
SetPlayerMarkerForPlayer(i, playerid, TEAM_HIT_COLOR);
}
}
}
if (calledbytimer != 1)
{
SendClientMessage(playerid, TEAM_BLUE_COLOR, "Demande de renfort terminé.");
}
else
{
SendClientMessage(playerid, TEAM_BLUE_COLOR, "Votre demande de renfort a été annulé automatiquement.");
}
PlayerInfo[playerid][pRequestingBackup] = 0;
}
else
{
if (calledbytimer != 1)
{
SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas activé la demande de renfort!");
}
}
}
else
{
if (calledbytimer != 1)
{
SendClientMessage(playerid, COLOR_RED, "Vous n'êtes pas un Policier / Agent du FBI!");
}
}
}
return 1;
}
et tout en haut tu met ca
forward BackupClear(playerid, calledbytimer);
puis ca pour que le renfort soit fini
if(strcmp(cmd,"/renfortstop",true)==0 || strcmp(cmd,"/res",true)==0)
{
BackupClear(playerid, 0);
return 1;
}
-
merci beaucoup mais cet quelle ville que cet programmer ? ou ça peu être n'importe ou sur la carte ?
écuse moi la question trop béte mais on mais le public?
-
oui et pour te dire que le point sur la carte suis le gars qui a fait la cmd
-
tu met sa ou ?
tu met ce public la
public BackupClear(playerid, calledbytimer)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
{
if (PlayerInfo[playerid][pRequestingBackup] == 1)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[pMember] == 1||PlayerInfo[pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)
{
SetPlayerMarkerForPlayer(i, playerid, TEAM_HIT_COLOR);
}
}
}
if (calledbytimer != 1)
{
SendClientMessage(playerid, TEAM_BLUE_COLOR, "Demande de renfort terminé.");
}
else
{
SendClientMessage(playerid, TEAM_BLUE_COLOR, "Votre demande de renfort a été annulé automatiquement.");
}
PlayerInfo[playerid][pRequestingBackup] = 0;
}
else
{
if (calledbytimer != 1)
{
SendClientMessage(playerid, COLOR_RED, "Vous n'avez pas activé la demande de renfort!");
}
}
}
else
{
if (calledbytimer != 1)
{
SendClientMessage(playerid, COLOR_RED, "Vous n'êtes pas un Policier / Agent du FBI!");
}
}
}
return 1;
}
-
bah met le tout en de sous du Gf
-
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(9559) : error 017: undefined symbol "pRequestingBackup"
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(9563) : error 017: undefined symbol "pRequestingBackup"
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(9568) : error 033: array must be indexed (variable "PlayerInfo")
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(26587) : error 017: undefined symbol "pRequestingBackup"
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(26593) : error 033: array must be indexed (variable "PlayerInfo")
C:\Game\GTA-SanAndreas\gamemodes\1.0.pwn(26607) : error 017: undefined symbol "pRequestingBackup"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
6 Errors.
9559 if (PlayerInfo[playerid][pRequestingBackup] != 1)9563 PlayerInfo[playerid][pRequestingBackup] = 1;2657 if (PlayerInfo[playerid][pRequestingBackup] == 1)26593 if(PlayerInfo[pMember] == 1||PlayerInfo[pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2)26607 PlayerInfo[playerid][pRequestingBackup] = 0;
-
t as le God Father ??
-
oui
-
cherche cette ligne
enum pInfo
puis ajoute y
ca : pRequestingBackup,