Wie sieht dein Code jetzt aus?
Beiträge von Jeffry
-
-
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][id_x]==0)continue;
if(cInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
GetVehiclePos(cInfo[i][id_x],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z]);
GetVehicleZAngle(cInfo[i][id_x],cInfo[i][c_r]);
new query[256];
format(query,sizeof(query),"UPDATE autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][db_id]);
mysql_function_query(dbhandle,query,false,"","");
DestroyVehicle(cInfo[i][id_x]);
cInfo[i][id_x]=0;
}
zu
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][id_x]==0)continue;
if(cInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
DestroyVehicle(cInfo[i][id_x]);
cInfo[i][id_x]=0;
}Beim /parken Befehl:
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][id_x]==0)continue;
if(cInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
if(cInfo[i][id_x] != GetPlayerVehicleID(playerid)) continue;
GetVehiclePos(cInfo[i][id_x],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z]);
GetVehicleZAngle(cInfo[i][id_x],cInfo[i][c_r]);
new query[256];
format(query,sizeof(query),"UPDATE autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i'",cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][db_id]);
mysql_function_query(dbhandle,query,false,"","");
} -
Bei OnPlayerText:
if(!strcmp(text, "wasser", true) && IsPlayerInRangeOfPoint(playerid, 20.0, X, Y, Z))
{
//Code hier
}X, Y, Z musst du mit deinen Koordinaten ausfüllen.
-
Das
SetVehicleParamsEx(vID,engine,lights,alarm,1,bonnet,boot,objective);
wieder weg machen und bei deiner createPlayerCar Funktion hinschreiben, und zwar unter CreateVehicle:SetVehicleParamsEx(cInfo[i][id_x],engine,lights,alarm,1,bonnet,boot,objective);
-
Wenn du den Spieler auch reinsetzen würdest, dann könntest du es so machen.
Nein, kann er nicht, da auf Grund des Lags zwischen Spieler und Server GetPlayerVehicleID nicht direkt nach PutPlayerInVehicle funktioniert.Im Befehl muss also das
if (GetPlayerVehicleID(playerid))
{
AddVehicleComponent(carid, 1010); // Nitro
return 1;
}
Zu
AddVehicleComponent(car, 1010);geändert werden. Die Abfrage muss weg!
Die ist ja auch völlig sinnlos, da er ja zuvor in das Auto gesetzt wird. -
Erhöhe mal die Länge von query und query2, 128 ist wahrscheinlich zu wenig.
-
Ist nichts weiter als eine Abfrage wenn das hp kleiner als 0 ist soll es auf 0 gesetzt werden?
Korrekt.Deniz0801: Ich kann das ganz normal kompilieren. Wie hast du "DIALOG_REGHELP" deklariert?
Kann es auch sein, dass der Fehler in den Zeilen drüber ist, hast du da was geändert? -
So meinst du das.
Dann mach
hp = (hp-250.0) / 7.5;
Zu
hp = (hp-250.0) / 7.5;
if(hp<0) hp=0.0; -
Wie viel geht er denn in den Minus Bereich?
Ich hab dir doch gesagt du musst es eventuell anpassen.EDIT:
Dome_:
tmp = strtok(cmd, idx);
Zu
tmp = strtok(cmdtext[8], idx); -
Der User hatte die ID 1
...
welche Meldungen kommen?
Sei dich bitte nicht so sparsam mit deinen Antworten.
-
/arrest [ID] vom Spieler
Genau die ID wollte ich wissen. Ist es die 0? Wenn ja
if (!strlen(tmp) || !strval(tmp))
Zu
if(!strlen(tmp) || !IsNumeric(tmp))IsNumeric: http://pastebin.com/3G94dnAw
Das kannst du eigentlich ohnehin machen, auch wenn du nicht die 0 eingibst. Falls du die nicht eingibst, welche Meldungen kommen?
-
Warum nimmt er die ID nicht?
Was gibst du denn ein? -
if(isSupp(playerid,1) || isAdmin(playerid,1))
{
//Ist Supporter oder Admin
}
else return SendClientMessage(playerid,ROT,"Du bist dazu nicht befugt!");oder so:
if(!isSupp(playerid,1) && !isAdmin(playerid,1)) return SendClientMessage(playerid,ROT,"Du bist dazu nicht befugt!");
//Code der nur von Supportern/Admins ausgeführt werden darf hier drunter. -
Danke.
ocmd:carlock(playerid)
{
new engine, lights, alarm, doors, bonnet, boot, objective, vID, bool:privateVeh = false;
if(!IsPlayerInAnyVehicle(playerid))
{
new Float:x, Float:y, Float:z;
for(new i=0; i<MAX_VEHICLES; i++)
{
GetVehiclePos(i, x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))
{
vID = i;
break;
}
}
}
else vID = GetPlayerVehicleID(playerid);
if(vID == 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist nicht in einem Auto, oder nahe genug an einem Auto.");
for(new i=0; i<sizeof(cInfo); i++)
{
if(vID == cInfo[i][id_x])
{
privateVeh = true;
break;
}
}
if(!privateVeh) return SendClientMessage(playerid, 0xFF0000FF, "Error: Dieses Auto ist kein privates Auto.");
GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
switch(doors)
{
case 1:
{
SetVehicleParamsEx(vID,engine,lights,alarm,0,bonnet,boot,objective);
new string[144];
format(string, sizeof(string), "{0xFFFFFFAA}Du hast soeben dein Fahrzeug (%s) {0xE10000FF}aufgeschlossen", GetVehicleFriendlyName(vID));
SendClientMessage(playerid,weiß, string);
}
default:
{
SetVehicleParamsEx(vID,engine,lights,alarm,1,bonnet,boot,objective);
new string[144];
format(string, sizeof(string),"{0xFFFFFFAA}Du hast soeben dein Fahrzeug (%s) {0x00FF00FF}abgeschlossen", GetVehicleFriendlyName(vID));
SendClientMessage(playerid,weiß, string);
}
}
return 1;
} -
Etwas mehr bitte. Was soll ich denn damit anfangen? Wenigstens die ganze Zeile davon.
-
Wie erstellst du die privaten Fahrzeuge?
-
Meh.
ocmd:carlock(playerid)
{
new engine, lights, alarm, doors, bonnet, boot, objective, vID;
if(!IsPlayerInAnyVehicle(playerid))
{
new Float:x, Float:y, Float:z;
for(new i=0; i<MAX_VEHICLES; i++)
{
GetVehiclePos(i, x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))
{
vID = i;
break;
}
}
}
else vID = GetPlayerVehicleID(playerid);
if(vID == 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist nicht in einem Auto, oder nahe genug an einem Auto.");
GetVehicleParamsEx(vID,engine,lights,alarm,doors,bonnet,boot,objective);
switch(doors)
{
case 1:
{
SetVehicleParamsEx(vID,engine,lights,alarm,0,bonnet,boot,objective);
new string[144];
format(string, sizeof(string), "{0xFFFFFFAA}Du hast soeben dein Fahrzeug (%s) {0xE10000FF}aufgeschlossen", GetVehicleFriendlyName(vID));
SendClientMessage(playerid,weiß, string);
}
default:
{
SetVehicleParamsEx(vID,engine,lights,alarm,1,bonnet,boot,objective);
new string[144];
format(string, sizeof(string),"{0xFFFFFFAA}Du hast soeben dein Fahrzeug (%s) {0x00FF00FF}abgeschlossen", GetVehicleFriendlyName(vID));
SendClientMessage(playerid,weiß, string);
}
}
return 1;
} -
if(sscanf(params,"udd",pID))
Zu
if(sscanf(params,"udd",pID, weapon, ammunation)) -
Ja, steht doch da. Pack den ganzen default block und füge ihn unter dem case 1 Block ein.
Default muss in PAWN ganz unten im switch stehen. -
Einwandfrei, bloß blöd das schon bei 23% das Auto brennt.
Dann mach es zu
hp = (hp-250.0) / 7.5;
Ich glaube ab 250 brennt es. Ansonsten musst das anpassen. Die 7.5 auch. (7.5 = (1000-250)/100))
Also entsprechend auch da die 250 einfügen, dann kommst du auf den neuen Teiler.