Also, ich hab ein kleines Problem, das Wantedsystem funktioniert an sich ziemlich gut, aber
ich komme nicht mit den 3D Texten zurecht. Es wird zwar ein 3D Text erstellt, aber dieser bleibt immer auf 1.
Also auch wenn der Spieler 2 Wanteds hat, gibt der 3D Text 1 Wanted aus.
Hier mal der Befehl zum vergeben der Wanteds:
COMMAND:wan(playerid,params[])
{
new pID, text[200];
if(sscanf(params, "us",pID,text))return SendClientMessage(playerid,0xC8C8C8FF,"/wan(ted) [ID/Name] [Grund]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler ist nicht online!");
if(pID == playerid)return SendClientMessage(playerid,0xC8C8C8FF,"Du kannst dir nicht selber Wanteds geben!");
if(pInfo[playerid][Fraktion] != 4 && pInfo[playerid][Fraktion] != 9)return SendClientMessage(playerid,0xC8C8C8FF,"Du bist kein Cop/FBI!");
if(GetPVarInt(playerid, "dienst") == 0) return SendClientMessage(playerid,0xC8C8C8FF,"Du bist nicht im Dienst!");
else
{
new str[200] ,str2[200],str3[128],str4[128];
new Wantedsterne=GetPlayerWantedLevel(pID);
SetPlayerWantedLevel(pID,Wantedsterne+1);
pInfo[pID][Wanteds]++;
format(str,sizeof(str),"%s hat dir ein Wanted gegeben [ Grund: %s ]",SpielerName[playerid],text);
format(str2,sizeof(str2),"Du hast %s ein Wanted gegeben [ Grund: %s ]",SpielerName[pID] ,text);
format(str3,sizeof(str3),"Aktuelles Wantedlevel: %i",pInfo[pID][Wanteds]);
format(str4,sizeof(str4),"Wantedlevel : %i",pInfo[pID][Wanteds]);
SendClientMessage(pID,0xFF6347AA, str);
SendClientMessage(playerid,0xFFE600FF,str2);
SendClientMessage(pID,0xFFFA00FF,str3);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
if(pInfo[playerid][Fraktion] == 4 || pInfo[playerid][Fraktion] == 9)
{
WantedLabel[pID] = Create3DTextLabel(str4,0xFFE600FF,30.0,40.0,50.0,40.0,0);
}
}
Attach3DTextLabelToPlayer(WantedLabel[pID], pID, 0.0, 0.0, 0.7);
}
return 1;
}
Und OnPlayerDeath
if(pInfo[killerid][Fraktion] != 4 && pInfo[killerid][Fraktion] != 9)
{
new str3[128],str4[128],
Wantedsterne = GetPlayerWantedLevel(killerid);
SetPlayerWantedLevel(killerid,Wantedsterne+1);
pInfo[killerid][Wanteds]++;
format(str3,sizeof(str3),"Aktuelles Wantedlevel: %i",pInfo[killerid][Wanteds]);
format(str4,sizeof(str4),"Wantedlevel : %i",pInfo[killerid][Wanteds]);
SendClientMessage(killerid,0xFFFA00FF,str3);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i) && pInfo[playerid][Fraktion] == 4 || pInfo[playerid][Fraktion] == 9)
{
WantedLabel[killerid] = Create3DTextLabel(str4,0xFFE600FF,30.0,40.0,50.0,40.0,0);
}
}
}
Attach3DTextLabelToPlayer(WantedLabel[killerid], killerid, 0.0, 0.0, 0.7);
return 1;
}
Ich hab versucht, den Text updaten zu lassen, aber dies funktionierte nicht, da kam ein type mismatch error.
Update3DTextLabelText(WantedLabel,0xFFE600FF,str4);
Also str4 gibt das aktuelle Wantedlevel aus, was auch an sich funktioniert, ist ja das selbe Prinzip wie bei str3.
Und diese Zahl aus dem String soll dann als Text ausgegeben werden. Das geht eben nicht.
Und die 3D Texte sollten eig. nur für Fraktion 4 u. 9 erstellt werden, das geht aber leider nicht, der 3D Text erscheint für alle.
Hoffe, mir kann jmd. helfen.
mfG
Walker
//Muss ich evtl. i als Cop definieren, also if([i][Fraktion] == 4)
Aber wie bekomm ich dann noch das Problem mit den falschen Wantedangaben hin?