Und Probiers mit cache_get_row statt field_content.
...
Und Probiers mit cache_get_row statt field_content.
...
Zur Datenbank:
Kennzeichen würde ich zum String machen und Schaden als Double speichern, denn in SA:MP ist die Schadensausgabe eine Dezimalzahl. Zudem möchtest du ja auf dem Kennzeichen sicherlich nicht nur zahlen - sondern auch Buchstaben haben, daher String.
Code kann am Handy nicht beurteilen.
Probiers mal mit mysql_tquery statt pquery, da tquery nicht in allen versionen unterstützt wird. Und Probiers mit cache_get_row statt field_content.
Und mach aus dem "i" (integer) ein "s" (String)
/Handy
@NikBazinga! Zeig mal die Query
Wie setzt du die neue Fraktion? Also wie invitest du jemanden in eine Fraktion?
Alles anzeigen@Montero können != machen. Soviel dazu.
Ich kenne deine Art zu scripten nicht doch folgendes;
Paintball-Arena mit verschiedenen Modis (z.B Deagle, Deagle+Shotgun, Rifle, M4, Alle) dauert ca. 15 Minuten.
Race (z.B Strecke mit Checkpoints InGame erstellen) dauert ungefähr 5 Minuten.
LMS (z.B automatischer Telepunkt + Flugzeug erstellen) ebenfalls 5 Minuten.
Dann hast du ab jetzt also noch 20 Minuten Zeit für weitere Systeme.
Alles kein Thema.
Lernt Scripten ohne Witz ist das peinlich mit euch.
Ja sorry, ich kann gar nichts. Keiner hier kann was. Nur du, nur du!
@AlterHase., danke für deinen aufschlussreichen Beitrag. Wie du dem Beitrag des Threaderstellers hoffentlich erfolgreich entnommen hast, möchte er ein Eventsystem mit mehren Modis - wir wissen beide nicht, was genau er damit meint, allerdings denke ich, dass er mindestens ein Race-System und Deathmatch-System möchte. Und um das ausgeklügelt und gut hinzubekommen, reichen keine 45 Minuten. Aber wenn du so fortgeschritten bist, dass du das in 45 Minuten hinbekommst, dann hat der Threadersteller doch schon jemanden gefunden und alles ist gut.
Also sowas kostenlos zu verlangen, ist bisschen viel verlangt - ganz ehrlich! Das sind einige Stunden Arbeit und ich mein, es ist ja nicht gerade ein kleines Script-Schnipsel. Wenn du entsprechend was dafür zahlen würdest, kannst du mich gerne kontaktieren.
Hallo @KinGRaPTiiC und @eli, ich habe mal bisschen was zusammen geschrieben. Ich hoffe, das hilft dir/euch.
Erklärung:
Folgende Definitionen/Deklarationen bitte oben im Script einfügen
// Diese Definitionen bitte oben im Script vornehmen.
new jobArray[10][40];
new jobListe[150] = "-- Bitte wählen --";
new jobTempVar[MAX_PLAYERS] = -1;
Folgendes bitte in OnGameModeInit() einfügen.
jobArray[0] = "Zivilist";
jobArray[1] = "Trucker";
jobArray[2] = "Hochseefischer";
jobArray[3] = "Minenarbeiter";
jobArray[4] = "Busfahrer";
jobArray[5] = "Bauer";
jobArray[6] = "Drogendealer";
jobArray[7] = "Waffendealer";
jobArray[8] = "Detektiv";
jobArray[9] = "Mechaniker";
print("Jobs werden generiert:");
for(new i = 0; i < sizeof(jobArray); i ++) { // Das kannst du eigentlich weglassen, es ist bloß ein Debug-Script um in der Console zu sehen, welche Jobs geladen werden. :-)
printf(" - %s", jobArray[i]);
}
//Hier wird der String der verfügbaren Jobs global festgelegt, folglich kannst du die Jobs immer dynamisch erweitern/reduzieren, in dem du oben in jobArray die Jobs rauslöschst und die Arraygröße in der definition new JobArray anpasst.
for(new i = 1; i < sizeof(jobArray); i ++) {
format(jobListe, sizeof(jobListe), "%s\n%s", jobListe, jobArray[i]);
}
Alles anzeigen
Folgendes bitte in OnPlayerConnect(playerid) einfügen
Der ocmd-Befehl /jobs
ocmd:jobs(playerid)
{
if(!IsPlayerInRangeOfPoint(playerid,4.0,362.4120, 173.6170, 1008.3828))return SendClientMessage(playerid, -1, "Du bist nicht am Arbeitsamt!");
ShowPlayerDialog(playerid,DIALOG_JOBS,DIALOG_STYLE_LIST, "Jobs", jobListe, "Auswählen", "Abbrechen");
return 1;
}
Folgendes bitte in OnDialogResponse einfügen.
if(dialogid == DIALOG_JOBS)
{
if(response)
{
switch(listitem)
{
case 0: ShowPlayerDialog(playerid,DIALOG_JOBS,DIALOG_STYLE_LIST, "Jobs", jobListe, "Auswählen", "Abbrechen"); // Sollte man auf "BITTE WÄHLEN" klicken, wird das Dialog einfach nochmal geöffnet, da es eine Fehlauswahl war.
case 1..sizeof(jobArray): GivePlayerJob(playerid, listitem, 0); // Wählt man einen Job von 1-Anzahl verfügbarer Jobs aus, wird der jeweilige Job vergeben.
}
}
return 1;
}
// Das ist das von dir gewünschte "Bestätigungs-Dialog" wo nochmal gefragt wird, ob man sich sicher ist.
if(dialogid == DIALOG_JOBS_BESTAETIGUNG)
{
if(response)
{
GivePlayerJob(playerid, jobTempVar[playerid], 1); // Wenn er "job annehmen" anklickt, wird der Job vergeben in dem man den letzten Parameter von GivePlayerJob auf 1 setzt. Weiteres siehe: public GivePlayerJob
} else {
jobTempVar[playerid] = -1;
SendClientMessage(playerid, -1, "Du hast den Vorgang abgebrochen."); // Wählt man ABBRECHEN, wird der Vorgang zurückgesetzt und die Temporäre Variable wieder zurückgesetzt
}
return 1;
}
Alles anzeigen
Das bitte außerhalb jeglicher publics einfügen
Das bitte auch außerhalb jeglicher Publics einfügen.
forward GivePlayerJob(playerid, jobid, bestaetigung);
public GivePlayerJob(playerid, jobid, bestaetigung) {
new bestaetigungsString[150];
if(bestaetigung == 0) {
jobTempVar[playerid] = jobid;
format(bestaetigungsString, sizeof(bestaetigungsString), "Bist du dir sicher, dass du den Beruf >{FF0000}%s{FFFFF}< annehmen möchtest? Wenn ja, drücke 'Job annehmen'.", GetJobName(jobid));
ShowPlayerDialog(playerid, DIALOG_JOBS_BESTAETIGUNG, DIALOG_STYLE_MSGBOX, "Bist du dir sicher?", bestaetigungsString, "Job annehmen", "Abbrechen");
} else {
// Hier muss dann dem User der Job gesetzt werden.
// Da ich dein User-System nicht kenne, musst du das selber implementieren.
// Die ID des Jobs von dem jeweiligen User ist gespeichert in jobTempVar[playerid]!
// Ich setze jobTempVar[playerid], nachdem du es in dem User-Account gespeichert hast, wieder auf -1 ( jobTempVar[playerid] = -1; )
/********* Hier User Speichern **********/
/****************************************/
new string[128];
format(string, sizeof(string), "Gratulation! Du hast erfolgreich den Job >%s< angenommen!", GetJobName(jobTempVar[playerid]));
SendClientMessage(playerid, -1, string);
jobTempVar[playerid] = -1; // Temporäre Variable wird wieder zurückgesetzt.
}
}
Alles anzeigen
Zeig mal dein Dialog also ShowPlayerDialog(). Dann kann ich dir deinen OnDialogResponse machen.
Wieso ist dein Skin-System bei OnPlayerClickTextdraw nicht in der if Abfrage inbegriffen? (Also die erste if Abfrage in dem public. (Kann sein dass das nur nicht richtig angezeigt wird bei mir, bin am Handy)
Also ich mein, wieso die geschweifte Klammer der ersten if Abfrage nach dem Register System schließt und nicht erst nach dem Skin-System unmittelbar vor der Schließung der geschweiften Klammer des Publics.
//Edit: ich denke der Auslöser des Problems ist das return am Ende der if-Klammer. Hierdurch wird das Public abgebrochen und das Script kommt gar nicht bis zum Skinsystem
Nabend, kann mir jemand eine gute Powerbank fürs Handy empfehlen?
Am liebsten mit mindestens 20.000 - 50.000 mAh.
Lieferung von Deutschland und wenn's geht von Ebay oder Amazon.
Suche ebenfalls gute Lautsprecher, die laut sind und guten Bass haben.
Sollten anschließbar an PC/PS4 sein (USB Anschluss ?) und was noch so Lautsprecher benötigen.
Powerbank: Powerbank 20000mAh 3 USB Ports Coolreall® externer Akku mit LED-Statusanzeige, für iPhone, iPad, Samsung, Smartphone, Tablette, usw. (Schwarz) https://www.amazon.de/dp/B01L9…sw_r_cp_api_XFcOyb3KCR1Z7
Lautsprecher: Trust GXT 638 2.1 Digitaler Gaming Lautsprecher mit optischem Eingang und Subwoofer für PS4/PC/Xbox One, schwarz https://www.amazon.de/dp/B00JV…sw_r_cp_api_sHcOybPMHDVHT
Füge einfach in OnGameModeInit() folgendes ein: DisableInteriorEnterExits();
Welche Fraktion hast du eingefügt und vor allem wie?
Who "Showst" du denn das Skin Textdraw?
@Hydra mit dir sollte man es sich lieber nicht verscheissen...
Sehr interessante und auch hilfreiche Erklärungen, vielen Dank hierfür!
Leider mMn ungelungen die Map. Sehr leer, Kastengebäude mit leerem Flachdach (Lüftungsanlage, etc.) und unglaublich dünne Wände (1. unrealistisch und 2. unschön). Zudem unpassend eine Kühltheke (in einem vermeintlichen Elektrofachhandel) neben der Kasse.
Freut mich, dass es geklappt hat. Naja, Schlimm ist es nicht, allerdings wenn du einen Server mit 300 Spieler online hast und alle gleichzeitig den Payday bekommen, werden halt 300 String mit 768 Zeichenketten erstellt. Ob das wiederum Auswirkungen auf den Server hat wage ich zu bezweifeln.