Hi Leute, ich habe folgendes Problem:
ich habe den Befehl /checkweapons erstellt. Dieser soll die Waffen eines Spielers in einem Dialog anzeigen.
if(strcmp(cmd,"/checkweapons",true)==0)
{
if(IsPlayerInFrakt(playerid,1)||IsPlayerInFrakt(playerid,6)||IsPlayerAnAdmin(playerid,3))
{
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid,COLOR_WHITE,"INFO: /checkweapons [id]");
new playa = ReturnUser(tmp);
new string[1024];
new weapon[512];
GetWeaponName(GetPlayerWeapon(playa),weapon,sizeof(weapon));
format(string,sizeof(string),"%s hat folgende Waffen:\n%s Munition: %d",SpielerName(playerid),weapon,GetPlayerAmmo(playa));
ShowPlayerDialog(playerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Checkweapons",string,"OK","Schließen");
return 1;
}
return 1;
}
Leider wird immer nur die Waffe angezeigt, die der Spieler gerade gewählt hat. Wie kann man es machen, das alle Waffen aufgelistet werden??
Danke im Vorraus MrMonat
[Hilfe] Spieler Waffen anzeigen
- mrmonat
- Geschlossen
- Erledigt
-
-
Gewöhn dir den dummen [Hilfe]-Präfix ab, alle die hier posten wollen hilfe...
Es gibt so ne Funktion, die listet innem 13er Array alle Waffen auf...
Durchsuch ma die Befehle von Pawno oder die englische Wiki... -
Das ist die Funktion:
new weapons[13][2];
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
}
Ich glaub den Rest bekommste selber hin. -
So sollte das funktionieren, habs ein wenig umgescripted.... :P:
if(strcmp(cmd,"/checkweapons",true)==0)
{
if(IsPlayerInFrakt(playerid,1)||IsPlayerInFrakt(playerid,6)||IsPlayerAnAdmin(playerid,3))
{
tmp = strtok(cmdtext, idx);
if(!tmp[0])return SendClientMessage(playerid,COLOR_WHITE,"INFO: /checkweapons [id]");
new playa = ReturnUser(tmp);
new string[1024];
new weapon[512];
new weapon1[512];
new weapon2[512];
new weapon3[512];
new weapon4[512];
new weapon5[512];
new weapon6[512];
new weapon7[512];
new weapon8[512];
new weapon9[512];
new weapon10[512];
new weapon11[512];
new weapon12[512];
new waffe1, waffe2, waffe3, waffe4, waffe5, waffe6, waffe7, waffe8, waffe9, waffe10, waffe11, waffe12, waffe13;
new ammo1, ammo2, ammo3, ammo4, ammo5, ammo6, ammo7, ammo8, ammo9, ammo10, ammo11, ammo12, ammo13;
GetPlayerWeaponData(playa, 0, waffe1,ammo1);
GetPlayerWeaponData(playa, 1, waffe2,ammo2);
GetPlayerWeaponData(playa, 2, waffe3,ammo3);
GetPlayerWeaponData(playa, 3, waffe4,ammo4);
GetPlayerWeaponData(playa, 4, waffe5,ammo5);
GetPlayerWeaponData(playa, 5, waffe6,ammo6);
GetPlayerWeaponData(playa, 6, waffe7,ammo7);
GetPlayerWeaponData(playa, 7, waffe8,ammo8);
GetPlayerWeaponData(playa, 8, waffe9,ammo9);
GetPlayerWeaponData(playa, 9, waffe10,ammo10);
GetPlayerWeaponData(playa, 10, waffe11,ammo11);
GetPlayerWeaponData(playa, 11, waffe12,ammo12);
GetPlayerWeaponData(playa, 12, waffe13,ammo13);
GetWeaponName(waffe,weapon,sizeof(weapon));
GetWeaponName(waffe1,weapon1,sizeof(weapon1));
GetWeaponName(waffe2,weapon2,sizeof(weapon2));
GetWeaponName(waffe3,weapon3,sizeof(weapon3));
GetWeaponName(waffe4,weapon4,sizeof(weapon4));
GetWeaponName(waffe5,weapon5,sizeof(weapon5));
GetWeaponName(waffe6,weapon6,sizeof(weapon6));
GetWeaponName(waffe7,weapon7,sizeof(weapon7));
GetWeaponName(waffe8,weapon8,sizeof(weapon8));
GetWeaponName(waffe9,weapon9,sizeof(weapon9));
GetWeaponName(waffe10,weapon10,sizeof(weapon10));
GetWeaponName(waffe11,weapon11,sizeof(weapon11));
GetWeaponName(waffe12,weapon12,sizeof(weapon12));
format(string,sizeof(string),"%s hat folgende Waffen:\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d"
,SpielerName(playa),weapon,ammo1,weapon1,ammo2,weapon2,ammo3,weapon3,ammo4,weapon4,ammo5,weapon5,ammo6,weapon6,ammo7,weapon7,ammo8,weapon8,ammo9,weapon9,ammo10,weapon10,ammo11,weapon11,ammo12,weapon12,ammo13);
ShowPlayerDialog(playerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Checkweapons",string,"OK","Schließen");
return 1;
}
return 1;
}Viel Spaß damit!
Wenn noch Fragen gibt, melde dich.
-
Ist doch viel zu umständlich, mit nem Array und einer For-Schleife ist das viel schneller erledigt.
-
Jo, da haste recht.
Aber bevor ich ihm da so einen unverständlichen Code reindrücke, mach ich's für ihn einfach und verständlich.
Es bringt ihm ja am Anfang nichts, mit so schleifen rumzuexperimentieren, wenn er das Andere noch nicht kann.Wenn ers auf jeden Fall anders will, kann ichs gerne nochmal neu posten.
-
ich habs jetzt mal so eingefügt wie von ilex aber wenn ich jetzt /checkweapons mache kommt erst: INFO: /checkweapons [id]..
WEnn ich /checkweapons beliebige id mache steht da Server Unknown Command, was sehr unlogisch ist, weil normalerweise kommt: Befehl nicht erkannt. nutze /help wenn man einen Befehl falsch eingibt. So. Wenn ich aber /checkweapons eigebe, gehen alle anderen Befehle NICHT mehr. Keiner! muss dann immer über RCON gmx machen...
Wie kann man das ändern?MFG
-
Ich fand deine tmp Abfrage auch ziemlich komisch, aber dachte du hättest die überall so und das würde funktionieren.
Anscheinend nicht, also versuchs so:
if(strcmp(cmd,"/checkweapons",true)==0)
{
if(IsPlayerInFrakt(playerid,1)||IsPlayerInFrakt(playerid,6)||IsPlayerAnAdmin(playerid,3))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_WHITE,"INFO: /checkweapons [id]");
return 1;
}
new playa = ReturnUser(tmp);
new string[1024];
new weapon[512];
new weapon1[512];
new weapon2[512];
new weapon3[512];
new weapon4[512];
new weapon5[512];
new weapon6[512];
new weapon7[512];
new weapon8[512];
new weapon9[512];
new weapon10[512];
new weapon11[512];
new weapon12[512];
new waffe1, waffe2, waffe3, waffe4, waffe5, waffe6, waffe7, waffe8, waffe9, waffe10, waffe11, waffe12, waffe13;
new ammo1, ammo2, ammo3, ammo4, ammo5, ammo6, ammo7, ammo8, ammo9, ammo10, ammo11, ammo12, ammo13;
GetPlayerWeaponData(playa, 0, waffe1,ammo1);
GetPlayerWeaponData(playa, 1, waffe2,ammo2);
GetPlayerWeaponData(playa, 2, waffe3,ammo3);
GetPlayerWeaponData(playa, 3, waffe4,ammo4);
GetPlayerWeaponData(playa, 4, waffe5,ammo5);
GetPlayerWeaponData(playa, 5, waffe6,ammo6);
GetPlayerWeaponData(playa, 6, waffe7,ammo7);
GetPlayerWeaponData(playa, 7, waffe8,ammo8);
GetPlayerWeaponData(playa, 8, waffe9,ammo9);
GetPlayerWeaponData(playa, 9, waffe10,ammo10);
GetPlayerWeaponData(playa, 10, waffe11,ammo11);
GetPlayerWeaponData(playa, 11, waffe12,ammo12);
GetPlayerWeaponData(playa, 12, waffe13,ammo13);
GetWeaponName(waffe,weapon,sizeof(weapon));
GetWeaponName(waffe1,weapon1,sizeof(weapon1));
GetWeaponName(waffe2,weapon2,sizeof(weapon2));
GetWeaponName(waffe3,weapon3,sizeof(weapon3));
GetWeaponName(waffe4,weapon4,sizeof(weapon4));
GetWeaponName(waffe5,weapon5,sizeof(weapon5));
GetWeaponName(waffe6,weapon6,sizeof(weapon6));
GetWeaponName(waffe7,weapon7,sizeof(weapon7));
GetWeaponName(waffe8,weapon8,sizeof(weapon8));
GetWeaponName(waffe9,weapon9,sizeof(weapon9));
GetWeaponName(waffe10,weapon10,sizeof(weapon10));
GetWeaponName(waffe11,weapon11,sizeof(weapon11));
GetWeaponName(waffe12,weapon12,sizeof(weapon12));
format(string,sizeof(string),"%s hat folgende Waffen:\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d\n%s Munition: %d"
,SpielerName(playa),weapon,ammo1,weapon1,ammo2,weapon2,ammo3,weapon3,ammo4,weapon4,ammo5,weapon5,ammo6,weapon6,ammo7,weapon7,ammo8,weapon8,ammo9,weapon9,ammo10,weapon10,ammo11,weapon11,ammo12,weapon12,ammo13);
ShowPlayerDialog(playerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"Checkweapons",string,"OK","Schließen");
return 1;
}
return 1;
} -
immernoch das gleiche
-
Bekommst du beim compilen irgendwelche warnings oder Errors?
-
-
Nein
-
breadfish.de
Hat das Thema geschlossen.