Hab die Lösung gefunden hab den Checkpoint ausversehen doppelt benutzt.
Falls dir nochmal der Server crasht und du weißt nicht woran es liegt, kannst du das crashdetect Plugin nutzen ![]()
Das zeigt dir dann genau an, wo und warum der Server crasht ![]()
mfg. ![]()
Hab die Lösung gefunden hab den Checkpoint ausversehen doppelt benutzt.
Falls dir nochmal der Server crasht und du weißt nicht woran es liegt, kannst du das crashdetect Plugin nutzen ![]()
Das zeigt dir dann genau an, wo und warum der Server crasht ![]()
mfg. ![]()
Die msvcp110.dll habe ich mal in den Server Ordner gepackt, jetzt lädt nur mysql irgendwie nicht und es kommt Run time error File or Function not found.
Dann füge mal den nativechecker ein und sag mal, was der noch sagt ![]()
mfg. ![]()
Also das ab 16 Spieler die Hälfte "Random" wird
Ja...das ändert das ganze Prinzip meinste nicht ![]()
Dann kannst du das nicht so machen, mit einer Funktion wo ich dir Werte zurück gebe...das wäre dann irgendwann bei 200 Spielern lächerlich ![]()
Sprich, du musst das in der Schleife selbst deinen Code verarbeiten.
Die Frage ist jetzt nur, was genau willst du denn machen, wenn du eine random Spielerid hast...zeig mal deinen Code...und kommentier den mal bitte!
mfg. ![]()
Aber ich verstehe gerade nicht wofür das da ist
Dachte du hast eine SQL Datenbank...wo du das evtl alles einträgst ![]()
Falls dem nicht so ist...kannst du die Statements natürlich ignorieren ![]()
mfg. ![]()
Naja, bei deinem Code versteh ich beim ersten hingucken nur Bahnhof o.o
Schau dir einfach nur an, wo Role in dem Code steht...
Dann siehst du ja, wie ich playerid nutze..bzw was du dafür einsetzen musst...
Das kannst du jetzt für dich einsetzen...
oder willst du lieber so eine Funktion:
//Nutzung:
new a,b;
GetRandomPlayer(a,b);
//in a und b steht dann die playerid von einem random Spieler!
//Wenn 2 Leute online sind, gibt es nur ein Ergebnis und das steht in a
//Sobald du aber 2 Ergebnisse haben willst, steht es in a und b
//Wenn nur 1 Ergebnis da ist, ist b = 0
stock GetRandomPlayer(&first, &sec) {
for(new i,list[MAX_PLAYERS],idx; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) list[idx] = i,idx++;
if(i == MAX_PLAYERS-1) {
if(idx < 2) break;
else if(idx == 2) return first = list[random(idx)],0;
else {
first = list[random(idx)];
for(;;) {
sec = list[random(idx)];
if(first != sec) return 0;
}
}
}
}
return 0;
}
Vielleicht hilft dir das ja ![]()
mfg. ![]()
vielleicht kann ja wer da irgendwas verbessern
Abgesehen von der AudioStream Funktion, stimmt die Grundlage für diese if-Abfrage nicht ![]()
Lern doch mal die Basics, dass man bei Pawn (normalerweise) Semikolons setzt..und bei if-Abfragen für mehrere Zeilen geschweifte Klammern nutzt ![]()
if((x > -992.5172 && x < 4000.0000) && (y < 528.0000 && y > -4000.0000)) {
PlayAudioStreamForPlayer(payerid,"http://somafm.com/tags.pls");
SendClientMessageToAll(HELLROT,"Es wurde ein Feuer in Los Santos gemeldet!");
SendClientMessageToAll(-1,"{2980b9}=========={d04133}Feueralarm in Los Santos{2980b9}==========");
}
mfg. ![]()
Sollten allerdings 6 Spieler online sein, soll auch 2 dieser 6 eine Variable zugewiesen werden.
Schau dir meine Funktion doch an...das ist schon impliziert.
Kannst du vielleicht auch was zu deinem Code schreiben...ich weiß nicht so recht, was du jetzt von mir willst, was ich mit deinem Code soll?!
mfg. ![]()
Hier eine Möglichkeit:
//Oben im Script:
new Role[MAX_PLAYERS];
//Und dann diese Funktion:
for(new i,list[MAX_PLAYERS],idx; i<MAX_PLAYERS; i++) {
if(IsPlayerConnected(i)) list[idx] = i,idx++;
if(i == MAX_PLAYERS-1) {
if(idx < 2) break;
else if(idx == 2) Role[random(idx)] = 1;
else {
new tmp = random(idx),tmp2;
Role[tmp] = 1;
for(;;) {
tmp2 = random(idx);
if(tmp != tmp2) break;
}
Role[tmp2] = 1;
}
}
}
Dann hast du Role genauso wie du es wolltest ![]()
mfg. ![]()
Solltest du jedoch ocmd o.ä benutzen, musst du das bei jedem Befehl einzelnd machen.
Quatsch ![]()
Da kann man auch das Include editieren und den gehookten Callback benutzen.
mfg. ![]()
Ich gebe dir mal ein Beispiel:
//Unter OnPlayerCommandText
new string[64],oldvalue;
//oldvalue erstmal halt mit nem SELECT Statement herausfinden von dem Befehl (auch hier filter(cmdtext) nutzen
format(string,sizeof string,"UPDATE table_name SET counter=%d WHERE cmd='%s';",oldvalue,filter(cmdtext)); //Halt hier ein update statement
//Und die filter Funktion (returnt nur den Befehl-Namen mit)
stock filter(const cmd[]) {
new buffer[32];
return strmid(buffer,cmd,1,strfind(cmd," "),sizeof buffer),buffer; //Mach aus der 1 eine 0 wenn du einen / davor haben willst
}
Hoffe das meintest du...ist nicht sehr gut formuliert was du eigentlich willst, aber ich hoffe ich konnte helfen ![]()
mfg. ![]()
Hmmm
Die 1. Zeile mit dem new bla...da werden die Variablen deklariert, die musst du natürlich stehen lassen ![]()
mfg. ![]()
zu:
Quatsch ![]()
Weißt du eigentlich was das macht, das sorgt nur dafür, dass da z.B. 02:xx steht..also eine null vor der Zahl..bei dir jetzt eben nicht mehr
Zudem kannst du nicht einfach die %s stehen lassen...wenn du alles andere weg gemacht hast! ![]()
Wenn du es elegant lösen willst, mach es so:
getdate(year, month, day),gettime(hour, minute, second);
format(string, sizeof string, "%02d/%02d/%d", day, month, year);
TextDrawSetString(Date, string);
format(string, sizeof string, "%02d:%02d:%02d", hour, minute, second);
TextDrawSetString(Time, string);
mfg. ![]()
Die Autos haben immer noch die "XY746373" Nummernschilder.
Mach es mal so:
for(new i; i<sizeof lvpd; i++) SetVehicleNumberPlate(lvpd[i], "LVPD");
for(new i; i<sizeof lspd; i++) SetVehicleNumberPlate(lspd[i], "LSPD");
for(new i; i<sizeof sfpd; i++) SetVehicleNumberPlate(sfpd[i], "SFPD");
for(new i; i<sizeof medics; i++) SetVehicleNumberPlate(medics[i], "Sanitäter");
mfg. ![]()
Warum CJ Skin wenn ich eine Deagle halte?
Mach einfach mal einen Print-Debug und schau, ob das auch alles aufgerufen wird und was dann da drinnen steht und ob du unten, das halt anzeigst nochmal das TextDraw...
Und kann man den aktuellen Clip der Munition abfragen?
Ja...mit http://wiki.sa-mp.com/wiki/GetPlayerAmmo
mfg. ![]()
igInfo3[MAX_PLAYERS]
Das ist Array index out of bounds, da du es wahrscheinlich so deklariert hast geht es von 0-499 (sagen wir Standard Wert), aber MAX_PLAYERS ist 500 also über der Grenze.
Du wolltest wohl igInfo3[playerid] schreiben ![]()
mfg. ![]()
bzw. was kann das überhaupt außer sehen wie lange eine funktion dauert oder was nutz es mir?
Genau das macht es und nein, mehr kann es nicht.
ZitatThis plugin can count how many times each of functions is called and how much time it takes to execute. This information is outputted in one of the currently supported formats: HTML , XML or and plain text.
mfg. ![]()
Eine Deagle?
Ja.... ![]()
Ich wollte nämlich im Script die Waffe, welche der Spieler in der Hand hält abfragen und dann als Textdraw setzen.
Ja...kannst du doch dadurch machen...?! ![]()