CMD:checkhack(playerid, params[])
{
new pID, menge, string[32];
if(Spieler[playerid][pAdmin] == 0)return SendClientMessage(playerid, COLOR_GREY, ERROR_ADMIN);
if(sscanf(params, "u", pID))return SendClientMessage(playerid, COLOR_GREY, "Benutze /checkhack [SpielerID/Name]");
if(!IsLoggedIn(pID))return 1;
new vehicleid = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, vehicleid, 0);
SetPlayerPos(pID, 1024.8694,-1024.0836,32.1016);
format(string, sizeof(string), "Spieler Geld: $%i.", GetPlayerMoney(pID));
SendClientMessage(playerid, COLOR_GREY, string);
if(GetPlayerMoney(playerid) > GetMoney(playerid))
{
SendClientMessage(playerid, COLOR_GREY,"Du hast verbotene Modifikationen installiert!");
KickEx(pID);
return 1;
}
return 1;
}
Hab es jetzt so geht allerdings noch immer nicht.
Bitte um hilfe.
@Jeffry
Beiträge von RastaZopf.
-
-
Hier
Kostet allerdings 23€ odersowas. -
Ich weiß zwar nicht genau was du damit bezwecken willst, aber am einfachsten ist es, wenn du vorher das aktuelle Geld speicherst und nach dem Resetten das 'neue' Geld mit dem alten Geld abgleichst.
Ich will das mit dem S0beit Detecten versuchen bekomme das nicht so wirklich hin hab schon versucht
CMD:checkhack(playerid, params[])
{
new pID, menge, string[32];
if(Spieler[playerid][pAdmin] == 0)return SendClientMessage(playerid, COLOR_GREY, ERROR_ADMIN);
if(sscanf(params, "u", pID))return SendClientMessage(playerid, COLOR_GREY, "Benutze /checkhack [SpielerID/Name]");
if(!IsLoggedIn(pID))return 1;
new vehicleid = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, vehicleid, 0);
SetPlayerPos(pID, 1024.8694,-1024.0836,32.1016);
format(string, sizeof(string), "Spieler Geld: $%i.", GetPlayerMoney(pID));
SendClientMessage(playerid, COLOR_GREY, string);
if(GetMoney(playerid) < menge)return SendClientMessage(playerid, COLOR_GREY, ERROR_MONEY);
return 1;
}
Weiß nicht wie ich das machen soll.. -
Schliesse mich der frage an suche was für anti armor
new Float:antihp, Float:antiarm;
GetPlayerHealth(playerid, antihp);
GetPlayerArmour(playerid, antiarm);
if(antihp > 125.0 && pSetHP[playerid] == 0)
{
if(Spieler[playerid][pAdmin] < 2)
{
format(string, sizeof(string), "%s wurde vom Server gekickt, Grund: Healhack", GetName(playerid));
SendClientMessageToAll(COLOR_RED, string);
KickEx(playerid);
}
}
if(antiarm > 0 && !(Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pAdmin] > 0))
{
if(pIsPB[playerid] == -1){
format(string, sizeof(string), "%s wurde vom Server gekickt, Grund: Armorhack", GetName(playerid));
SendClientMessageToAll(COLOR_RED, string);
KickEx(playerid);
}
}
Funktioniert ganz gut.
Das mit "pIsPB" ist wegen Paintball falls du den Code brauchst pn mich. -
Hey,
Ich wollte eine Geld abfrage machen, wenn der Spieler kein Geld verliert sollte er gekickt werden.
Ich weiß allerdings nicht so genau wie ich das jetzt macheif(GetMoney(playerid) < menge)
so frage ich es ab, aber muss irgendwie noch abfragen das wenn der Spieler dann kein Geld verliert das er danach gekickt wird.
Kann mir jemand dabei helfen?
Vielen Dank. -
Brauche Hilfe beim Instalieren
Kann dir eventuell helfen kannst mir ja mal eine PN schiken.
-
Frohes neues Jahr an alle feiert schön!
-
Ein paar pID und playerid's waren da noch vertauscht.
Versuche es so:
else if(strcmp(option, "hacken", true) == 0){ new Float:X, Float:Y, Float:Z; new pID = HackAntrag[playerid]; //Damit es einfacher ist. pID entspricht HackAntrag[playerid]. if(pID != INVALID_PLAYER_ID) { if(HackAntrag[pID] != INVALID_PLAYER_ID) { if(IsLoggedIn(pID)) { GetPlayerPos(pID, X, Y, Z); if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe vom Spieler."); new WantedsHack = HackWanteds[playerid]; new Geld = HackBetrag[playerid]; if(GetMoney(pID) < Geld)return SendClientMessage(playerid, COLOR_GREY, "Dein Partner hat nicht genügend Geld."); if(WantedsHack < 0 || WantedsHack > 5)return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur zwischen 1 und 5 Wanteds löschen."); if(Spieler[playerid][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Du hast keine Wanteds."); OnWantedChange(playerid, Spieler[playerid][pWanteds], (Spieler[playerid][pWanteds]-WantedsHack)); Spieler[playerid][pWanteds] -= WantedsHack; if(Spieler[playerid][pWanteds] <= 0)Spieler[playerid][pWanteds] = 0; new string[145]; GetPlayerName(pID, string, MAX_PLAYER_NAME); format(string, sizeof(string), "Du hast %s den Hackbetrag gesendet (+$%d).", string, Geld); SendClientMessage(playerid, COLOR_GREEN, string); GiveMoney(playerid, -Geld); GiveMoney(pID, Geld); HackBetrag[playerid] = 0; HackBetrag[pID] = 0; HackWanteds[playerid] = 0; HackWanteds[pID] = 0; HackAntrag[pID] = INVALID_PLAYER_ID; } } } return 1;}Es funktioniert nun, vielen Dank für deine Hilfe!
-
Wie gibst du dem Spieler denn die Wanteds? (Code)
Poste dazu bitte den aktuellen Accept Befehl nochmal.
else if(strcmp(option, "hacken", true) == 0)
{
new Float:X, Float:Y, Float:Z;
new pID = HackAntrag[playerid]; //Damit es einfacher ist. pID entspricht HackAntrag[playerid].
if(pID != INVALID_PLAYER_ID)
{
if(HackAntrag[pID] != INVALID_PLAYER_ID)
{
if(IsLoggedIn(pID))
{
GetPlayerPos(pID, X, Y, Z);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe vom Spieler.");
new WantedsHack = HackWanteds[playerid];
new Geld = HackBetrag[playerid];
if(GetMoney(pID) < Geld)return SendClientMessage(playerid, COLOR_GREY, "Dein Partner hat nicht genügend Geld.");if(WantedsHack < 0 || WantedsHack > 5)return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur zwischen 1 und 5 Wanteds löschen.");
if(Spieler[playerid][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Du hast keine Wanteds.");
OnWantedChange(pID, Spieler[pID][pWanteds], (Spieler[pID][pWanteds]-WantedsHack));
Spieler[pID][pWanteds] -= WantedsHack;
if(Spieler[pID][pWanteds] <= 0)Spieler[pID][pWanteds] = 0;new string[145];
GetPlayerName(pID, string, MAX_PLAYER_NAME);
format(string, sizeof(string), "Du hast %s den Hackbetrag genommen (+$%d).", string, Geld);
SendClientMessage(playerid, COLOR_GREEN, string);
GiveMoney(playerid, Geld);
GiveMoney(pID, -Geld);HackBetrag[playerid] = 0;
HackBetrag[pID] = 0;
HackWanteds[playerid] = 0;
HackWanteds[pID] = 0;
HackAntrag[pID] = INVALID_PLAYER_ID;
}
}
}
return 1;
}//Aktueller Accept BefehlCMD:suspect(playerid, params[])
{
if(!IsLoggedIn(playerid))return 1;
new pID, wanteds, string[128], reason[64];
if(!(Spieler[playerid][pFraktion] == 1))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Beamter.");
if(sscanf(params, "uis[64]", pID, wanteds, reason))return SendClientMessage(playerid, COLOR_GREY, "Benutze (/su)spect [SpielerID/Name] [Wanteds] [Grund]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid, COLOR_GREY, ERROR_OFFLINE);
if(IsPlayerNPC(pID))return 1;
//if(Spieler[pID][pFraktion] == 1)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist ein Beamter.");
if(Spieler[pID][pJailed] == 1)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist im Gefängnis.");
if(wanteds < 1 || wanteds > 10)return SendClientMessage(playerid, COLOR_GREY, "Du kannst maximal 10 Wanteds gleichzeitig vergeben.");
if(Spieler[pID][pWanteds] >= 500)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat 500 Wanteds.");
OnWantedChange(pID, Spieler[pID][pWanteds], (Spieler[pID][pWanteds]+wanteds));
Spieler[pID][pWanteds] += wanteds;
format(string, sizeof(string), "Du hast ein Verbrechen begangen. (%s) Reporter: %s", reason, GetName(playerid));
SendClientMessage(pID, COLOR_RED, string);
format(string, sizeof(string), "Dein aktuelles Wanted Level: %d", Spieler[pID][pWanteds]);
SendClientMessage(pID, COLOR_YELLOW, string);
format(string, sizeof(string), "HQ: %s (ID: %d) hat ein Verbrechen begangen: %s, over.", GetName(pID), pID, reason);
SendFraktionMessage(1, COLOR_COP_MELDUNG, string);
format(string, sizeof(string), "HQ: Reporter: %s, Aktuelles Wantedlevel: %d, over.", GetName(playerid), Spieler[pID][pWanteds]);
SendFraktionMessage(1, COLOR_COP_MELDUNG, string);
UpdateWantedTD(pID);
format(Spieler[pID][pWantedReason], 32, reason);
return 1;
}//So kann man Wanteds vergeben, oder welchen Code brauchst du? -
Dann müsste es doch meinem Verständnis nach so sein, oder?
if(Spieler[pID][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat keine Wanteds.");
zu:
if(Spieler[playerid][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Du hast keine Wanteds.");Also jetzt geht es Angebot senden + Geld abziehen nach /accept aber die Wanteds werden nicht gelöscht..
-
Wie sieht der vorherige Befehl aus, der /hacken?
CMD:hacken(playerid,params[])
{
if(Spieler[playerid][pJob] != 6)return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Hacker.");
if(pErstehilfeUse[playerid] > 0)return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur alle 30 Minuten hacken.");
new pID, Hacken, Geld, string[128], Float:pos[3];
if(Spieler[playerid][pLevel] < 3)return SendClientMessage(playerid, COLOR_GREY, "Du benötigst mindestens Level 5.");
if(sscanf(params,"udd", pID, Hacken, Geld))return SendClientMessage(playerid, COLOR_GREY, "Benutze /hacken [SpielerID/Name] [Wanteds] [Bargeld]");
if(!IsLoggedIn(pID))return SendClientMessage(playerid, COLOR_GREY, "Der angegebene Spieler ist nicht online.");
if(pID == playerid)return SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht hacken??");
GetPlayerPos(pID, pos[0], pos[1], pos[2]);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, pos[0], pos[1], pos[2]))return SendClientMessage(playerid, COLOR_GREY, "Der Spieler befindet sich nicht in deiner Nähe.");
if(Spieler[pID][pLevel] < 3)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler benötigt mindestens Level 3.");
if(Hacken < 1 || Hacken > 5 )return SendClientMessage(playerid, COLOR_GREY, "Die Wantedsanzahl müssen zwischen 1-5 liegen");
if(Geld < 5000 || Geld > 50000)return SendClientMessage(playerid, COLOR_GREY, "Der Betrag muss zwischen $5.000 und $50.000 liegen.");
HackAntrag[pID] = playerid;
HackAntrag[playerid] = pID;
HackBetrag[playerid] = Geld;
HackBetrag[pID] = Geld;
HackWanteds[playerid] = Hacken;
HackWanteds[pID] = Hacken;
format(string, sizeof(string), "%s will dir für $%d, %d Wanteds hacken. (/accept hacken)", GetName(playerid), Geld, Hacken);
SendClientMessage(pID, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "Du hast %s ein Angebot zum Hacken für $%d (%d Wanteds) gesendet.", GetName(pID), Geld, Hacken);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
pErstehilfeUse[playerid] = 1800;
return 1;
} -
In dem Befehl oben findet sich diese Nachricht (Du hast keine Wanteds) nicht. Wo kommt die her?
if(Spieler[pID][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat keine Wanteds.");
Das steht in dem Code dabei. Sry das heißt "Der Spieler hat keine Wanteds.".
€: Und die Wanteds werden halt nicht gelöscht. -
Das war falsch. Du hast "pWanteds" ersetzt. Du sollst aber "wanteds" ersetzen.
Versuche es nochmal.Wenn ich /hacken mache dann biete ich ihm an die Wanteds zu hacken, wenn er /accept Hacken macht steht da "Du hast keine Wanteds." wenn ich mir 2 Wanteds gebe dann z.B dann kann er den Betrag bezahlen aber er zieht die Wanteds auch nicht ab. Brauchst du villeicht den Code? (CMD:hacken)?
€: grob gesagt ich biete mir selbst an mich selbst zu hacken.
-
Oh, die habe ich übersehen, sorry.
Ersetze beide "wanteds" mit "WantedsHack".Habe das jetzt so gemacht:
OnWantedChange(pID, Spieler[pID][WantedsHack], (Spieler[pID][WantedsHack]-wanteds));
Spieler[pID][WantedsHack] -= wanteds;allerdings;
error 017: undefined symbol "wanteds"
warning 213: tag mismatch
error 017: undefined symbol "wanteds" -
pID entspricht deinem HackAntrag[playerid]. Ich habe alle diese Aufkommen durch pID ersetzt, und pID ganz oben (siehe Kommentar) deklariert und instanziiert, mit dem Wert von HackAntrag[playerid].
So ist der Code etwas leserlicher.wanteds war ebenfalls immer 0. Dies entspricht deinem HackWanteds[playerid], was wiederum WantedsHack ist. Ich habe also "wanteds" mit WantedsHack ersetzt.
Die Schleife habe ich entfernt, da diese keien Wirkung hatte.
Ebenfalls die if-Abfrage.Damit sieht der Code dann so aus:
else if(strcmp(option, "hacken", true) == 0){ new Float:X, Float:Y, Float:Z; new pID = HackAntrag[playerid]; //Damit es einfacher ist. pID entspricht HackAntrag[playerid]. if(pID != INVALID_PLAYER_ID) { if(HackAntrag[pID] != INVALID_PLAYER_ID) { if(IsLoggedIn(pID)) { GetPlayerPos(pID, X, Y, Z); if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe vom Spieler."); new WantedsHack = HackWanteds[playerid]; new Geld = HackBetrag[playerid]; if(GetMoney(pID) < Geld)return SendClientMessage(playerid, COLOR_GREY, "Dein Partner hat nicht genügend Geld."); if(WantedsHack < 0 || WantedsHack > 5)return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur zwischen 1 und 5 Wanteds löschen."); if(Spieler[pID][pWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat keine Wanteds."); OnWantedChange(pID, Spieler[pID][pWanteds], (Spieler[pID][pWanteds]-wanteds)); Spieler[pID][pWanteds] -= wanteds; if(Spieler[pID][pWanteds] <= 0)Spieler[pID][pWanteds] = 0; new string[145]; GetPlayerName(pID, string, MAX_PLAYER_NAME); format(string, sizeof(string), "Du hast %s den Hackbetrag genommen (+$%d).", string, Geld); SendClientMessage(playerid, COLOR_GREEN, string); GiveMoney(playerid, Geld); GiveMoney(pID, -Geld); HackBetrag[playerid] = 0; HackBetrag[pID] = 0; HackWanteds[playerid] = 0; HackWanteds[pID] = 0; HackAntrag[pID] = INVALID_PLAYER_ID; } } } return 1;}
error 017: undefined symbol "wanteds"
error 017: undefined symbol "wanteds"in Zeile:
OnWantedChange(pID, Spieler[pID][pWanteds], (Spieler[pID][pWanteds]-wanteds));
Spieler[pID][pWanteds] -= wanteds;
Wie kann ich das noch fixxen? -
Wird so immer noch nicht funktionieren da nach wie vor pID den Wert 0 hat. Vor der Wanted abfrage mit sscanf die variablen füllen lassen.
Kannst du mir irgendwie da was vorgeben, da ich nicht so ganz kapiere was ihr meint. xD wäre nett.
-
@RastaZopf.:
Warum hast du ihn das nicht gesagt was jetze war und hast direkt wieder Jeffry makiert ?
Finde sowas unverschämt jemand hilft dir und dann jemand anderen makieren.Wie schon gesagt, er kann mir bei meinen Fehlern "AM BESTEN" helfen.
-
Dj Deagle hat dir dein Fehler doch erklärt Jeffry hat auch nicht immer Zeit nur weil er jemand ist der sehr oft hilft und immer eine Antwort hat heißt es nicht dass man andere Antworten ignorieren sollte.
Wer sagt den das ich andere Antwort ignoiere? Es ging halt nicht bzw ich hab es nicht hinbekomme nso wie er mir das erklärt hat. "Versucht" habe ich es schon.
-
Mir auch bitte...
ich habe herausgefunden, dass wenn man unter dem "stock ShowStats" die sache mit dem "lastlogin" entfernt es komischerweise geht.Ja dann gehts.
-
Wenn du einem anderen Spieler die Wanteds damit hacken willst, braucht die Variable einen Wert.Die Variable pID ist 0 - Wenn Spieler-ID 0 keine Wanteds hat, geht der Befehl nicht.
Darf man fragen, warum du immer versuchst eine Antwort von Jeffry zu erzwingen?
Weil Jeffry einfach sehr gut helfen kann und komischerweise alles auf eine bessere ART erklärt, von daher finde ich es cool das er mir hilft.