Wie würde ich das jetzt am besten machen?
Das alle fahrzeuge aufgelistet werden im Dialog?
Bis dahin habe ich das geschafft, mehr ideen habe ich leider nicht mehr, weil mir auch nichts mehr einfällt wie ich das jetzt am besten machen könnte.
if(dialogid == DIALOG_PRIVATFAHRZEUG)
{
if(response)
{
new string[250];
switch(listitem)
{
case 0:
{
for(new i=0; i<sizeof(cInfo); i++)
{
if(!strcmp(cInfo[i][besitzer], SpielerName(playerid)))
{
new mID = GetVehicleModel(cInfo[i][id_x]);
if(mID !=0)
{
format(string,250,"SLOT 1: %s\nSLOT 2: %s\nSLOT: 3: %s",VehicleName[mID-400],VehicleName[mID-400],VehicleName[mID-400]);
ShowPlayerDialog(playerid,DIALOG_PFSLOTS,DIALOG_STYLE_LIST,"Fahrzeuge",string,"Zurück","Abbrechen");
}
}
}
}
}
}
return 1;
}
Beiträge von Pascal.
-
-
CreatePlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r,cl1,cl2,vsteuern)
{
for(new i=0; i<sizeof(cInfo); i++)
{
new engine, lights, alarm, boonet, boot, objective;
if(cInfo[i][id_x]!=0)continue;
strmid(cInfo[i][besitzer],SpielerName(playerid),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
cInfo[i][c_x]=x;
cInfo[i][c_y]=y;
cInfo[i][c_z]=z;
cInfo[i][c_r]=r;
cInfo[i][clr1]=cl1;
cInfo[i][clr2]=cl2;
cInfo[i][model]=modelid;
cInfo[i][csteuern]=vsteuern;
cInfo[i][c_lock] = 1;
cInfo[i][c_schaden] = 1000.0;
cInfo[i][id_x]=CreateVehicle(modelid,x,y,z,r,cl1,cl2,-1);
gas[cInfo[i][id_x]] = 100;
SetVehicleParamsEx(cInfo[i][id_x], engine, lights, alarm, cInfo[i][c_lock], boonet, boot, objective);
SaveCarToDB(playerid,i);
return 1;
}
return 1;
} -
-
Immer noch das gleiche, geht nur bis mID.
-
Nicht ganz.
Habe dir mal eine stelle makiert, dort wo er stehen bleibt.
ocmd:slots(playerid,params[])
{
new string[250];
for(new i=0; i<sizeof(cInfo); i++)
{
print("if(!strcmp(cInfo[i][besitzer], SpielerName(playerid)))");
if(!strcmp(cInfo[i][besitzer], SpielerName(playerid)))
{
new carID = cInfo[i][c_slot];
new mID = GetVehicleModel(cInfo[carID][model]);
print("mID >0");
if(mID >0) //Bis hier hin geht der print, danach geht er nicht weiter.
{
printf("%s",VehicleName[mID-400]);
format(string,250,"%s",VehicleName[mID-400]);
print("Abgesendet");
SCM(playerid,COLOR_GRAU,string);
}
}
}
return 1;
} -
Jeffry:
Hab mal wieder ein Problem Dieses Car system ist irgendwie etwas schwirig.
Ich weiß nicht was daran falsch ist an der mID-400.
Sobald ich diesen befehl aufrufe bekommen ich folgenden debug log:ocmd:slots(playerid,params[])
{
new string[250];
for(new i=0; i<sizeof(cInfo); i++)
{
if(!strcmp(cInfo[i][besitzer], SpielerName(playerid)))
{
new carID = cInfo[i][c_slot];
new mID = GetVehicleModel(cInfo[carID][model]);
if(carID >0)
{
format(string,250,"%s",VehicleName[mID-400]);
SCM(playerid,COLOR_GRAU,string);
}
}
return 1;
}
return 1;Code[23:28:31] [debug] Run time error 4: "Array index out of bounds" [23:28:31] [debug] Accessing element at negative index -400 [23:28:31] [debug] AMX backtrace: [23:28:31] [debug] #0 0004e4dc in public ocmd_slots (playerid=0, params[]=@000c3c18 " ") at myRL.p:4925 [23:28:31] [debug] #1 native CallLocalFunction () from samp-server.exe [23:28:31] [debug] #2 00000760 in public OnPlayerCommandText (playerid=0, cmdtext[]=@000c3bfc "/slots") at C:\Users\R5\Desktop\Pawnstar\cc\include\ocmd.inc:78
-
Ich bekomme immer Errors.Zeile (18) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (19) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (20) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (21) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (22) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (23) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (24) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (25) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (26) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (27) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (28) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (29) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (30) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (31) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (32) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (33) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (34) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (35) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (36) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (37) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (38) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (39) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (40) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (41) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (42) : Unbekannte Variable : "SetDynamicObjectMaterial"
Zeile (43) : Falsch eingerückt
Zeile (43) : Unbekannte Variable : "SetDynamicObjectMaterial"26 Errors (Klammerfehler), 1 Warnungen
Du hast Errors im Skript. Kompilierung abgebrochenPWNMod Compiler Version 1.2
(c) Trooper[Y]
In Kooperation mit GTA-Servers.deDu brauchst das Plugin & Include "Streamer", einfach mal Gogglen
Ansonsten schöne map 10/10 Fischen. -
Probiere es so mal.
Denke es lag an den CarName, da du wie es aussieht falsch gemacht hast.if(newstate==PLAYER_STATE_DRIVER)
{
tachovar[playerid]=SetTimerEx("tachotimer",200,true,"i",playerid);
TextDrawShowForPlayer(playerid,tacho[playerid]);
GetPlayerPos(playerid,xx[playerid],yy[playerid],zz[playerid]);for(new i = 0; i<MAX_CARS; i++)
{
if(GetPlayerVehicleID(playerid) == CarInfo[i][fahrzeugcreate] && AdminDuty[playerid] == 0)
{
new vID = GetPlayerVehicleID(playerid);
new mID = GetVehicleModel(vID);
format(string, sizeof(string),"{FF7800}Möchtest sie dieses Fahrzeug kaufen?\n{FAFAFA}Name: %s\nPreis: %d$\nReparaturkosten %d$\nMindestlevel: %d\nVersicherungskosten: %d",CarName[mID-400],CarInfo[i][CarPreis],CarInfo[i][ReparaturPreis],CarInfo[i][Autolevel],CarInfo[i][Versicherung]);
TogglePlayerControllable(playerid,0);
ShowPlayerDialog(playerid,Autokauf,DIALOG_STYLE_MSGBOX,"Autokauf",string,"Kaufen","Abbrechen");
}
return 1;
}
} -
Siehst du doch, er ladet die Plugins nicht.
Zeig uns mal deine server.cfg, und haste die Plugins im plugins ordner? -
if(IsPlayerInAnyVehicle(playerid))
{
new seatid = GetPlayerVehicleSeat(playerid);
SetPlayerPosEx(playerid,x,y + 4,z);
SetVehiclePosEx(GetPlayerVehicleID(playerid),x,y + 4,z);
PutPlayerInVehicleEx(playerid,GetPlayerVehicleID(playerid),seatid);
SetPlayerInterior(playerid,GetPlayerInterior(pID));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(pID));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(pID));
format(string,sizeof(string),"%s hat sich zu dir geportet.",SpielerName(playerid));
SendClientMessage(pID,GELB,string);
format(string,sizeof(string),"Du hast dich zu %s geportet.",SpielerName(pID));
SendClientMessage(playerid,GELB,string);
}
else
{
SetPlayerPosEx(playerid,x,y + 1,z);
SetPlayerInterior(playerid,GetPlayerInterior(pID));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
format(string,sizeof(string),"%s hat sich zu dir geportet.",SpielerName(playerid));
SendClientMessage(pID,GELB,string);
format(string,sizeof(string),"Du hast dich zu %s geportet.",SpielerName(pID));
SendClientMessage(playerid,GELB,string);
} -
Hehe
Aber nein das Problem ist ja das ich die 2 nicht einfach rein schreiben kann, da die ID nicht die aufgelistete datenbank ID ist sondern eine andere
die jedes Business zugewiesen bekommt sobald das geschäft gewählt wurde.
Heißt es gibt eine "db_id" die automatisch hoch zählt und eine "b_id" das ist in dem Fall die 2. -
Funktioniert nun, dass mit dem tank Preis habe ich etwas anders gemacht mit einer weiteren Schleife.
Vielen DankSieht nun so aus:
ocmd:fillcar(playerid,params[])
{
if(pInfo[playerid][pEingeloggt] == 0)return SCM(playerid,COLOR_GRAU,"Info: Du bist nicht Eingeloggt!");
if(!IsPlayerInAnyVehicle(playerid))return SCM(playerid,COLOR_GRAU,"Du bist in keinem Fahrzeug!");
new vID = GetPlayerVehicleID(playerid);
new string[128];
if(!HasCarMotor(vID))return SCM(playerid,COLOR_GRAU,"Dieses Fahrzeug besitzt kein Motor!");
if(GetPVarInt(playerid,"tank_Rechnung")>0)return SCM(playerid,COLOR_GRAU,"Begleiche erst die Rechnung in der Tankstelle.");
if(IsMotorOn(vID))return SCM(playerid,COLOR_GRAU,"Schalte erst den Motor ab bevor du Tanken tust.");
for(new i=0; i<sizeof(bsInfo); i++)
{
if(!bsInfo[i][db_id])continue;
if(bsInfo[i][b_id] !=2)continue;
SetPVarInt(playerid,"biz_tank_ID",i);
break;
}
for(new i=0; i<sizeof(tkInfo); i++)
{
new id = GetPVarInt(playerid,"biz_tank_ID");
if(!IsPlayerInRangeOfPoint(playerid,2,tkInfo[i][tk_x],tkInfo[i][tk_y],tkInfo[i][tk_z])) continue;
if(!HasCarMotor(vID))return SCM(playerid,COLOR_GRAU,"Dieses Fahrzeug besitzt kein Motor!");
if(GetPVarInt(playerid,"tank_Rechnung")>0)return SCM(playerid,COLOR_GRAU,"Begleiche erst die Rechnung in der Tankstelle.");
if(IsMotorOn(vID))return SCM(playerid,COLOR_GRAU,"Schalte erst den Motor ab bevor du Tanken tust.");
format(string,128,"Willkommen bei der Tankstelle.\nAktueller Preis pro Liter: %i$",bsInfo[id][b_gasprice]);
ShowPlayerDialog(playerid,DIALOG_FILLCAR,DIALOG_STYLE_INPUT,"Tankstelle",string,"Tanken","Abbrechen");
return 1;
}
return SCM(playerid,COLOR_GRAU,"Du bist nicht in der nähe einer Tankstelle.");
} -
Warum tkInfo[i][b_gasprice]?
Dies gehört doch zu bsInfo[i][b_gasprice].
Zeile:
format(string,128,"Willkommen bei der Tankstelle.\nAktueller Preis pro Liter: %i$",tkInfo[i][b_gasprice]); -
Ne hatte eig gedacht ob ich eine Zahl definiere.
Das kann ich denke raus nehmen, und die varable so heißen lassen
new tkInfo[][tankSystem] = {
{..}
}; -
Funktioniert leider auch nicht, er meint wieder das es fillcar nicht gibt.
Folgender debug code der kam:Code[20:17:41] [debug] Run time error 4: "Array index out of bounds" [20:17:41] [debug] Accessing element at index 15 past array upper bound 14 [20:17:41] [debug] AMX backtrace: [20:17:41] [debug] #0 0005329c in public ocmd_fillcar (playerid=0, params[]=@000c0d6c " ") at myRL.p:5184 [20:17:41] [debug] #1 native CallLocalFunction () from samp-server.exe [20:17:41] [debug] #2 000006f0 in public OnPlayerCommandText (playerid=0, cmdtext[]=@000c0d48 "/fillcar") at C:\Users\R5\Desktop\Pawnstar\cc\include\ocmd.inc:78
-
Setz mit einem PVar/Variable auf 1 das der andere Spieler herrausgefordet wurde.
bsp SetPvarInt(playa,"accept_Race",1);
Dann soll er eine nachricht kriegen.
Nun zum accept befehl frag dort ab ob "accept_Race" = 1 ist.
Wenn er akzeptiert hat setzt du den PVar/Variable wieder auf 0. -
Glaube nicht das es dort was zum einstellen gibt.
-
Jetzt sagt er mir das ich den Motor abschalten soll, egal wo ich bin.
Wenn ich den abgeschaltet habe, sagt er zu mir dass der Befehl nicht existiert.
Dazu bekomme ich noch so ein Debug code:Code
Alles anzeigen[13:16:02] [debug] Run time error 4: "Array index out of bounds" [13:16:02] [debug] Accessing element at index 15 past array upper bound 14 [13:16:02] [debug] AMX backtrace: [13:16:02] [debug] #0 00053424 in public ocmd_fillcar (playerid=0, params[]=@000c0d6c " ") at myRL.p:5187 [13:16:02] [debug] #1 native CallLocalFunction () from samp-server.exe [13:16:02] [debug] #2 000006f0 in public OnPlayerCommandText (playerid=0, cmdtext[]=@000c0d48 "/fillcar") at C:\Users\R5\Desktop\Pawnstar\cc\include\ocmd.inc:78 [13:16:19] [debug] Run time error 4: "Array index out of bounds" [13:16:19] [debug] Accessing element at index 15 past array upper bound 14 [13:16:19] [debug] AMX backtrace: [13:16:19] [debug] #0 00053424 in public ocmd_fillcar (playerid=0, params[]=@000c0d6c " ") at myRL.p:5187 [13:16:19] [debug] #1 native CallLocalFunction () from samp-server.exe [13:16:19] [debug] #2 000006f0 in public OnPlayerCommandText (playerid=0, cmdtext[]=@000c0d48 "/fillcar") at C:\Users\R5\Desktop\Pawnstar\cc\include\ocmd.inc:78
-
Ich glaube es vor von einem Hoster.
Musste ihn nochmal selber fragen -
Was wurde dort verändert? Sehe eigentlich keine Veränderung