Ich suche eine Funktion um zu erkennen ob man godmode/hack hat oder nicht wie kann das ambesten gehen ?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\happyages.pwn(8964) : warning 219: local variable "pID" shadows a variable at a preceding level
else if(strcmp(option, "waffe", true) == 0)
{
if(pDealerID[playerid] == INVALID_PLAYER_ID)return SendClientMessage(playerid, COLOR_GREY, "Du hast keine Anfrage für einen Waffenhandel erhalten.");
if(!IsLoggedIn(pDealerID[playerid])){
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht mehr online, Angebot zurückgezogen!");
pDealerID[playerid] = INVALID_PLAYER_ID;
pDealerWaffe[playerid] = -1;
return 1;
}
new Float:pos[3];
GetPlayerPos(pDealerID[playerid], pos[0], pos[1], pos[2]);
if(!IsPlayerInRangeOfPoint(playerid, 5.0, pos[0], pos[1], pos[2]))return SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist nicht in deiner Nähe.");
new pID = pDealerID[playerid]; //8964
if(Spieler[pID][pEisen] < pDealerMatsNeeded[playerid]){
SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat nicht genügend Materialien, Angebot zurückgezogen!");
SendClientMessage(pID, COLOR_GREY, "Du hast nicht mehr genügend Materialien!");
pDealerID[playerid] = INVALID_PLAYER_ID;
pDealerWaffe[playerid] = -1;
return 1;
}wo liegt da das Problem?
-
Auf vorheriger Ebene im Code ist pID bereits deklariert.
Ändere
new pID = pDealerID[playerid]; //8964
zu:
pID = pDealerID[playerid]; //8964Das kannst du einfach so machen machen, da pID keine weitere Verwendung mehr nach diesem Abschnitt hat (da return).
-
if(stunde == 20)
{
SetWeather(3);
}Bei mir changt er das wetter nicht obwohl es nach 20 UHR ist
-
if(stunde == 20)
zu:
if(stunde >= 20)Da es 21:32 ist.
-
Code
if(Spieler[playerid][pPremium] == 1) { SetPlayerHealth(playerid, 100); if(Spieler[playerid][pGunLicense] == 1) { GivePlayerWeapon(playerid, 24, 50); return 1; } }Kurze frage es wird ja abgefragt ob der spieler Premium hat wen ja soll er 100 HP bekommen und wen er ein waffenschein hat soll er eine Deagel bekommen aber das Funktioniert nicht?
-
Möglicherweise wird der Code gar nicht aufgerufen, weil er zuvor in ein return läuft.
Das würde er hier ja nach dem GivePlayerWeapon auch. -
Code
Alles anzeigenCMD:heal(playerid, params[]) { if(!IsLoggedIn(playerid))return 1; new string[128], pID; if(Spieler[playerid][pFraktion] == 3 && IsPlayerInAnyVehicle(playerid)) { if(sscanf(params, "u", pID))return SendClientMessage(playerid, COLOR_GREY, "Benutze /heal [SpielerID/Name]"); new vehicleid = GetPlayerVehicleID(playerid); new fV = IsAFraktionsVeh(vehicleid); if(!(fVehicle[fV][vehFraktion] == Spieler[playerid][pFraktion]))return SendClientMessage(playerid, COLOR_GREY, "Zum heilen von anderen Spielern musst du in einem Fraktions-Fahrzeug sitzen."); if(playerid == pID)return SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber heilen."); if(GetPlayerVehicleID(pID) != GetPlayerVehicleID(playerid))return SendClientMessage(playerid, COLOR_GREY, "Nicht im selben Fahrzeug."); SetPlayerHealth(pID, 125); GiveMoney(pID, -50); GiveMoney(playerid, 50); Frak[3][frakKasse] += 25; if(pMaske[pID] == 0){ format(string, sizeof(string), "* Sanitäter %s versorgt die Wunden von %s.", GetName(playerid), GetName(pID)); RoundMessage(playerid, COLOR_PURPLE, string, 20.0); }else{ format(string, sizeof(string), "* Sanitäter %s versorgt die Wunden von Maskiertem %d", GetName(playerid), pMaskeNumber[pID]); RoundMessage(playerid, COLOR_PURPLE, string, 20.0); } format(string, sizeof(string), "Sanitäter %s hat dich für $100 geheilt.", GetName(playerid)); SendClientMessage(pID, COLOR_LIGHTBLUE, string); format(string, sizeof(string), "~y~du hast~n~~w~%s geheilt~n~~g~50$", GetName(playerid)); GameTextForPlayer(playerid, string, 1200, 1); return 1; }Hey, mein Heal Befehl funktioniert einwandfrei aber die frage ist wie mache ich das der Sanitäter /heal (playerid) (sein eigenen Preis festlegen) wie mach ich das?
-
CMD:heal(playerid, params[])
{
if(!IsLoggedIn(playerid))return 1;
new string[128], pID, price;
if(Spieler[playerid][pFraktion] == 3 && IsPlayerInAnyVehicle(playerid))
{
if(sscanf(params, "ud", pID, price))return SendClientMessage(playerid, COLOR_GREY, "Benutze /heal [SpielerID/Name] [Preis]");
new vehicleid = GetPlayerVehicleID(playerid);
new fV = IsAFraktionsVeh(vehicleid);
if(!(fVehicle[fV][vehFraktion] == Spieler[playerid][pFraktion]))return SendClientMessage(playerid, COLOR_GREY, "Zum heilen von anderen Spielern musst du in einem Fraktions-Fahrzeug sitzen.");
if(playerid == pID)return SendClientMessage(playerid, COLOR_GREY, "Du kannst dich nicht selber heilen.");
if(GetPlayerVehicleID(pID) != GetPlayerVehicleID(playerid))return SendClientMessage(playerid, COLOR_GREY, "Nicht im selben Fahrzeug.");
SetPlayerHealth(pID, 125);
GiveMoney(pID, -price);
GiveMoney(playerid, price);
Frak[3][frakKasse] += price/2;
if(pMaske[pID] == 0){
format(string, sizeof(string), "* Sanitäter %s versorgt die Wunden von %s für $%d.", GetName(playerid), GetName(pID), price);
RoundMessage(playerid, COLOR_PURPLE, string, 20.0);
}else{
format(string, sizeof(string), "* Sanitäter %s versorgt die Wunden von Maskiertem %d für $%d.", GetName(playerid), pMaskeNumber[pID], price);
RoundMessage(playerid, COLOR_PURPLE, string, 20.0);
}
format(string, sizeof(string), "Sanitäter %s hat dich für $%d geheilt.", GetName(playerid), price);
SendClientMessage(pID, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "~y~du hast~n~~w~%s geheilt~n~~g~%d$", GetName(playerid), price);
GameTextForPlayer(playerid, string, 1200, 1);
return 1;
} -
if(strval(inputtext) < 50 || strval(inputtext) > 125) return SendClientMessage(playerid, COLOR_GREY, "Nutze 50$ - 125$!");
Danke, wollte gerade das es nicht übertrieben wird mit den Heal Preisen wollte ich das es ein Limit gibt von bis würde das so funktionieren?
-
Nutze die "price" Variable.
if(price < 50 || price > 125) return SendClientMessage(playerid, COLOR_GREY, "Nutze 50$ - 125$!"); -
Nutze die "price" Variable.
if(price < 50 || price > 125) return SendClientMessage(playerid, COLOR_GREY, "Nutze 50$ - 125$!");Danke,
Ich wollte noch fragen wie ich abfrage wen der Spieler 120min online ist soll er z.b geld RP
Das kann er einsehen via /activity.
Du bist z.b 100 Minuten Online ubd erhählsz dein bonus bei 120min.So aber die Zeit soll nicht weiter laufen wen er ESC geht.
Wen er es erreicht hat soll komm du hast den bonus Tag 1 erhalten. (Z.b 2000).
Sollte er ein Tag nicht den bonus geholt haben wird es zurück gesetzt auf Tag eins.
Wen er on kommt soll komm da du nicht online warst wird dein Bonus von Tag 2 zurück gesetzt.
Ich weiß nicht wie ich Sowas schreiben soll sitze mit ein Freund schon länger dabei und wir tüfteln immer noch wie wir das schreiben sollen sind noch anfänger doch wir verstehen schon einiges.
Wäre nett wen ihr uns helfen könnt. -
Dr.Frauenarzt, ich werde dir kein Code Posten, werde dir nur sagen wie du dies machen kannst.
Du hast ja mit sicherheit einen Timer zB PayDay, der geht ja alle 60 Sekunden, und dort kannst du eine Veriable nutzen der die Zeit immer Höher Zählt,
bis er die Zeit erreicht hat, hat er die Erreicht gibst du ihn die Nachricht raus, das Geld und setzt dann eine zweite Verialbe auf 1 zB, damit er kein weiteren bekommt.Beim ESC gehen kannst du es mit dem PayDay Intergrieren, sollte er ESC gehen, Killst du den Timer, kommt er wieder, lässt du ihn wieder Starten.
Hoffe konnte dir weiter Helfen.
MfG.
-
Hey,
Ich suche die Tastenbelegung Z & N die man nutzen kann wen man in ein Auto ist
-
Hey,
Ich suche die Tastenbelegung Z & N die man nutzen kann wen man in ein Auto ist
https://wiki.sa-mp.com/wiki/Keys
KEY_NO & KEY_YES

-
Danke
Wie lasse ich den Radio stoppen?
CMD:carradio(playerid)
{
ShowPlayerDialog(playerid, DIALOG_MUSIC, DIALOG_STYLE_LIST, "Radio-Musik", "Musik stoppen\nPlanetradio (Classic)\nPlanetradio (The Club)\nPlanetradio (Black Beats)\nHousetime FM\nILove Big FM (Urban Club Beats)\nI Love Radio (Classic)\nI Love 2 Dance", "Starten", "Abbrechen");
return 1;
}Wen ich jezt ein Sender ausgewählt habe und der mir nicht mehr gefällt und /carradio eingebe das
StopAudioStreamForPlayer(playerid);
Vehicle[vehicleid][vehRadio] = 0;
der sender gestoppt wird automatisch ohne das man Musik stoppen ankliken muss -
Hast es doch schon vorgeschrieben, einfach so:
CMD:carradio(playerid)
{StopAudioStreamForPlayer(playerid);
Vehicle[vehicleid][vehRadio] = 0;
ShowPlayerDialog(playerid, DIALOG_MUSIC, DIALOG_STYLE_LIST, "Radio-Musik", "Musik stoppen\nPlanetradio (Classic)\nPlanetradio (The Club)\nPlanetradio (Black Beats)\nHousetime FM\nILove Big FM (Urban Club Beats)\nI Love Radio (Classic)\nI Love 2 Dance", "Starten", "Abbrechen");
return 1;
}Carradio wird zuerst gestoppt, dann wird dir das Dialog angezeigt und du kannst einen neuen Sender auswählen

-
Code
Alles anzeigenCMD:linie(playerid) { if(!IsLoggedIn(playerid))return 1; new vehicleid = GetPlayerVehicleID(playerid); if(Spieler[playerid][pJob] == 8)//Busfahrer { UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Leerfahrt"); Spieler[playerid][pBusLinie] = 0; DisablePlayerCheckpointEx(playerid); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Leerfahrt"); if(IsVehicleABus(vehicleid)) { if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht auf dem Fahrersitz."); strdel(DialogString, 0, sizeof(DialogString)); strcat(DialogString, "Linie 1: LS Stadtlinie 1, ab Skill 0\nLinie 2: LS Stadtlinie 2, ab Skill 2\nLinie 3: LS Stadtlinie 3 (East), ab Skill 3\nLinie 4: LS-SF, ab Skill 4\nLinie 5: SF-LS, ab Skill 4\nLinie 6: SF Stadtlinie 1, ab Skill 6\nLinie 7: SF Stadtlinie 2, ab Skill 7");//\nLinie 8: SF-LV, ab Skill 8\n"); //strcat(DialogString, "Linie 9: LV-SF, ab Skill 8\nLinie 10: LV - Palo - LV, ab Skill 9\nLinie 11: LV Stadtlinie 1, ab Skill 10\nLinie 12: LV Stadtlinie 2, ab Skill 12\nLinie 13: LV-LS, ab Skill 14\nLinie 14: LS-LV, ab Skill 14\nLinie 15: Red County Linie, ab Skill 15\nLinie 16: FV-LV, ab Skill 16\n"); //strcat(DialogString, "Linie 17: LV-FV, ab Skill 16\nLinie 18: LS Flughafenlinie, ab Skill 17\nLinie 19: LS - Foster Valley, ab Skill 19\nLinie 20: LS - Foster Valley - LS, ab Skill 19\nLinie 21: SA Runde, ab Skill 20/"); ShowPlayerDialog(playerid, DIALOG_BUSFAHRER, DIALOG_STYLE_LIST, "Linie auswählen", DialogString, "Starten", "Abbrechen"); } else { SendClientMessage(playerid, COLOR_GREY, "Der Busbahnhof wurde Rot makiert."); SetPlayerCheckpointEx(playerid, 1212.5878,-1729.5295,13.5043, 2.0, CP_BUSFAHRER, CP_TYPE_BUSFAHRER); //Checkpoint } } return 1; }Entweder ich bin doof oder ich tu nur so

Also wen der Spieler jetzt die Linie 1 z.b annimmt aber die nicht fahren möchte und /linie nochmal eingibt soll die Route abgebrochen werden aber der DIALOG nicht erscheinen.
Bei mir ist es aber der fall.Wen der Spieler nicht im Bus/Reisebus und /linie eingibt soll der Checkpoint angezeigt werden.
-
Wie schaut's so aus?
CMD:linie(playerid)
{
if(!IsLoggedIn(playerid))return 1;
new vehicleid = GetPlayerVehicleID(playerid);
if(Spieler[playerid][pJob] == 8)//Busfahrer
{
{
UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Leerfahrt");
Spieler[playerid][pBusLinie] = 0;
DisablePlayerCheckpointEx(playerid);
return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Leerfahrt");
}
if(IsVehicleABus(vehicleid))
{
if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht auf dem Fahrersitz.");
strdel(DialogString, 0, sizeof(DialogString));
strcat(DialogString, "Linie 1: LS Stadtlinie 1, ab Skill 0\nLinie 2: LS Stadtlinie 2, ab Skill 2\nLinie 3: LS Stadtlinie 3 (East), ab Skill 3\nLinie 4: LS-SF, ab Skill 4\nLinie 5: SF-LS, ab Skill 4\nLinie 6: SF Stadtlinie 1, ab Skill 6\nLinie 7: SF Stadtlinie 2, ab Skill 7");//\nLinie 8: SF-LV, ab Skill 8\n");
//strcat(DialogString, "Linie 9: LV-SF, ab Skill 8\nLinie 10: LV - Palo - LV, ab Skill 9\nLinie 11: LV Stadtlinie 1, ab Skill 10\nLinie 12: LV Stadtlinie 2, ab Skill 12\nLinie 13: LV-LS, ab Skill 14\nLinie 14: LS-LV, ab Skill 14\nLinie 15: Red County Linie, ab Skill 15\nLinie 16: FV-LV, ab Skill 16\n");
//strcat(DialogString, "Linie 17: LV-FV, ab Skill 16\nLinie 18: LS Flughafenlinie, ab Skill 17\nLinie 19: LS - Foster Valley, ab Skill 19\nLinie 20: LS - Foster Valley - LS, ab Skill 19\nLinie 21: SA Runde, ab Skill 20/");
ShowPlayerDialog(playerid, DIALOG_BUSFAHRER, DIALOG_STYLE_LIST, "Linie auswählen", DialogString, "Starten", "Abbrechen");
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Busbahnhof wurde Rot makiert.");
SetPlayerCheckpointEx(playerid, 1212.5878,-1729.5295,13.5043, 2.0, CP_BUSFAHRER, CP_TYPE_BUSFAHRER); //Checkpoint
}
}
return 1;
}Wenn's nicht funktioniert, setz mal prints in allen 3 Blöcken und sag mir welches auftaucht und was du aktuell machst (ob du im Bus bist oder nicht)
-
C:\Users\Medion\Desktop\Daten Medion\GTA SA Datein\GTA Scripts\German\gamemodes\German.pwn(11339) : warning 225: unreachable code
Code
Alles anzeigenCMD:linie(playerid) { if(!IsLoggedIn(playerid))return 1; new vehicleid = GetPlayerVehicleID(playerid); if(Spieler[playerid][pJob] == 8)//Busfahrer { { UpdateDynamic3DTextLabelText(Vehicle[vehicleid][vehText], 0x33CCFFFF, "Leerfahrt"); Spieler[playerid][pBusLinie] = 0; DisablePlayerCheckpointEx(playerid); return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Leerfahrt"); } if(IsVehicleABus(vehicleid)) //11339 { if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht auf dem Fahrersitz."); strdel(DialogString, 0, sizeof(DialogString)); strcat(DialogString, "Linie 1: LS Stadtlinie 1, ab Skill 0\nLinie 2: LS Stadtlinie 2, ab Skill 2\nLinie 3: LS Stadtlinie 3 (East), ab Skill 3\nLinie 4: LS-SF, ab Skill 4\nLinie 5: SF-LS, ab Skill 4\nLinie 6: SF Stadtlinie 1, ab Skill 6\nLinie 7: SF Stadtlinie 2, ab Skill 7");//\nLinie 8: SF-LV, ab Skill 8\n"); //strcat(DialogString, "Linie 9: LV-SF, ab Skill 8\nLinie 10: LV - Palo - LV, ab Skill 9\nLinie 11: LV Stadtlinie 1, ab Skill 10\nLinie 12: LV Stadtlinie 2, ab Skill 12\nLinie 13: LV-LS, ab Skill 14\nLinie 14: LS-LV, ab Skill 14\nLinie 15: Red County Linie, ab Skill 15\nLinie 16: FV-LV, ab Skill 16\n"); //strcat(DialogString, "Linie 17: LV-FV, ab Skill 16\nLinie 18: LS Flughafenlinie, ab Skill 17\nLinie 19: LS - Foster Valley, ab Skill 19\nLinie 20: LS - Foster Valley - LS, ab Skill 19\nLinie 21: SA Runde, ab Skill 20/"); ShowPlayerDialog(playerid, DIALOG_BUSFAHRER, DIALOG_STYLE_LIST, "Linie auswählen", DialogString, "Starten", "Abbrechen"); } else { SendClientMessage(playerid, COLOR_GREY, "Der Busbahnhof wurde Rot makiert."); SetPlayerCheckpointEx(playerid, 1212.5878,-1729.5295,13.5043, 2.0, CP_BUSFAHRER, CP_TYPE_BUSFAHRER); //Checkpoint } } return 1; }
