Hallo, ich habe soeben ein Contract-System erstellt, aber es funktioniert nicht alles nach Plan! Errors habe ich zwar keine, aber trotzdem funktioniert es nicht...
Hier das System:
GANZ OBEN im Script
enum Hitman
{
pContract
};
new hsystem[Hitman];
#define SCM SendClientMessage
BEI OnGameModeInit
addFraktion(15, "ICA", weiss);
GANZ OBEN von OnPlayerCommandText
dcmd(kopfgeld, 8, cmdtext);
NACH OnPlayerCommandText
dcmd_kopfgeld(playerid, params[])
{
new pid, betrag, nachricht1[170], nachricht2[170];
new zn[MAX_PLAYER_NAME];
if(IsPlayerInRangeOfPoint(playerid,3.0,1857.3275,-1905.0031,15.0328))
{
if(sscanf(params,"ud",pid,betrag))
{
return SCM(playerid,hellrot,"Benutze: /kopfgeld <Spieler-ID> <Betrag>");
}
if(betrag <= 0)
{
return SCM(playerid,mefarbe," * Dein Verstand sagt dir: Der Betrag muss im Plus liegen");
}
else
{
GivePlayerMoney(playerid, -betrag);
format(nachricht1,sizeof(nachricht1),"** <<Du hast einen Kopfgeldbetrag in höhe von $%d auf %s gesetzt!>>",betrag,GetPlayerName(pid,zn,sizeof(zn)));
SendClientMessage(playerid,gelb,nachricht1);
hsystem[pContract] = betrag;
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(getFraktion(i)==15)
{
format(nachricht2,sizeof(nachricht2), "Agentur: Ein neuer Auftrag ist verfügbar! Ziel: %s | Betrag $%d",GetPlayerName(pid,zn,sizeof(zn)),betrag);
SCM(i,gelb,nachricht2);
}
}
}
return 1;
}
IN OnPlayerDeath
if(getFraktion(killerid)==15)
{
if(hsystem[pContract] > 0)
{
GivePlayerMoney(killerid,hsystem[pContract]);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(getFraktion(i)==15)
{
new nachricht3[170];
new kn[MAX_PLAYER_NAME];
new dn[MAX_PLAYER_NAME];
format(nachricht3,sizeof(nachricht3), "Agentur: Hitman %s hat %s getötet & $%d erhalten",GetPlayerName(killerid,kn,sizeof(kn)),GetPlayerName(playerid,dn,sizeof(dn)),hsystem[pContract]);
SendClientMessage(killerid,gelb,nachricht3);
}
}
hsystem[pContract] = 0;
}
return 1;
}
Und jetzt kommt das, was nicht funktioniert:
format(nachricht1,sizeof(nachricht1),"** <<Du hast einen Kopfgeldbetrag in höhe von $%d auf %s gesetzt!>>",betrag,GetPlayerName(pid,zn,sizeof(zn)));
SendClientMessage(playerid,gelb,nachricht1);
Hier bekommt der Spieler fogende Nachricht:
"** <<Du hast einen Kopfgeldbetrag in höhe von $(z.B.)1000 auf 1 gesetzt!>>" ---> Kein Name, sondern "1"
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(getFraktion(i)==15)
{
format(nachricht2,sizeof(nachricht2), "Agentur: Ein neuer Auftrag ist verfügbar! Ziel: %s | Betrag $%d",GetPlayerName(pid,zn,sizeof(zn)),betrag);
SCM(i,gelb,nachricht2);
}
}
Die Nachricht kommt einfach nicht an.
if(getFraktion(killerid)==15)
{
if(hsystem[pContract] > 0)
{
GivePlayerMoney(killerid,hsystem[pContract]);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(getFraktion(i)==15)
{
new nachricht3[170];
new kn[MAX_PLAYER_NAME];
new dn[MAX_PLAYER_NAME];
format(nachricht3,sizeof(nachricht3), "Agentur: Hitman %s hat %s getötet & $%d erhalten",GetPlayerName(killerid,kn,sizeof(kn)),GetPlayerName(playerid,dn,sizeof(dn)),hsystem[pContract]);
SendClientMessage(killerid,gelb,nachricht3);
}
}
hsystem[pContract] = 0;
}
return 1;
}
Hier kommt ebenfalls die Nachricht nicht an & der Hitman bekommt kein Geld
Ich benutze für die Fraktionen das include "pFraktion" & für die Commands "dcmd"
Ich bitte um Hilfe,
mit freundlichen Grüßen MisterDubstep