Wie mache ich es das ich Spieler nach Waffen durchsuchen kann, also das sollen nur LSPD, FBI und Army können
FrakIDS sind LSPD: 1 FBI: 2 Army: 3
Spieler nach Waffen durchsuchen?
- MysteriX
- 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
-
-
Benutze GetPlayerWeaponData
-
Also du solltest erstmal die Grundkenntnisse vom Scripten kennen z.B die Abfrage in welche frak der spieler ist und dann kannst du das mit den Waffen durchsuchen auch schnell und einfach machen.
-
Ja die abfragen und so kann ich, aber ich weis nicht wie ich das scripten soll...
-
Du kannst es so machen:
new waffen[13][2];
new waffenname[64];
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(player, i, waffen[i][0], waffen[i][1]);
if(waffen[i][0] && waffen[i][1])
{
switch(waffen[i][0])
{
case 1:{waffenname = "Schlagring";}
...........
}
}
}
Was ist daran so schwer? -
Grundkenntnisse vom Scripten kennen z.B die Abfrage in welche frak der spieler ist
Genau!Das sind Grundkenntnisse, die man lernen muss, um PAWN ansatzweise zu beherrchen.
Noch ein Tipp:
Bevor Du die Einzelteile eines neuen Fahrzeug entwickelst, solltest Du es erstmal zusammenbauen.
-
z.B die Abfrage in welche frak der spieler ist
Das kann von Script zu Script anders sein. Kommt drauf an ob er ein enum benutz. Wenn ja heißt pInfo oder PlayerInfo oder wie auch immer. Also finde ich kann man nicht direkt aus den Grundkenntnissen herausfindenwie man Fraktionen abfragt. Und ich denke das man dazu eine if-Abfrage benutz ist allen klar.B2T: Wenn ich es in meinem Script machen sollte wäre es so.
ocmd:checkwaffen(playerid, params[])
{
if(pInfo[playerid][pFrak] == FRAK_COP || pInfo[playerid][pFrak] == FRAK_ARMY ...)
{
//Code
}
}
vielleicht hilft es dir ja weiter.Ps: Bitte korrigiert mich falls ich falsch liege.
-
Das kann von Script zu Script anders sein. Kommt drauf an ob er ein enum benutz. Wenn ja heißt pInfo oder PlayerInfo oder wie auch immer. Also finde ich kann man nicht direkt aus den Grundkenntnissen herausfindenwie man Fraktionen abfragt. Und ich denke das man dazu eine if-Abfrage benutz ist allen klar.B2T: Wenn ich es in meinem Script machen sollte wäre es so.
ocmd:checkwaffen(playerid, params[])
{
if(pInfo[playerid][pFrak] == FRAK_COP || pInfo[playerid][pFrak] == FRAK_ARMY ...)
{
//Code
}
}
vielleicht hilft es dir ja weiter.Ps: Bitte korrigiert mich falls ich falsch liege.
new waffe[13]
new ammox[13]
for(new y = 0;y<13;y++){
if(y == 1)
{
GetPlayerWeaponData(targetid,y,waffe1,ammox1);
}else if(y == 2)
{
GetPlayerWeaponData(targetid,y,waffe2,ammox2);
}else if(y == 3)
{
GetPlayerWeaponData(targetid,y,waffe3,ammox3);
}else if(y == 4)
{
GetPlayerWeaponData(targetid,y,waffe4,ammox4);
}else if(y == 5)
{
GetPlayerWeaponData(targetid,y,waffe5,ammox5);
}else if(y == 6)
{
GetPlayerWeaponData(targetid,y,waffe6,ammox6);
}else if(y == 7)
{
GetPlayerWeaponData(targetid,y,waffe7,ammox7);
}else if(y == 8)
{
GetPlayerWeaponData(targetid,y,waffe8,ammox8);
}else if(y == 9)
{
GetPlayerWeaponData(targetid,y,waffe9,ammox9);
}else if(y == 10)
{
GetPlayerWeaponData(targetid,y,waffe10,ammox10);
}else if(y == 11)
{
GetPlayerWeaponData(targetid,y,waffe11,ammox11);
}else if(y == 12)
{
GetPlayerWeaponData(targetid,y,waffe12,ammox12);
}else if(y == 13)
{
GetPlayerWeaponData(targetid,y,waffe13,ammox13);
}
}
new text[256];
format(text, sizeof(text),"------ INVENTAR VON %s ------", targetname);
SendClientMessage(playerid,COLOR_RED,text);
if(waffe1 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe1], ammox1);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe2 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe2], ammox2);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe3 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe3], ammox3);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe4 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe4], ammox4);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe5 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe5], ammox5);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe6 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe6], ammox6);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe7 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe7], ammox7);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe8 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe8], ammox8);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe9 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe9], ammox9);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe10 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe10], ammox10);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe11 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe11], ammox11);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe12 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe12], ammox12);
SendClientMessage(playerid,COLOR_RED,text);
}
if(waffe13 != 0)
{
format(text, sizeof(text),"--- Waffe: %s Munition: %i", waffen[waffe13], ammox13);
SendClientMessage(playerid,COLOR_RED,text);
}
format(text, sizeof(text),"------ INVENTAR VON %s ------", targetname);
SendClientMessage(playerid,COLOR_RED,text);Soll ich das dann bei Code eintragen?
-
weil bei mir ist die abfrage if(isPlayerInFrakt(playerid,3[frakid]))
-
Wenn das die Abfragen sind die du brauchst ja. Aber du musst den befehl auf dein Script anpassen mit der Fraktionsabfrage.
-
weil bei mir ist die abfrage if(isPlayerInFrakt(playerid,3[frakid]))
Man merkt mal wieder, dass Du ein planloser Anfänger bist.Du kannst die Funktion auch leckMichBitteNicht() nennen.
Das ist doch völlig unrelevant und jeder nennt diese anders.Ohne Worte...
-
xD wen du meinst das ich anfänger bin dann mein das bra
is mir klar das man die nennen kann wie mann will ich wollte es dem hier nur ma zeigen !Zitat von »Savas«
weil bei mir ist die abfragePAWN Quelltext
1
if(isPlayerInFrakt(playerid,3[frakid]))
Man merkt mal wieder, dass Du ein planloser Anfänger bist.
Du kannst die Funktion auch leckMichBitteNicht() nennen.
Das ist doch völlig unrelevant und jeder nennt diese anders.Ohne Worte...
-
if(strcmp(cmd,"/friskw",true)==0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /friskw [playerid/PartOfName]");
return 1;
}
if(!IsACop(playerid))
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keine anderen Leute durchsuchen!");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber durchsuchen/You can not search yourself yourself!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new text1[20], text2[20], text3[20], text4[20], text5[20];
if(PlayerInfo[giveplayerid][pGun1] > 0) { text1 = "| Waffen."; } else { text1 = "| -"; }
if(PlayerInfo[giveplayerid][pGun2] > 0) { text2 = "| Waffen."; } else { text2 = "| -"; }
if(PlayerInfo[giveplayerid][pGun3] > 0) { text4 = "| Waffen."; } else { text3 = "| -"; }
if(PlayerInfo[giveplayerid][pGun4] > 0) { text5 = "| Waffen."; } else { text4 = "| -"; }
format(string, sizeof(string), "|__________ Waffen von %s __________|", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "%s.", text1);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "%s.", text2);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "%s.", text3);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "%s.", text4);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "* %s hat %s nach Waffen durchsucht.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht in deiner Nähe!");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist Offline !");
return 1;
}
}
return 1;
}Hab das so, geht aber nicht es zeigt mir keine Waffen an...
-
Es wird ja auch nirgends der Waffenname eingesetzt...
-
Und wie mache ich das, könnte mir das jemand bearbeiten?
-
Du kannst es so machen:
new waffen[13][2];
new waffenname[64];
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(player, i, waffen[i][0], waffen[i][1]);
if(waffen[i][0] && waffen[i][1])
{
switch(waffen[i][0])
{
case 1:{waffenname = "Schlagring";}
...........
}
}
}
Was ist daran so schwer?
Hier ist ein Beispiel.... -
Blicke das i-wie ned so ganz, kann mir das ned schnell jemand scripten?
-
case 1:{waffenname = "Schlagring";}
case 2:{waffenname = "Golfschläger";}
case 3:{waffenname = "Schlagstock";}
case 4:{waffenname = "Messer";}
case 5:{waffenname = "Basketballschläger";}
case 6:{waffenname = "Schaufel";}
case 7:{waffenname = "Billardkö";}
case 8:{waffenname = "Katana";}
case 9:{waffenname = "Kettensäge";}
case 10:{waffenname = "Dildo/Vibrator";}
case 11:{waffenname = "Dildo/Vibrator";}
case 12:{waffenname = "Dildo/Vibrator";}
case 13:{waffenname = "Dildo/Vibrator";}
case 14:{waffenname = "Blumen";}
case 15:{waffenname = "Eisenstange";}
case 16:{waffenname = "Granate";}
case 17:{waffenname = "Tränengaß";}
case 18:{waffenname = "Molotov";}
case 22:{waffenname = "Pistole";}
case 23:{waffenname = "Schallgedämpfte Pistole";}
case 24:{waffenname = "Desert Eagle";}
case 25:{waffenname = "Schrotflinte";}
case 26:{waffenname = "Abgesägte Schrotflinte";}
case 27:{waffenname = "Moderne Schrotflinte";}
case 28:{waffenname = "Mirco SMG (Mac10)";}
case 29:{waffenname = "SMG (MP5)";}
case 30:{waffenname = "AK47";}
case 31:{waffenname = "M4";}
case 32:{waffenname = "Tec9";}
case 33:{waffenname = "Gewehr";}
case 34:{waffenname = "Sniper-Gewehr";}
case 35:{waffenname = "Raketenwerfer";}
case 37:{waffenname = "Flammenwerfer";}
case 38:{waffenname = "Minigun";}
case 41:{waffenname = "Sprühdose";}
Hier sind alle Waffen.
Verstehst du es jetzt? -
Okay aber wo soll ich das ganze eintragen, kannste mir das nicht gleich als ganzen befehl machen?
-
if(strcmp(cmd,"/friskw",true)==0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /friskw [playerid/PartOfName]");
return 1;
}
if(!IsACop(playerid))
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst keine anderen Leute durchsuchen!");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber durchsuchen/You can not search yourself yourself!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "|__________ Waffen von %s __________|", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
new waffen[13][2];
new string[128];
new waffenname[64];
new hatwaffe;
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(giveplayerid, i, waffen[i][0], waffen[i][1]);
if(waffen[i][0] && waffen[i][1])
{
hatwaffe = 1;
switch(waffen[i][0])
{
case 1:{waffenname = "Schlagring";}
case 2:{waffenname = "Golfschläger";}
case 3:{waffenname = "Schlagstock";}
case 4:{waffenname = "Messer";}
case 5:{waffenname = "Basketballschläger";}
case 6:{waffenname = "Schaufel";}
case 7:{waffenname = "Billardkö";}
case 8:{waffenname = "Katana";}
case 9:{waffenname = "Kettensäge";}
case 10:{waffenname = "Dildo/Vibrator";}
case 11:{waffenname = "Dildo/Vibrator";}
case 12:{waffenname = "Dildo/Vibrator";}
case 13:{waffenname = "Dildo/Vibrator";}
case 14:{waffenname = "Blumen";}
case 15:{waffenname = "Eisenstange";}
case 16:{waffenname = "Granate";}
case 17:{waffenname = "Tränengaß";}
case 18:{waffenname = "Molotov";}
case 22:{waffenname = "Pistole";}
case 23:{waffenname = "Schallgedämpfte Pistole";}
case 24:{waffenname = "Desert Eagle";}
case 25:{waffenname = "Schrotflinte";}
case 26:{waffenname = "Abgesägte Schrotflinte";}
case 27:{waffenname = "Moderne Schrotflinte";}
case 28:{waffenname = "Mirco SMG (Mac10)";}
case 29:{waffenname = "SMG (MP5)";}
case 30:{waffenname = "AK47";}
case 31:{waffenname = "M4";}
case 32:{waffenname = "Tec9";}
case 33:{waffenname = "Gewehr";}
case 34:{waffenname = "Sniper-Gewehr";}
case 35:{waffenname = "Raketenwerfer";}
case 37:{waffenname = "Flammenwerfer";}
case 38:{waffenname = "Minigun";}
case 41:{waffenname = "Sprühdose";}
}
format(string, sizeof(string), "Waffe: %s | Munition: %d", waffenname, waffen[i][1]);
SendClientMessage(playerid, FARBE, stringw);
}
}
if(!hatwaffe)
{
SendClientMessage(playerid, FARBE, "Der Spieler hat keine Waffen.");
}}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht in deiner Nähe!");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist Offline !");
return 1;
}
}
return 1;
}//edit: der code ist ja 1a eingerückt nach dem posten...
-