geh unter OnGameModeInit und schreibe das rein:
mysql_debug(1);
Danach registrier dich noch einmal, dann sollte in deinem Server Ordner eine mysql_log sein
Schick uns was ganz unten steht ![]()
geh unter OnGameModeInit und schreibe das rein:
mysql_debug(1);
Danach registrier dich noch einmal, dann sollte in deinem Server Ordner eine mysql_log sein
Schick uns was ganz unten steht ![]()
Wenn ich mich recht an die Regeln errinnere gibt es dafür keine Verjährungsfrist ![]()
Ist das euer ernst? das ist die Map von Shenzo, nur ein wenig geändert. Schon ein wenig arm zu behaupten, das sei eure.
An alle die mir nicht glauben, hier könnt ihr sie Runterladen.
[ MAP ][Veröff.] Shenzos Maps
Was soll ich dazu sagen, ich habe ehrlich gesagt nicht gewusst, das diese Map nicht von unserem Mapper stammt, geschweige denn
wusste ich davon, nun ja jetzt weiß ich auch warum er nicht wolllte das ich Sie vorstelle. Ich entschuldige mich hiermit bei allen beteiligten, konnte ich
nicht wissen. Ich hoffe das ihr dies versteht, ich werde mich jetzt mal mit ihm darüber Unterhalten!
Map Wird entfernt.
Das ist kein Trick/Bug das ist gewollt ![]()
Hallo liebe Community,
da ich nun mein Root von Windows auf Linux geupdatet habe, musste ich natürlich auch den Server Updaten.
So nun habe ich alles gemacht, Server läuft Stabil, aber komischerweise joinen alle Bots und danach Leaven 3 stück einfach wieder ?
Dabei habe ich MAX_NPC auf 20 in der cfg und vom Script lasse ich auch 20 setzten. Ich lasse nur 8 Bots Connecten und 3 verlassen
den Server wieder.
Bot Dateien sind alle vorhanden... Kann mir jemand sagen was der Fehler sein könne ?..
Greetz.
//PUSH
Gefällt mir 8/10 ![]()
HALT STOP JETZT REDE ICH!
Was hat jetzt die [64] zwischen den Params verloren? Wer hat sie dahin gepackt?!
Die ist nämlich falsch
Nein ist sie Nicht, die stehen für den string ![]()
Zeig den Stock wo du es Lädst/Updatest ![]()
Warum denn <= ? das verstehe ich nicht ... das heißt doch "kleiner oder gleich", oder ... ?
Kannst auch abfragen ob es 0 ist, spielt keine Rolle, ich mache dies so aus gewohnheit, weil wenn der spieler eine Zahl eingibt wo - vor steht, kommt keine
Error Meldung ![]()
einfach if(strval(inputtext) <= 0)return // Hier der Error dialog ^^ abfragen ![]()
Was meinste genau ich mach das so z.b
Die Errors erstehen, weil du das , hinter dem Eintrag vergessen hast ![]()
GetVehicleZAngle(carid,vr);
müsste doch
GetVehicleZAngle(AHC[carid],vr);
sein.
carid ist ja nur der Index, und nicht die vehicleid, die steht in AHC[carid].
Ändert aber nichts daran, das die Fahrzeug Rotation nicht die ist, die in der DB steht... bzw komischerweise steht
bei Car ID 6 der Wert hier in der DB :
180.099197
und der hier wird ausgegeben:
180.092864 Woher bekommt der diesen Wert ? -.-
//EDIT Hab den Fehler gefunden ![]()
Schönen guten Abend,
ich habe jetzt ein Dynamisches Autohaussystem erstellt, es funktioniert Laden/Speichern/Erstellen etc.. ich habe nurnoch ein kleines Problem mit
der Rotation des Fahrzeuges.. Die Fahrzeuge stehen zwar an der richtigen Position, aber die Rotation ist nicht die Selbe wie sie in der Datenbank steht.
Wenn ich mich in ein Fahrzeug setzte lasse ich die ZAngle printen & beim austeigen auch.
[20:04:24] Rotation: 52.694366
[20:04:34] ZAngel: 51.126998
Die neue Rotation wird auch in die Datenbank eingetragen & so läd er aus:
[20:06:36] Car ID 3 Kosten: 2456$ ModelID: 560 Rotation: 51.126998 geladen
Aber Ingame steht das Fahrzeug nicht so wie es gespeichert wurde beim umparken ? -.-
Code:
WIe ich es umparke:
SendClientMessage(playerid,Gelb,"Fahrzeug umgeparkt.");
new carid = GetPVarInt(playerid,"AHCCARID"),Float:vx,Float:vy,Float:vz,Float:vr,string[256];
GetVehicleZAngle(carid,vr);
printf("ZAngel: %f",vr);
GetPlayerPos(playerid,vx,vy,vz);
AutoHausCar[carid][posx] = vx;
AutoHausCar[carid][posy] = vy;
AutoHausCar[carid][posz] = vz;
AutoHausCar[carid][posr] = vr;
format(string,sizeof(string),"UPDATE `AutoHausCars` SET Modelid='%d',Kosten='%d',posx='%f',posy='%f',posz='%f',posr='%f' WHERE id = '%d'",
AutoHausCar[carid][Modelid],
AutoHausCar[carid][Kosten],
AutoHausCar[carid][posx],
AutoHausCar[carid][posy],
AutoHausCar[carid][posz],
AutoHausCar[carid][posr],
AutoHausCar[carid][cID]);
mysql_query(string);
Wie ich es auslesen lasse:
stock LoadAHC()
{
new query[256];
mysql_query("SELECT * FROM `AutoHausCars`");
mysql_store_result();
for(new i; i<mysql_num_rows(); i++)
{
if(i>=MAX_AHC)break;
mysql_retrieve_row();
mysql_fetch_field_row(query,"id"); AutoHausCar[i][cID] = strval(query);
mysql_fetch_field_row(query,"Modelid"); AutoHausCar[i][Modelid] = strval(query);
mysql_fetch_field_row(query,"Kosten"); AutoHausCar[i][Kosten] = strval(query);
mysql_fetch_field_row(query,"posx"); AutoHausCar[i][posx] = floatstr(query);
mysql_fetch_field_row(query,"posy"); AutoHausCar[i][posy] = floatstr(query);
mysql_fetch_field_row(query,"posz"); AutoHausCar[i][posz] = floatstr(query);
mysql_fetch_field_row(query,"posr"); AutoHausCar[i][posr] = floatstr(query);
AHC[i] = CreateVehicle(AutoHausCar[i][Modelid],AutoHausCar[i][posx],AutoHausCar[i][posy],AutoHausCar[i][posz],AutoHausCar[i][posr],0,0,-1);
printf("Car ID %d Kosten: %d ModelID: %d Rotation: %f geladen",AutoHausCar[i][cID],AutoHausCar[i][Modelid],AutoHausCar[i][Kosten],AutoHausCar[i][posr]);
}
mysql_free_result();
}
Wie ich es speichere:
new carid = GetPVarInt(playerid,"AHCID"),Float:px1,Float:py1,Float:pz1,Float:vr;
GetVehicleZAngle(carid,vr);
printf("Rotation: %f",vr);
GetPlayerPos(playerid,px1,py1,pz1);
AutoHausCar[carid][cID] = carid;
AutoHausCar[carid][Modelid] = GetPVarInt(playerid,"AHCM");
AutoHausCar[carid][Kosten] = GetPVarInt(playerid,"AHCK");
AutoHausCar[carid][posx] = px1;
AutoHausCar[carid][posy] = py1;
AutoHausCar[carid][posz] = pz1;
AutoHausCar[carid][posr] = vr;
format(string,sizeof(string),"INSERT INTO `AutoHausCars` (`id`,`Modelid`,`Kosten`,`posx`,`posy`,`posz`,`posr`) VALUES(%d,%d,%d,%f,%f,%f,%f)",AutoHausCar[carid][cID],AutoHausCar[carid][Modelid],AutoHausCar[carid][Kosten],AutoHausCar[carid][posx],AutoHausCar[carid][posy],AutoHausCar[carid][posz],AutoHausCar[carid][posr]);
mysql_query(string);
SetPlayerPos(playerid,px1,py1,pz1+2);
AHC[carid] = CreateVehicle(AutoHausCar[carid][Modelid],AutoHausCar[carid][posx],AutoHausCar[carid][posy],AutoHausCar[carid][posz],AutoHausCar[carid][posr],0,0,-1);
return 1;
Kann mir jemand sagen wodran es liegt ?
Installier mal das Plugin crashdetect ![]()
Alles anzeigenEs kann ja bei dir auch nur 0 oder 1 zurückgegeben werden.
Weisst du überhaupt was ein Index bei einem Array ist ? Sonst nochmal in die Materia Arrays einlesen.
Der Index ist bei GetAHCIndex hinter der Variable a.
//Edit:
Die Funktion von dir ist übrigens mist. Ich hab doch geschrieben,dass IstAHC passt bis auf die return-Werte.
Danke Goldkiller ![]()
Wert hinter einem Index einem Parameter
Ich weiß nicht was ich als Wert nehmen soll ![]()
/EDIT Danke hat geklappt ![]()
Jetzt gibt er überall ID 1 aus ![]()
stock GetAHCIndex(vid)
{
for(new a; a<(sizeof(AHC)); a++)
{
if(a != vid)continue;
{
return 1;
}
}
return 0;
}
Da hast du zwar keine eigenen Funktion zum zurückgeben des Indexes sondern prüfst in der Schleife direkt auf den exakten Eintrag in dem du die Position vergleichst.
if(!IsPlayerInRangeOfPoint(playerid,1.0,Telefonzelle[i][x2],Telefonzelle[i][y2],Telefonzelle[i][z2]))continue;
Du filterst damit ja auf den richtigen Index. Ist ja nicht wirkliche eine andere Logik dahinter als die, die ich meinte mit prüfen von vehicleid auf AHC.
Okay, habe ich auch schon dran gedacht, ist aber schwachsinn ![]()
Kannst du mir die Funktion schreiben ich habe nähmlich kp wie ich die aufbauen soll ![]()
Alles anzeigenKommt drauf an.
Nur unter "OnPlayerStateChange" reicht der von dir gezeigte Code nicht. newstate muss zumindest PLAYER_STATE_DRIVER oder PLAYER_STATE_PASSENGER sein, sonst kannst dudiedort nicht richtig mit GetPlayerVehicleID arbeiten.
Ganz genau hab ich auch nicht verstanden,wieso du in der Schleife IstAHC() prüfst.
Ich denke mal, du möchtest beim Einsteigen in eines dieser Fahrzeuge die zum Autohaus gehören den Dialog anzeigen.
Was dir dann aber fehlt,ist der richtige Index im Array AutoHausCar bzw AHC der zu der vehicleid passt.
Könntest also passend zu IstAHC eine Funktion anlegen, die dir an Hand der vehicleid den korrekten Index liefert. Mit dem müsstest du dann weiterarbeiten für den Dialog:
if(!IstAHC(vehicleid) ) return print("Kein Autohaus Fahrzeug");
new index = GetAHCIndex(vehicleid);
format(string,sizeof(string),"ID: {FFAA00}%d{FEFEFE} Kosten: {FFAA00}%d${FEFEFE}",AutoHausCar[index ][cID],AutoHausCar[index ][Kosten]);
return ShowPlayerDialog(playerid,DIALOG_EAHC,DIALOG_STYLE_LIST,string,"Fahrzeug Umparken","Auswahl","Abbrechen");
GetAHCIndex gibt es natürlich noch nicht ;).
//Edit: Rechtschreibung
Hm, aber warum sollte ich eine Extra Funktion dafür schreiben, ich meine bei meinem ATM & Telefonzellensystem funktioniert das auch ohne -.- ... da habe ich das ganze ähnlich aufgebaut:
ocmd:deltele(playerid,params[])
{
new string[64];
for(new i; i<MAX_TELE; i++)
{
if(!IsPlayerInRangeOfPoint(playerid,1.0,Telefonzelle[i][x2],Telefonzelle[i][y2],Telefonzelle[i][z2]))continue;
SetPVarInt(playerid,"Telezelle",i);
format(string,sizeof(string),"Telefonzelle ID: %d",i);
return ShowPlayerDialog(playerid,DIALOG_ETELE,DIALOG_STYLE_LIST,string,"Telefonzelle Löschen","Auswahl","Abbrechen");
}
return SendClientMessage(playerid,Weiss,"Du bist an keiner Telefonzelle!");
}