Beiträge von root
-
-
Bau mal diese Printfs noch ein:
Code
Alles anzeigennew pHouseIDquery[128]; format(pHouseIDquery, sizeof(pHouseIDquery), "SELECT * FROM houses"); mysql_function_query(dbhandle, pHouseIDquery, true, "",""); /// ???? new num_fields,num_rows; cache_get_data(num_rows,num_fields,dbhandle); if(!num_rows)return 1; for(new i=0; i<num_rows; i++) { hInfo[i][h_x]=cache_get_field_content_float(i, "h_x", dbhandle); hInfo[i][h_y]=cache_get_field_content_float(i, "h_y", dbhandle); hInfo[i][h_z]=cache_get_field_content_float(i, "h_z", dbhandle); hInfo[i][hi_x]=cache_get_field_content_float(i, "hi_x", dbhandle); hInfo[i][hi_y]=cache_get_field_content_float(i, "hi_y", dbhandle); hInfo[i][hi_z]=cache_get_field_content_float(i, "hi_z", dbhandle); printf("Haus %i geladen.",i); }
und:
Code
Alles anzeigenif(pInfo[playerid][pSpawn] == 1) // { printf("Players-Haus: %i",pInfo[playerid][pHouseID]); printf("Coords: %f %f %f", hInfo[pInfo[playerid][pHouseID]][hi_x], hInfo[pInfo[playerid][pHouseID]][hi_y], hInfo[pInfo[playerid][pHouseID]][hi_z]); if(hInfo[pInfo[playerid][pHouseID]][hi_x] != 0.0) { print("In Haus Spawn"); //spawn in house //SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[pInfo[playerid][pHouseID]][hi_x], hInfo[pInfo[playerid][pHouseID]][hi_y], hInfo[pInfo[playerid][pHouseID]][hi_z], 0.0,0,0,0,0,0,0 ); SetPlayerPos(playerid, hInfo[pInfo[playerid][pHouseID]][hi_x],hInfo[pInfo[playerid][pHouseID]][hi_y],hInfo[pInfo[playerid][pHouseID]][hi_z]); SetPlayerInterior(playerid, hInfo[pInfo[playerid][pHouseID]][h_interior]); SetPlayerVirtualWorld(playerid, pInfo[playerid][pHouseID]); SpawnPlayer(playerid); } else { print("Vor Haus Spawn"); // spawn infront of house SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[pInfo[playerid][pHouseID]][h_x], hInfo[pInfo[playerid][pHouseID]][h_y], hInfo[pInfo[playerid][pHouseID]][h_z], 0.0,0,0,0,0,0,0 ); //SetPlayerPos(playerid, hInfo[pInfo[playerid][pHouseID]][h_x],hInfo[pInfo[playerid][pHouseID]][h_y],hInfo[pInfo[playerid][pHouseID]][h_z]); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SpawnPlayer(playerid); } return 1; }
Was wird in der Konsole ausgegeben?
-
@ reaL das wird an anderer stelle benutzt um die Häuser icons zu platzieren, da funktioniert es. also ist es vorhanden, evtl sucht er aber beim spawnen nicht an der richtigen stelle i nder datenbank..
Ja ich hab das doppelt. Das hatte ich ja gemacht weil man immer am falschen haus gespawnt ist. wenn ich das jetzt rauswerfe ist das speichern der House id bei Player info doch unnötig oder?
Denn so wie es war hat ja enter und exit imer funktioniert, nur beim aus und wieder einloggen buggte es. aber beim aus oder einloggen wirds nichts gespeichert. die häuser speichern nur beim server beenden.
Da ich nicht verstehe wie das mit dem ganzen [ i ] gedönz funktionert dachte ich mir, ich bau das so dass beim login (also nur be mersten spawn) die hausliste abgefragt wird. Also ich habe extra die hausid zusätzlich im player gespeichert (nur wenn haus kauft oder verkauft). Da ic hweiss dass der player beim login geladen ist ich dort die hausid abfragen kann. nun wollte ich das "verknüpfen" mit meinen häusern. also in meinem mysql gibt es "players" und "houses" ich wollte jetzt dass bei houses nach der ID gesucht wird, die ich extra beim player gespeichert habe.
Da hab ich aber einfach im script was kopiert und zusammen geschustert. ich hab halt keine ahnungIst es performane mässig sehr nachteilig beim login die häuser abzufragen? Ich will ungern das häuser laden im gamemodeinit verpfuschen. deswegen woltle ich einfach nur den mysql lese fehler ausmerzen:
[16:39:29] [WARNING] CMySQLResult::GetRowDataByName - field not found ("hi_x")
[16:39:29] [WARNING] CMySQLResult::GetRowDataByName - field not found ("hi_y")
[16:39:29] [WARNING] CMySQLResult::GetRowDataByName - field not found ("hi_z")So wie du es hattest wird bei jedem Spieler der sich einloggt die Daten neu aus der Datenbank geholt.
Das ist unnötig da du diese Information ja nur 1x aus der Datenbank holen musst.
Die HausID kannst du so lassen, das Verwende ich beim Spawnen dann.Hast du es so probiert wie ich es gemacht habe?
-
Also ich hab in der zwischenzeit das mal geändert. Da ich das gefühl hatte Inofrmatonen gehen verloren, hab eich einfach beim player noch die hausid gespeichert (die ist auch gleichzeit virtuelle welt)
Dann muss ich jetzt nochmal ein altes Backup anschauen um das zu überprüfen. Soweit ich noch rausgefunden hatte spawnt man aber nicht willkürlich, sondern am ersten haus der liste(aller häuser)
Naja, jetzt sieht es eh anders aus.
Nach dem Umschreiben habe ich das Prob, dass er nicht auslesen will. mysql macht n fehlercode : field not found ("hi_y")was hab ich da verdödelt?! Ich habs aus dem part an dem alle häuser geladen werden kopiert. aber irgendwie kann ers nicht auslesen.
if(pInfo[playerid][pSpawn] == 1) // { new pHouseIDquery[128]; format(pHouseIDquery, sizeof(pHouseIDquery), "SELECT * FROM houses"); mysql_function_query(dbhandle, pHouseIDquery, true, "",""); /// ???? new num_fields,num_rows; cache_get_data(num_rows,num_fields,dbhandle); //if(!num_rows)return 1; for(new i=0; i<num_rows; i++) { new phid=pInfo[playerid][pHouseID]; hInfo[phid][h_x]=cache_get_field_content_float(i, "h_x", dbhandle); hInfo[phid][h_y]=cache_get_field_content_float(i, "h_y", dbhandle); hInfo[phid][h_z]=cache_get_field_content_float(i, "h_z", dbhandle); hInfo[phid][hi_x]=cache_get_field_content_float(i, "hi_x", dbhandle); hInfo[phid][hi_y]=cache_get_field_content_float(i, "hi_y", dbhandle); hInfo[phid][hi_z]=cache_get_field_content_float(i, "hi_z", dbhandle); if(hInfo[i][hi_x] != 0.0) { //spawn in house //SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[i][hi_x], hInfo[i][hi_y], hInfo[i][hi_z], 0.0,0,0,0,0,0,0 ); SetPlayerPos(playerid, hInfo[phid][hi_x],hInfo[phid][hi_y],hInfo[phid][hi_z]); SetPlayerInterior(playerid, hInfo[phid][h_interior]); SetPlayerVirtualWorld(playerid, pInfo[playerid][pHouseID]); SpawnPlayer(playerid); } else { // spawn infront of house SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[phid][h_x], hInfo[phid][h_y], hInfo[phid][h_z], 0.0,0,0,0,0,0,0 ); //SetPlayerPos(playerid, hInfo[i][h_x],hInfo[i][h_y],hInfo[i][h_z]); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SpawnPlayer(playerid); } return 1; }
Man spawnt, allerdings beim nullpunkt der karte..
So wie ich das sehe gehst du bei jedem Spawn durch alle Häuser durch und setzt deren Koordinaten. Das ist nicht der Sinn der Sache denke ich. Mach es lieber so:
Bei OnGameModeInit 1x alle Häuser aus der Datenbank ins Script "laden".
Code
Alles anzeigennew pHouseIDquery[128]; format(pHouseIDquery, sizeof(pHouseIDquery), "SELECT * FROM houses"); mysql_function_query(dbhandle, pHouseIDquery, true, "",""); /// ???? new num_fields,num_rows; cache_get_data(num_rows,num_fields,dbhandle); if(!num_rows)return 1; for(new i=0; i<num_rows; i++) { hInfo[i][h_x]=cache_get_field_content_float(i, "h_x", dbhandle); hInfo[i][h_y]=cache_get_field_content_float(i, "h_y", dbhandle); hInfo[i][h_z]=cache_get_field_content_float(i, "h_z", dbhandle); hInfo[i][hi_x]=cache_get_field_content_float(i, "hi_x", dbhandle); hInfo[i][hi_y]=cache_get_field_content_float(i, "hi_y", dbhandle); hInfo[i][hi_z]=cache_get_field_content_float(i, "hi_z", dbhandle); }
Danach beim Spawn:Code
Alles anzeigenif(pInfo[playerid][pSpawn] == 1) // { if(hInfo[pInfo[playerid][pHouseID]][hi_x] != 0.0) { //spawn in house //SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[pInfo[playerid][pHouseID]][hi_x], hInfo[pInfo[playerid][pHouseID]][hi_y], hInfo[pInfo[playerid][pHouseID]][hi_z], 0.0,0,0,0,0,0,0 ); SetPlayerPos(playerid, hInfo[pInfo[playerid][pHouseID]][hi_x],hInfo[pInfo[playerid][pHouseID]][hi_y],hInfo[pInfo[playerid][pHouseID]][hi_z]); SetPlayerInterior(playerid, hInfo[pInfo[playerid][pHouseID]][h_interior]); SetPlayerVirtualWorld(playerid, pInfo[playerid][pHouseID]); SpawnPlayer(playerid); } else { // spawn infront of house SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[pInfo[playerid][pHouseID]][h_x], hInfo[pInfo[playerid][pHouseID]][h_y], hInfo[pInfo[playerid][pHouseID]][h_z], 0.0,0,0,0,0,0,0 ); //SetPlayerPos(playerid, hInfo[pInfo[playerid][pHouseID]][h_x],hInfo[pInfo[playerid][pHouseID]][h_y],hInfo[pInfo[playerid][pHouseID]][h_z]); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SpawnPlayer(playerid); } return 1; }
-
Ups, garnicht gemerkt..
Also nochmal: Wenn man ein Haus hat und sich einloggt spawnt man in diesem. Wenn man dann /exit macht, ladet man am falschen haus. Also scheint beim einloggen das script nicht zu wissen wo man reingegangen ist. Wo ist der Fehler ??!
ocmd:exit(playerid,params[]){ for(new i=0; i<sizeof(hInfo); i++) { if(GetPlayerVirtualWorld(playerid)!=i)continue; if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[i][hi_x],hInfo[i][hi_y],hInfo[i][hi_z]))continue; SetPlayerPos(playerid, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); return 1; } return 1;}
und bei OnPlayerlogin
if(pInfo[playerid][pSpawn] == 1) // BUG { for(new i=0; i<sizeof(hInfo); i++) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name,sizeof(name)); if(!hInfo[i][h_id])continue; if(!strlen(hInfo[i][h_owner]))continue; if(!strcmp(hInfo[i][h_owner],name, true))continue; if(hInfo[i][hi_x] != 0.0) { //spawn in house //SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[i][hi_x], hInfo[i][hi_y], hInfo[i][hi_z], 0.0,0,0,0,0,0,0 ); SetPlayerPos(playerid, hInfo[i][hi_x],hInfo[i][hi_y],hInfo[i][hi_z]); SetPlayerInterior(playerid, hInfo[i][h_interior]); SetPlayerVirtualWorld(playerid, i); SpawnPlayer(playerid); } else { // spawn infront of house SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z], 0.0,0,0,0,0,0,0 ); //SetPlayerPos(playerid, hInfo[i][h_x],hInfo[i][h_y],hInfo[i][h_z]); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SpawnPlayer(playerid); } } //return 1; } }
Debugge mal beim Ausloggen und Einloggen die Koordinaten, Virtualworld ect. von dem Haus.
Da du nach dem Einloggen im Falschen Haus landest kann der Fehler beim Speichern auch passieren. -
Kann mir jemand bei meinem Haus system helfen? bzw Spawn..
Ich habe ein Haussys nach mrmonats tutorial. nun soll man ja auch am haus spawnen. so weit so gut, spawnt man in "seinem" interior, kommt man mit /exit an einem falschen haus raus. (nur wenn man dort spawnt, normal klappt es)hier mal der exit cmd:
ocmd:exit(playerid,params[]){ for(new i=0; i<sizeof(hInfo); i++) { if(GetPlayerVirtualWorld(playerid)!=i)continue; if(!IsPlayerInRangeOfPoint(playerid,2,hInfo[i][hi_x],hInfo[i][hi_y],hInfo[i][hi_z]))continue; SetPlayerPos(playerid, hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); return 1; } return 1;}
Und hier wenn man sich eingeloggt hat
if(pInfo[playerid][pSpawn] == 1){ for(new i=0; i<sizeof(hInfo); i++) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name,sizeof(name)); if(!hInfo[i][h_id])continue; if(!strlen(hInfo[i][h_owner]))continue; if(!strcmp(hInfo[i][h_owner],name, true))continue; if(hInfo[i][hi_x] != 0.0) { //spawn in house //SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[i][hi_x], hInfo[i][hi_y], hInfo[i][hi_z], 0.0,0,0,0,0,0,0 ); SetPlayerPos(playerid, hInfo[i][hi_x],hInfo[i][hi_y],hInfo[i][hi_z]); SetPlayerInterior(playerid, hInfo[i][h_interior]); SetPlayerVirtualWorld(playerid, i); SpawnPlayer(playerid); } else { // spawn infront of house SetSpawnInfo( playerid, 0, pInfo[playerid][pSkin], hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z], 0.0,0,0,0,0,0,0 ); //SetPlayerPos(playerid, hInfo[i][h_x],hInfo[i][h_y],hInfo[i][h_z]); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SpawnPlayer(playerid); } } //return 1; } } else { TogglePlayerControllable(playerid,0); OnTutorialEnter(playerid); return 1; } }
Habe leider weig bis kein verständnis für alle passagen die irgend was mit "i" oder "++" zu tun haben XD das tutvideo war nur zum abschreiben gut^^
Hat jemand eine Idee warum das hier schief läuft`?
Kannst du bitte den Code noch richtig einrücken? Sonst wird es schwer dir zu helfen. (Über BBCode einfügen)
Grüsse
TheBlueFireKing -
Den Windows Update cache zu leeren hat bei mir auch schon geholfen:
Manually Purge the Update Cache
The first step is to temporarily turn off the Windows Update service (to stop background downloads). Open the Command Prompt, type the
net stop wuauserv command and press Enter.Open File Explorer and go to View > Folder Options. Select the Show hidden files, folder, and drives radio button and click on Apply to enable the display of hidden files on your computer.
Once done, navigate to C:\Windows\SoftwareDistribution\Download and then delete the content of the Download folder.
Open a new Command prompt window and run the
net start wuauserv command to restart theWindows Update service.
Grüsse
TheBlueFireKing -
-
Ich nehme an "atme" ist ein array:
Code
Alles anzeigenocmd:atmgps(playerid) { //if(!IsPlayerConnected(playerid) || sInfo[playerid][eingeloggt] == 0) return SendClientMessage(playerid,ROT,"Du musst zuerst Eigeloggt sein!"); //if(sInfo[playerid][pJob] != 8) return SendClientMessage(playerid,ROT,"Du bist kein Geld Lieferant!"); //if(!geldl[playerid][geldl_Aktiv]) return SendClientMessage(playerid,ROT,"Du bist nicht Im Dienst!"); new zone[MAX_ZONE_NAME],string[125]; for(new i = 0; i < sizeof(atme); i++) { GetCord2DZone(atme[i][atm_x],atme[i][atm_y], zone, MAX_ZONE_NAME); format(string,sizeof(string),"ATM %d Standort: %s\n%s",i,zone,string); } ShowPlayerDialog(playerid,DIALOG_ATM_NAVI,DIALOG_STYLE_MSGBOX,"ATM Standorte",string,"Ok",""); return 1; }
-
Code
Alles anzeigenPutPlayerInVehicle(playerid,spawncar,0); if(IsPlayerInVehicle(playerid,spawncar)) { PutPlayerInVehicle(playerid,spawncar2,0); } else if(IsPlayerInVehicle(playerid,spawncar2)) { PutPlayerInVehicle(playerid,spawncar3,0); } else if(IsPlayerInVehicle(playerid,spawncar3)) { PutPlayerInVehicle(playerid,spawncar4,0); }
Eher so.
Schau dir sonst den Syntax von IsPlayerInVehicle im Wiki an, -
TTL ist die Time To Life. Das verhindert das Pakete ewig im Internet rumschwirren.
Jede "Station" zwischen dir und deinem Ziel verringert die TTL um 1. Ist sie bei 0 angekommen wird das Paket verworfen.
Der Wert der TTL spielt an sich keine große Rolle. Er bestimmt ja lediglich nur wie lange dein Paket "überleben" darf. Bei dem Befehlt ping kannst du diesen auch via Argument angeben.Schau dir ansonsten mal den Befehl tracert an. Dann siehst du die einzelnen "Stationen" zwischen dir und dem Ziel.
Grüsse
TheBlueFireKing -
Kannst es mal mit GameRanger probieren.
-
Hallo zusammen.
Bin auf der suche nach einem quasi "Home Server"
Da ich hier noch G.Skill RipjawZ F3-12800CL10Q2-64GBZL F3-12800CL10Q2-64GBZ 32 GB 4 x 8 GB DDR3-RAM 1600 MHz CL10 RAM rumliegen habe sollten diese auch eingebaut werden.
Der "Server" wird nicht dauerhaft im 24/7 betrieb laufen.
Wird von mir auch zwecks test Virtualisierungen Verwendet und sollte deshalb einen entsprechend starken Prozessor bieten.Ausser dem RAM ist nichts vorhanden. Da ich ein Schweizer bin vorzugsweise Schweizer Shops aber wenn es Billiger ist, ist auch Deutschland okay.
Vielleicht kennt sich hier ja der ein oder andere aus und kann mir da was zusammen Basteln.
Freundliche Grüsse
TheBlueFireKing -
-
Das einzige was mir einfällt wäre die entsprechende Endung (zb .raw) ganz aus dem Regedit zu löschen also den Ordner.
Jedoch musst du dann beim Programmstart da wo du das Programm auswählst IMMER den Hacken unten rausnehmen. (Dateityp immer mit dem auswähltenProgramm öffnen).Ob was anderes geht ist mir auch nicht bekannt.
Freundliche Grüsse
TheBlueFireKing -
Danke geht jetzt
-
Wie sieht den der Ordner aus?
Evtl ../ vergessen? -
@officalknight: Das sind einfach nur Zwei Buttons die den Inhalt umschalten, die haben keinen besonderen Namen^^
@TheBlueFireKing: Im Normalfall von dem Verzeichnis in dem Das Skript aufgerufen wurde (bzw dem Verzeichnis des Skriptes welches die Datei einbindet). Zur not kannst du via getcwd das aktuelle Arbeitsverzeichnis ermitteln.
Wo liegt denn die UploaddateiHat der Ordner Rechte (Linux => chmod)
Der Ordner hat 777 Rechte und ist in der http Gruppe und mein Benutzer ist der Besitzter.
Will die Upgeloadete Datei vom Temp Ordner (/var/services/tmp/phpVeHFgh) in den Ordner Upload Verschieben lassen der im Hauptverzeichnis liegt.
Perzeight der mir auch an das ich noch im Haupt Ordner bin wo das Script liegt. Geht jedoch immernochnicht.
PHPmove_uploaded_file ( $_FILES['uploaddatei']['tmp_name'] , '/Upload/'. $_FILES['uploaddatei']['name'] );
-
Hab mal kurz ne PHP Frage. Von welchem Verzeichnis geht das Script aus?
Hab jetzt ein simples Uploadscript und muss ja nun das Temoräre File moven. Hab das bis jetzt so:PHPmove_uploaded_file ($_FILES['uploaddatei']['tmp_name'] ,'web/Schule/Upload/'. $_FILES['uploaddatei']['name'] );
Jedoch wird nichts gemoved. Verwende meinen NAS Server der hier Zuhause steht zum testen.
Wenn ich auf diesen Connecte ist der Pfad bis zum Upload Ordner der obrige.
Hoffe es kann mir einer Helfen. -
1 Frage ,
Ich hab mir dein Script mal runtergeladen & bin drauf Conected.
Ich sag mal nur 1 ich sehe nichts keine Feature Befehle garnichts auser /stats hahaLesen Bildet. Es beinhaltet wie gesagt auch nicht mehr.