danke dir ich werde es ausprobieren-->danke dass du dir
die zeit nimmst es auch zu erklären
edit danke hab keine errors und warnings mehr den rest werde ich ausprobieren
es funktioniert nach wievor nicht
danke dir ich werde es ausprobieren-->danke dass du dir
die zeit nimmst es auch zu erklären
edit danke hab keine errors und warnings mehr den rest werde ich ausprobieren
es funktioniert nach wievor nicht
[quote='Jane','index.php?page=Thread&postID=1943477#post1943477']format(query,sizeof(query),"UPDATE Spielerautos SET X='%f',Y='%f',Z='%f',ROTATION='%f' WHERE DB_ID='%i'",cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],cInfo[i][DB_ID]); mysql_function_query(dbhandle,query,false,"","");
war wohl nix mit copy&paste-->aber egal
nun zum erstellen der fahrzeuge
createplayercar(playerid,model,Float:x,Float:y,Float:z,Float:rota,Farb1,Farb2,respawn)
{
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][SID] !=0)
continue;
cInfo[i][besitzer] = sInfo[playerid][db_id];
cInfo[i][modelID] = model;
cInfo[i][carx] = x;
cInfo[i][cary] = y;
cInfo[i][carz] = z;
cInfo[i][carrota] = rota;
cInfo[i][Farbe1] = Farb1;
cInfo[i][Farbe2] = Farb2;
cInfo[i][SID]= CreateVehicle(model,x,y,z,rota,Farb1,Farb2,respawn);
SaveCarToDB(playerid,i,model,Farb1,Farb2,respawn);
return 1;
}
return 1;
}
ocmd:playercspawn(playerid,params[])
{
if(sInfo[playerid][alevel]>=7)
{
if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
{
new pID,vID,Float:x,Float:y,Float:z,Float:rota;
new Farb1,Farb2,respawn;
if(sscanf(params,"uiiii",pID,vID,Farb1,Farb2,respawn))return SendClientMessage(playerid,CL_WHITE,"ERROR: /cspawn [id][vID][farb1][farb2][respawn(-1 nein), 1->ja]");
GetPlayerPos(pID,x,y,z);
GetPlayerFacingAngle(pID,rota);
createplayercar(pID,vID,Float:x,Float:y,Float:z,Float:rota,Farb1,Farb2,respawn);
SendClientMessage(playerid,CL_HROT,"Du hast den befehl benutzt.");
return 1;
}
}
SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
return 1;
}
freecarid()
{
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][SID]==0)return i;
}
return 0;
}
loadcars(playerid)
{
new query[200];
format(query,sizeof(query),"SELECT * FROM Spielerautos WHERE BESITZER='%i'",sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,true,"PlayerCarsLoad","i",playerid);
return 1;
}
SaveCarToDB(playerid,i,modelid,farb1,farb2,respawn)
{
new query[200];
new Float:rotation;
GetVehicleZAngle(modelid,Float:rotation);//-->da muss hin wo es gepeichert wird
format(query,sizeof(query),"INSERT INTO Spielerautos(BESITZER,MODEL,X,Y,Z,ROTATION,FARBE1,FARBE2,RESPAWN,KENNZEICHEN)VALUES('%i','%i','%f','%f','%f','%f','%i','%i','%i','%s')",sInfo[playerid][db_id],modelid,cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],farb1,farb2,respawn,cInfo[i][kennzeichen]);
mysql_function_query(dbhandle,query,true,"CarSavedDB","i",i);
return 1;
}
ich hoffe + OnPlayerDisconnect(siehe oben) das reicht
wenn nicht bitte melden
edit hat keiner eine idee=?
damit auch der lerneffekt da ist
wieso hast du wo was auf wie verändert?
nur damit ich es auch lerne und nicht nur copy&paste
nicht aus der db löschen
sondern ingame löschen:D
wie spawne ich den spieler dann wenn er z.B. lspd ist an x y z?
dafür
das erspart das klicken auf andere seiten die auch noch werbung drinne haben
enum sInfoenum playerInfo{
eingeloggt,
db_id,
level,
geld,
skin,
bankgeld,
kredit,
kzins,
//adminstrativ
baned,
alevel,
aduty
//Fraktionen
//XYZ
}
dazu new sInfo[MAX_PLAYERS][playerInfo];
danke für deine mühe
Hallo
ich bin nicht faul aber da ich es noch nie gemacht habe lasse ich es mir gerne erklären
ich möchte per enum den spieler an x y z koordinaten spawnen lassen
das enum sieht so aus
new frakspawn[][fspawn] = {
{0.0,0.0,0.0,0},
{}
};
dazu
enum fspawn
{
Float:f_x,
Float:f_y,
Float:f_z,
Float:f_rota,
f_interior
}
nun die frage in dem stock der von OnPlayerSpawn aufgerufen wird
stock spawnfrak(playerid)
{
SetPlayerColor(playerid,CL_WHITE);
SetPlayerHealth(playerid,100);
clock();
static states;
introstop(playerid);
SetPlayerSkin(playerid,sInfo[playerid][skin]);
if(sInfo[playerid][alevel]>=2)
{
if(sInfo[playerid][aduty]==1)return SetPlayerPos(playerid,1022.8530,-3960.8057,2.7001),SetPlayerColor(playerid,CL_KNALLROT);
if(states==0)
{
states = 1;
StopAudioStreamForPlayer(playerid);
SendClientMessage(playerid,CL_WHITE,"INFO: Du Spawnst an der Adminbase. Gehe Admin-On-Duty mit /aduty.");
SetPlayerPos(playerid,1022.8530,-3960.8057,2.7001);
return 1;
}
return 1;
}
return 1;
}
wie baue ich da die abfrage ein in welcher frak er ist?
2 warnings shadows a preceding level
ocmd:cspawn(playerid,params[])
{
if(sInfo[playerid][alevel]>=7)
{
if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
{
new vID;
//Hier kannst du jetzt wie oben reinschreiben was passiert wenn man diesen Befehl aufruft.
if(sscanf(params,"i",vID))return SendClientMessage(playerid,CL_WHITE,"Aussage: /cspawn Fahrzeug--->[ID]"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
new Float:X,Float:Y,Float:Z,Float:ROTA;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,ROTA);
new vehicle;//----------->daa
vehicle=CreateVehicle(vID,X,Y,Z,ROTA,-1,-1,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
PutPlayerInVehicle(playerid,vehicle,0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
return 1;
}
}
SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
return 1;
}
ocmd:acar(playerid,params[])
{
new vID;
new Float:X,Float:Y,Float:Z,Float:ROTA,FARB1,FARB2;
static vehicle[MAX_PLAYERS];
static acarexist[MAX_PLAYERS];//-------->da
new Text3D:VehicleAdminName[MAX_PLAYERS];
if(sInfo[playerid][alevel] >= 2)
if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
{
if(acarexist[playerid] == 1)
{
SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
DestroyVehicle(vehicle[playerid]);
Delete3DTextLabel(VehicleAdminName[playerid]);
acarexist[playerid] = 0;
return 1;
}
else if(acarexist[playerid]==0)
{
if(sscanf(params,"iii",vID,FARB1,FARB2))return SendClientMessage(playerid,CL_KNALLROT,"INFO: /acar Fahrzeug--->[ID] Farbe 1 Farbe 2"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
new str[128];
new a_level;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,ROTA);
vehicle[playerid] = CreateVehicle(vID,X,Y,Z,ROTA,FARB1,FARB2,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
PutPlayerInVehicle(playerid,vehicle[playerid],0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
a_level=sInfo[playerid][alevel];
format(str,sizeof(str),"%s Car von %s",a_rang[a_level],SpielerName(playerid));
VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,X,Y,Z,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
Attach3DTextLabelToVehicle(VehicleAdminName[playerid],vehicle[playerid],0,-1.3,0.7);//30.0,40.0,50.0
SetVehicleNumberPlate(vehicle[playerid],"MVS-ADMIN");//------>hier gehts nicht
SetVehicleToRespawn(vehicle[playerid]);
SendClientMessage(playerid,CL_HGRÜN,"Admin-Car erstellt ");
PutPlayerInVehicle(playerid,vehicle[playerid],0);
acarexist[playerid] = 1;
return 1;
}
}
SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
return 1;
}
ich muss das user car was erstellt wurde nach dem login wieder löschen aber es funktioniert nicht
ocmd:acar(playerid,params[])
{
new vID;
new Float:X,Float:Y,Float:Z,Float:ROTA,FARB1,FARB2;
static vehicle[MAX_PLAYERS];
static acarexist[MAX_PLAYERS];
new Text3D:VehicleAdminName[MAX_PLAYERS];
if(sInfo[playerid][alevel] >= 2)
if(sInfo[playerid][aduty]==0)return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
{
if(acarexist[playerid] == 1)
{
SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
DestroyVehicle(vehicle[playerid]);
Delete3DTextLabel(VehicleAdminName[playerid]);
acarexist[playerid] = 0;
return 1;
}
else if(acarexist[playerid]==0)
{
if(sscanf(params,"iii",vID,FARB1,FARB2))return SendClientMessage(playerid,CL_KNALLROT,"INFO: /acar Fahrzeug--->[ID] Farbe 1 Farbe 2"); //Hier wird das was der Spieler hinter dem Befehl eingegeben hat in Variablen getrennt. In unserem Fall in "vID"
new str[128];
new a_level;
GetPlayerPos(playerid,X,Y,Z);
GetPlayerFacingAngle(playerid,ROTA);
vehicle[playerid] = CreateVehicle(vID,X,Y,Z,ROTA,FARB1,FARB2,0); //Farbe -1 bedeutet Random. Also zufällige Farbe.ok
PutPlayerInVehicle(playerid,vehicle[playerid],0); //Die 0 steht für die Sitz ID. 0 = Fahrer :)ok//frage?
a_level=sInfo[playerid][alevel];
format(str,sizeof(str),"%s Car von %s",a_rang[a_level],SpielerName(playerid));
VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,X,Y,Z,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
Attach3DTextLabelToVehicle(VehicleAdminName[playerid],vehicle[playerid],0,-1.3,0.7);//30.0,40.0,50.0
SetVehicleNumberPlate(vehicle[playerid],"MVS-ADMIN");//------>hier gehts nicht
SetVehicleToRespawn(vehicle[playerid]);
SendClientMessage(playerid,CL_HGRÜN,"Admin-Car erstellt ");
PutPlayerInVehicle(playerid,vehicle[playerid],0);
acarexist[playerid] = 1;
return 1;
}
}
SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
return 1;
}
der code wo das acar erstellt wird
ps : Dieser Beitrag wurde bereits 34923085 mal editiert, zuletzt von »ErikSon« (18.08.1998, 18:15)
wie das?
im anhang findet ihr das problem aber ich schreibe es nochmal
ich muss damit dass nicht passiert das entsprechende admincar beim disconnect löschen weiss aber nicht wie?
schreibt mal welchen code ihr braucht
Hallo
ich möchte gerne das normale spieler auto was beim login spawnt beim logout/disconnect wieder löschen da sonst beim login jeweils 1 auto dazu kommt
der disconnect code im pwn format
public OnPlayerDisconnect(playerid, reason)
{
SetPlayerColor(playerid,CL_GRAU);
saveplayer(playerid);
resetplayer(playerid);
//Spielerautos löschen
for(new i=0; i<sizeof(cInfo); i++)
{
if(cInfo[i][SID]==0)continue;
if(cInfo[i][besitzer] != sInfo[playerid][db_id])continue;
new query[289];
format(query,sizeof(query),"UPDATE Spielerautos SET X='%f',Y='%f',Z='%f',ROTATION='%f' WHERE DB_ID='%i'",cInfo[i][carx],cInfo[i][cary],cInfo[i][carz],cInfo[i][carrota],cInfo[i][DB_ID]);
mysql_function_query(dbhandle,query,false,"","");
DestroyVehicle(cInfo[i][SID]);
printf("%i gelöscht",cInfo[i][SID]);
}
return 1;
}
da steht nur return 1; drin
Hallo zusammen
ich kann mit mehreren leuten auf den server joinen aber synchronisieren tut er nur wenn er per befehl die position verändert bitte um hilfe
habs geschafft
public CountTimer(playerid)
{
if(IsPlayerInRangeOfPoint(playerid,8.0,2309.1897,-8.4204,26.7422))//bankkoordinaten
{
new bankraubgeld = random(5000);
new string[128];
format(string,sizeof(string),"Du hast für den Bankraub %i$ erhalten pro Minute erhälst du weiter geld.",bankraubgeld);
printf("%i geld",bankraubgeld);
printf("Spieler hat %i$ erhalten!",bankraubgeld);
GivePlayerMoney(playerid,bankraubgeld);
return 1;
}
SCM(playerid,CL_KNALLROT,"INFO: Der Bankraub wurde abgebrochen da du nicht mehr in der Bank bist!");
sInfo[playerid][geld] = GetPlayerMoney(playerid);
stat = 0;
return 1;
}
das wiki habe ich gelesen kein erfolg
das ist das bisher
public CountTimer(playerid)
{ //Callback
Bankraub ++;
if(IsPlayerInRangeOfPoint(playerid,8.0,2309.1897,-8.4204,26.7422))//bankkoordinaten
{
new bankraubgeld = random(5000);
printf("%i geld",bankraubgeld);
if(Bankraub == 1)return GivePlayerMoney(playerid,bankraubgeld);
else if(Bankraub == 0) return GivePlayerMoney(playerid,bankraubgeld);
else if(Bankraub == 2)return GivePlayerMoney(playerid,bankraubgeld);
return 1;
}
SCM(playerid,CL_KNALLROT,"INFO: Der Bankraub wurde abgebrochen da du nicht mehr in der Bank bist!");
return 1;
}
dazu der log
[22:26:40] 4574 geld
[22:26:41] 2849 geld
[22:26:42] 2943 geld
[22:26:43] 301 geld
[22:26:44] 4793 geld
[22:26:45] 3715 geld
[22:26:46] 1933 geld
[22:26:47] 420 geld
[22:26:48] 4895 geld
[22:26:49] 2533 geld
[22:26:50] 2657 geld
[22:26:51] 2834 geld
[22:26:52] 4887 geld
[22:26:53] 4703 geld
aber das ist bei einmaligem eingeben aber das geld bekomme ich nicht alles
Bankraubsystem jemanden zufällig pro minute in einem bestimmten rahmen geld geben wenn er noch in der bank ist
aber das funktioniert bei mir nicht also das system
Da wo 1000 und 5000 dollar stehen soll eine zufallszahl hin die zwischen 10 und 5000 dollar liegen soll
public CountTimer(playerid)
{ //Callback
Bankraub ++;
if(IsPlayerInRangeOfPoint(playerid,8.0,2309.1897,-8.4204,26.7422))
{
if(Bankraub == 1)return GivePlayerMoney(playerid,1000);
else if(Bankraub == 2)return GivePlayerMoney(playerid,5000);
return 1;
}
return 1;
}
und wie mache ich das nach 1 min 1000dollar bekommt nach 2 min 5000 dazu und so weiter?
enum buildingsEnum{
Float:b_x,
Float:b_y,
Float:b_z,
Float:b_ix,
Float:b_iy,
Float:b_iz,
b_interior
}
und ja du irrst dich
ich löse mal auf
folgende problembehandlung
Befehl getvirtualworld
dann die virtuelle welt -->indemfall war sie 2 auf 2 geändert
AddStaticPickup siehe oben benutzt und die Coordinaten eingefügt
Danke an alle die helfen
(problembehandlung für anfänger)