So hab ich es Bereits, hilft leider nix.
ja ich weiß das du es so hast,
das ist aber der fehler nicht die lösung
du machst eine Variable mit [][] und benutzt dann nur [] = Fehler
So hab ich es Bereits, hilft leider nix.
ja ich weiß das du es so hast,
das ist aber der fehler nicht die lösung
du machst eine Variable mit [][] und benutzt dann nur [] = Fehler
Playerid, wird mir Relativ wenig bringen, wenn das keine Spielerbezogene Variable ist.
Diese ist und Bleibt Server Bezogen.
Registred ist zb so Gedacht, Wenn sich ein Spieler Registriert, wird diese Variable einfach nur 1x Hochgerechnet, und somit kann ich sehen, zB wieviele Commands, Registrierungen der Server hatte etc.
Dann mach sie auch so
new ServerInfo[MAX_PLAYERS][sInfo];
2 dimensionales array...
Die äußere for(new i=0; i<sizeof(TaxiVehs); i++) schleife scheint auf den ersten Blick sinnlos zu sein, da das "i" auch nirgends verwendet wird. Dies verursacht auch den Spam Mit dem break; brichst du nur die innere schleife aber nicht die äußere
also die äußere for(new i=0; i<sizeof(TaxiVehs); i++) schleife entfernen in beiden code teilen (insgesamt 3 mal)
Scheint so, der geht wohl global durch alle Server durch:
ZitatAlles anzeigen-$ cat server_log.txt | grep '37.54.112.111'
[16:22:29] BAD RCON ATTEMPT BY: 37.54.112.111
[20:22:49] BAD RCON ATTEMPT BY: 37.54.112.111
[20:47:40] BAD RCON ATTEMPT BY: 37.54.112.111
[20:56:57] BAD RCON ATTEMPT BY: 37.54.112.111
[20:58:47] BAD RCON ATTEMPT BY: 37.54.112.111
[22:09:23] BAD RCON ATTEMPT BY: 37.54.112.111
Hei das geht irgendwie nicht.
nicht einfach drauf los kopieren, sondern erst einmal lesen:
...
Ich denke aber das stimmt nicht, da die y Werte viel zu nahe zusammen liegen.
Achte beim speichern darauf: die Ecke links unten(wenn man auf die Karte schaut) ist es die save-pos für das minimum und die Ecke rechts oben(wenn man auf die Karte schaut) ist es die Position mit den max werten.
Beides geht, hab es nur editiert weil es so noch besser geht. Hab deinen sinnlosen format Befehl erst nicht gesehen
EDIT:
lösche: new name;
und ersetze sscanf(params, "s", name) mit sscanf(params, "s[50]", string)
und lösche format(string, sizeof(string), "%s", name);
Laut deinen coordinaten müsste es so aussehen:
AddPlayerClass(240,951.9411,-1130.1935,23.8728,267.5297,0,0,0,0,0,0); // Ecke1
AddPlayerClass(162,806.9824,-1130.2506,23.8681,209.7190,0,0,0,0,0,0); // Ecke2
-> SetPlayerWorldBounds(playerid,951.9411,806.9824,-1130.1935,-1130.2506);
Ich denke aber das stimmt nicht, da die y Werte viel zu nahe zusammen liegen.
Achte beim speichern darauf: die Ecke links unten(wenn man auf die Karte schaut) ist es die save-pos für das minimum und die Ecke rechts oben(wenn man auf die Karte schaut) ist es die Position mit den max werten.
case 1:{SendClientMessage(playerid, ROT, "Job: /basis1");
case 2:{SendClientMessage(playerid, ROT, "Job: /basis2");
case 3:{SendClientMessage(playerid, ROT, "Job: /basis3");
case 4:{SendClientMessage(playerid, ROT, "Job: /basis4");
case 5:{SendClientMessage(playerid, ROT, "Job: /basis5");
zu
case 1:{SendClientMessage(playerid, ROT, "Job: /basis1"); }
case 2:{SendClientMessage(playerid, ROT, "Job: /basis2"); }
case 3:{SendClientMessage(playerid, ROT, "Job: /basis3"); }
case 4:{SendClientMessage(playerid, ROT, "Job: /basis4"); }
case 5:{SendClientMessage(playerid, ROT, "Job: /basis5"); }
^
man escaped auch nur bei SELECT querys
definitiv nicht wahr
so sollte das ganze funktionieren, ohne verwendung zusätzlicher timervariablen da sich kein timer von selbst wiederholt
public OnPlayerSpawn(playerid)
{
SetTimerEx("KHCountdown", 1000, 0, "ii", playerid, 120); // startwert 120
}
forward KHCountdown(playerid, KHS);
public KHCountdown(playerid, KHS)
{
if(KHS > 0)
{
// Weiter runterzählen
SetTimerEx("KHCountdown", 1000, 0, "ii", playerid, (KHS-1));
}
else
{
if(KHS == 0)
{
// Timer fertig/ bei 0, hier den code einfügen was bei 0 passieren soll
}
}
}
Hier genauer:
Server hier downloaden: http://sa-mp.com/download.php (Windows / Linux)
Es haben sich keine Parameter bei bereits vorhandenen Funktionen geändert, also musst du nur die samp-server.exe, announce.exe und samp-npc.exe austauschen(bei linux sind die namen etwas anders) und den Server starten.
Falls du zusätzlich auch noch Funktionen von 0.3x nutzen willst, musst du zusätzlich noch den Windows Server hier downloaden: http://sa-mp.com/download.php
Nach dem Download:
-Entpacken
-in den entpackten Dateien den /pawno/includes ordner öffnen
-alle Dateien in diesem ordner in dein bisheriges Serververzeichnis unter /pawno/includes kopieren
1:
new Text:MeinSprite = TextDrawCreate(0.0, 0.0, "LD_BEAT:circle"); //links oben anfange
TextDrawTextSize(MeinSprite, 640.0 , 480.0); // über den ganzen bildschirm
TextDrawFont(MeinSprite , 4);
das "LD_BEAT:circle" musst du noch mit dem richtigen Bild ersetzen
2:
Hab ein include gemacht, extra für dynamische Menüs: http://forum.sa-mp.com/showthread.php?t=407045
new tmp[12];
while(mysql_fetch_row(tmp, "|", SQL))
{
new id = strval(tmp)-1;
format(string,256,"%s%s\n",string,FirmenInfo[id][FirmenName]);
ShowPlayerDialog(playerid,diaJobVertrag,DIALOG_STYLE_MSGBOX,"Firmen",string,"Ok","");
}
könnte so hinhauen, sofern die Funktionen auch das machen was ich vermute
@[DT]Beavis
bcmd:firma(playerid,params[])
{
if(GetPVarInt(playerid,"loggedin")!=1)return SendClientMessage(playerid,cRed,"Du bist nicht eingeloggt!");
if(PlayerInfo[playerid][Gemutet]!=0) return SendClientMessage(playerid,cWarn,"Du bist gemutet!");
new string[256],query[128];
format(query,128,"SELECT `Firmenid` FROM `FirmenUser` WHERE `Name` = '%s'",PlayerInfo[playerid][Name]);
mysql_query(query, (-1), (0), SQL);
mysql_store_result(SQL);
while(mysql_retrieve_row(SQL))//lauf durch alle zeilen durch
{
new tmp[12];
mysql_fetch_field_row(tmp, "Firmenid", SQL);
new id = strval(tmp)-1;
format(string,256,"%s%s\n",string,FirmenInfo[id][FirmenName]);
ShowPlayerDialog(playerid,diaJobVertrag,DIALOG_STYLE_MSGBOX,"Firmen",string,"Ok","");
}
mysql_free_result(SQL);
return 1;
}
so, sofern das mit deiner mysql version auch kompatibel ist
Edit: SQL variable hinzugefügt in den funktionen
Daran liegt es nicht er lädt es richtig aber die Namen kommen nicht
Es wird auch in der Datenbank mit den +1 dazu gerechnet
Aber ich müsste da einfach das id +1 zugeben damit es richtig klappt...
Danke für den hinweis^^
Naja im array ist die firma an der stelle "i" drin und du speicherst "i+1" in der mysql datenbank und anschließend holst du den wert aus der datenbank und setzt ihn im array wieder ein, also eins zu hoch. Kann dein "Daran liegt es nicht" nicht wirklich verstehen.
@[DT]Beavis
du speicherst
FirmenInfo[i][FirmenID]=i+1; bei CreateFirma
= Die firma ist im array-Wert i aber du speicherst i+1
heißt du musst bei /firma dein
new id = mysql_fetch_int(SQL);
durch
new id = (mysql_fetch_int(SQL)-1);
ersetzen
quasi die 1 wieder abziehen
oder eben bei CreateFirma das +1 entfernen
Wenn der webserver auf dem selben Server liegt wie der MySQL Server, dann benutze "localhost" bzw. "127.0.0.1" als host
Wenn der webserver extern auf einen anderen Server liegt, dann stell sicher das der MySQL Server Verbindungen von außerhalb bzw. dieser IP akzeptiert
Ab einer Stelle kommt nichts mehr ? print ist die Lösung um rauszufinden wo genau das Script anhält.
mal innerhalb der if abfrage ein print um zu testen ob das Script überhaupt bis in die if-Abfrage hinein funktioniert:
if(minute==3&&sec==0)
{
print("Jetzt sind es 3MIN und 0SEK, if abfrage funktioniert");
//rest vom code
}
Wenn das nciht klappt dann wird deine Funktion wohl nie mit 3 min und 0 Sekunden ausgeführt, Verzögerung vom Timer das manche Sekunden vll. ausgelassen werden ?
if(GetPVarInt(playerid,"Fraktion") == 1 || GetPVarInt(playerid,"Fraktion") == 2) für oder und das == für den Vergleich