Oh ja, stimmt, mein Fehler, etwas zu eifrig ersetzt.
Ändere es aber bitte zu
return -1;
Sonst kann das zu Fehlern führen, da dann, wenn ein Fahrzeug nicht erstellt werden konnte, das Fahrzeug mit dem Index 1 angesprochen würde, das wäre ja falsch.
Oh ja, stimmt, mein Fehler, etwas zu eifrig ersetzt.
Ändere es aber bitte zu
return -1;
Sonst kann das zu Fehlern führen, da dann, wenn ein Fahrzeug nicht erstellt werden konnte, das Fahrzeug mit dem Index 1 angesprochen würde, das wäre ja falsch.
"targetName" fehlt in der Tabelle "cp_cronjob".
Füge diese Spalte als VARCHAR hinzu.
Versuche es vorerst mal so:
stock createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
{
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][id_x]!=0)continue;
strmid(cInfo[i][besitzer],GetName(playerid),0,strlen(GetName(playerid)),24);
cInfo[i][c_x]=x;
cInfo[i][c_y]=y;
cInfo[i][c_z]=z;
cInfo[i][c_r]=r;
cInfo[i][model]=modelid;
cInfo[i][Color_1]=1;
cInfo[i][Color_2]=1;
cInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,cInfo[i][Color_1],cInfo[i][Color_2],-1);
cInfo[i][ci_tank] = 100;
return i;
}
return i;
}
case DIALOG_AUTOHAUS:
{
if(response)
{
//Autoverkauf notiz
new id=GetPVarInt(playerid,"buyCarID"),query[265];
if(getPlayerMoney(playerid)<ahCars[id][c_preis])
{
SendClientMessage(playerid,Rot,"Du besitzt nicht genügend Geld umd dieses Fahrzeug zu kaufen.");
RemovePlayerFromVehicle(playerid);
return 1;
}
givePlayerMoney(playerid,-ahCars[id][c_preis]);
new i = createPlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r]);
format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r,name,tank) VALUES ('%s','%i','%f','%f','%f','%f','%s','%f')",cInfo[i][besitzer],cInfo[i][model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][c_name],cInfo[i][ci_tank]); //warning 213: tag mismatch
mysql_pquery(dbhandle,query,"carSavedToDB","i",i);
SendClientMessage(playerid,Gruen,"Du hast das Fahrzeug erfolgreich gekauft");
RemovePlayerFromVehicle(playerid);
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,Rot,"Du hast den Kauf abgebrochen");
}
return 1;
}
Lösche:
new id=getFreeCarID(); //warning 204: symbol is assigned a value that is never used: "id"
Und ändere
if(!sitz == 0)return SendClientMessage(playerid, Rot, "Du musst auf dem Fahrersitz sein!"); //warning 213: tag mismatch
zu
if(sitz == 0)return SendClientMessage(playerid, Rot, "Du musst auf dem Fahrersitz sein!");
Zwecks den Tag Mismatches:
Prüfe jeweils, ob zu den Arrays der hintere Teil (in Klammern) im dazugehörigen enum steht, wenn nicht, füge ihn hinzu.
Auf Nachfrage nach TeamViewer Support:
Die Gründe warum ich auf die Scripting Base verweise
Da du keine Eigeninitiative zeigst, und es nicht mal versuchst, sehe ich es zudem nicht ein, dir da über TeamViewer zu helfen.
Ich habe dir Hilfestellungen gegeben, und gesagt was du machen sollst. Versuche das doch mal.
Zu sagen, dass du da nur etwas kaputt machst ist mir unschlüssig, da du nur - dem Fehler nach zumindest - die Tabellen pflegen musst.
Mache das, und poste dann gegebenenfalls die neue Fehlermeldung.
Setze beim Kauf das hier
createPlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r]);
vor das Query, sprich zwei Zeilen drüber.
Versuche es dann mal.
Ich suche ein Objekt ID von einem Spiegel wenn es soetwas gibt
Die Spiegel sind immer an die Shop-Objekte angebunden, sprich einen einzelnen Spiegel gibt es leider nicht. Man müsste das ganze Shop-Interior setzen.
Poste bitte mal den Server Log der kommt, wenn du den Server startest.
Daraus könntest du es auch ablesen ja, ist aber etwas aufwändiger.
Ich meinte den PAWN Code, dort stehen die Queries ja drin, die die Tabelle verwenden, also auch die Spalten dazu.
Du musst die Tabelle mit den entsprechenden Spalten (findest du im Code, wenn du nach dem Tabellenname suchst) anlegen. Dazu in den Queries im Code die Spalten auslesen, die verwendet werden.
Werte musst du keine rein schreiben, ich schätze mal das macht der Code.
Die Tabelle "tb_outstanding" existiert in deiner Datenbank nicht, lege diese entsprechend an.
In der Tabelle "cp_cronjob" fehlt eine Spalte "status". Füge diese entsprechend hinzu.
Hab das gleiche Problem
Was steht denn bei dir im Server Log?
Schaue dir dazu diesen Filterscript an:
http://forum.sa-mp.com/showthread.php?t=179089
Schaue dir diesen Filterscript an, oder nutze ihn:
http://forum.sa-mp.com/showthread.php?t=505003
Dafür kannst du das MapAndreas Plugin nutzen.
http://forum.sa-mp.com/showthread.php?t=275492
Ok, dann liegt es wahrscheinlich daran, dass du einmal die Cache Funktionen nutzt, und einmal nicht.
Der Cache wird erst mit Verzögerung ausgelesen, sprich zu dem Zeitpunkt als die Ammus geladen werden, sind die Gruppen noch nicht geladen, auch wenn es vorher im Code steht.
Füge den Code mit dem Laden der Ammus in LoadGruppen ein, vor das "return 1;" und versuche es dann.
Kannst du dann bitte mal mehr von dem Code, im Zusammenhang zwischen den beiden Lade-Systemen, posten?
Noch eines ist mir grade noch ins Auge gesprungen.
Beim Enter das SetPlayerVirtualWorld von 0 zu i ändern, sonst kommst du nicht mehr raus.
Wie sieht denn dein Code jetzt aus?
Marvin war schneller, das ist mir dann auch noch aufgefallen.
Allerdings muss bei der IsPlayerInRangeOfPoint Zeile trotzdem ein continue am Ende stehen, kein return 1.
Und dann jeweils bei SetPlayerPos etc den ersten Parameter von i zu playerid ändern.
Ändere bei den beiden IsPlayerInRangeOfPoint Zeilen das
return 1;
Zu
continue;