extra nur für dich http://wiki.sa-mp.com/wiki/GetPlayerWeaponData
waffen abfragen
- apoolecu
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
cool den command kannte ich gar nicht ;D muss ich jetzt noch für die ids namen definieren?
-
nein nicht unbedingt, da der Waffenslot abfragt wird kannst du auch einfach abfragen ob es z.B die ID von der Dessert Eagle hat etc.
-
wie müsste den der befehl aussehen, also ich meine damit, wie müste sandclientmessage aussehen?
-
new weapons[13][2],string[80];
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 30) //AK 47
{
format(string,sizeof(string),"Deine Waffe: AK-47(ID 30) hat %d Schuss",weapons[i][1]);
SendClientMessage(playerid,0xFFFFFFAA,string);
}
}soo dürfte es ausspucken wie viel Ammu die AK hat
-
ok danke,
aber wie kann ich es machen, das man am ein sendclientmessage hat wo dann so die waffen stehen:
ZitatDu besitzt folgende Waffen: Waffe1 mit %s Schuss, Waffe2 mit %s Schuss
das mit dem schuss hast du mir ja gezeigt, ich wollte das nur so erstellen, das man nur ein sendclientmessage bekommt.
-
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 30) //AK 47
{
format(string,sizeof(string),"Slot %d Schuss : %d",weapons[i][0],weapons[i][1]);
SendClientMessage(playerid,0xFFFFFFAA,string);
}
}Die Nachricht wird 12 geschickt, da es 12 Slots gibt
-
oh gott^^
sorry aber da muss ich nochmal nachfragen wie muss ich denn die slots dann erstellen?
-
gar nicht die sind schon vom spiel aus vorgegeben. Wir haben ja die Anzahl der Slots definiert mit new Weapons[bla][bla]; die Abfrage erfolgt jetzt so das jeder der vorgebenen Slots(in diesem Fall sind es alle 12 Waffen Slots) abgefragt wird wie viel Ammu derzeit zur verfügung steht. Es wird an den Spieler eine Nachricht geschickt das z.B. der 3 Waffen Slots 500 Ammu zur verfügung hat
-
ah^^
aber das ist jetzt nur für eine waffe oder? weil du ja ja nur id 30 also die ak abfragst^^
wie muss ich das jetzt machen wenn ich alle waffen abfragen möchte? -
-
oh sorry war n fail von mir
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
format(string,sizeof(string),"Slot %d Schuss : %d",weapons[i][0],weapons[i][1]);
SendClientMessage(playerid,0xFFFFFFAA,string);
}so das fragt er alle slots ab und dann kannst du noch abfragen welche Waffen ID es ist und dann kannst ja noch den Waffen namen ausgeben lassen
-
so vergibt er den waffen nur id oder?
kannst du mir noch ein beispiel machen wie ich den waffen namen definiere?^^
-
habe ich doch oben wo die Ammu der AK ausgegeben habe die Waffen ID ist 30 in diesem Fall
-
ah ok danke^^
wird SLOT jetzt mit der waffe ausgewechselt?
//EDIT: aber du gibst doch hier nur die id wieder ein Name wird nicht defieniert...
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 30) //AK 47
{ -
Wie meinst du das mit ausgewechselt?
-
naja ich möchte das am ende der polizist zB waffen id des spielers eingibt, und dann soll das so da stehen: Spieler %s waffen: waffe1 zb ak munition zb 99, waffe2 zB deagle, munition zB 100 usw
-
dann mach eine abfrage ob der spieler Polizist ist wenn ja, welcher Spieler ist dem Polizisten am nächsten. Dann kommt die Abfrage von oben und die kannst du ergänzen mit der Waffen Modell abfrage
-
also ich hab das jetzt so gemacht:
ocmd:getgun(playerid, params[])
{
new pID, string[164], weapons[13][2];
if(isPlayerInFrakt(playerid,1)||isPlayerInFrakt(playerid,2)||isPlayerInFrakt(playerid,3)) //1408
if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_BLAU,"Benutze: /getgun [Spieler/ID]");
{
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 1) //schlagring
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 2) //golfschläger
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 3) //schlagstock
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 4) //messer
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 5) //baseballschläger
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 6) //schaufel
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 8) //katana
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 9) //kettensäge
{
GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]);
if(GetPlayerWeapon(playerid) == 16) //granate
{GetPlayerWeaponData(pID, i, weapons[i][0], weapons[i][1]);
format(string,sizeof(string),"Waffen von %s: SLOT %d|Munition:%d Schuss",SpielerName(pID),weapons[i][0],weapons[i][1]);
SendClientMessage(playerid,0xFFFFFFAA,string);
}
return 1;
}habe aber 12 errors:
ZitatC:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(466) : error 004: function "UpdateDate" is not implemented
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(480) : error 004: function "UpdateTime" is not implemented
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1376) : error 017: undefined symbol "SpielerSpeichern"
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1408) : error 017: undefined symbol "isPlayerInFrakt"
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1409) : error 017: undefined symbol "sscanf"
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1409) : error 079: inconsistent return types (array & non-array)
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1443) : error 017: undefined symbol "SpielerName"
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1446) : error 079: inconsistent return types (array & non-array)
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1450) : error 029: invalid expression, assumed zero
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1450) : error 017: undefined symbol "ocmd_test"
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1450) : error 029: invalid expression, assumed zero
C:\Users\Marco\Desktop\Marcos Server\gamemodes\MarcosServerTM.pwn(1450) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase12 Errors.
also die errors sind nur dann da wenn ich den befehl drin habe, und die sachen sind alle defieniert...
-
du hast es falsch gemacht GetPlayerWeaponData; musst du am anfang nur 1x ausführen bei GetPlayerWeapon darfst du nicht die Slots verwenden du musst die Waffen IDs benutzen und die findest du hier http://wiki.sa-mp.com/wiki/Weapons den Fehler hast du weil du nicht genügen } klammern hast
ocmd:getgun(playerid, params[])
{
new pID, string[164], weapons[13][2];
if(isPlayerInFrakt(playerid,1)||isPlayerInFrakt(playerid,2)||isPlayerInFrakt(playerid,3)) //1408
if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_BLAU,"Benutze: /getgun [Spieler/ID]");
{
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(pID, i, weapons[i][0], weapons[i][1]);
format(string,sizeof(string),"Waffen von %s: SLOT %d|Munition:%d Schuss",SpielerName(pID),weapons[i][0],weapons[i][1]);
SendClientMessage(playerid,0xFFFFFFAA,string);
}
}
return 1;die Frage ist nur wie du herraus findest welch waffe der User in seinem ,,inventar" noch hat :S weil GetPlayerWeapon funktioniert ja nur auf die derzeite sichtbare waffe
} -
Ich hab zwar bisher kaum ein Wort von dem Verstanden was hier abgeht, aber ich versteh diesen Satz nicht so ganz
Zitatdie Frage ist nur wie du herraus findest welch waffe der User in seinem ,,inventar" noch hat weil GetPlayerWeapon funktioniert ja nur auf die derzeite sichtbare waffe
Willst jetzt wissen wie man heraus bekommt wie die waffen heißen oder was?