Die Fehler werden wohl nicht ohne Grund dagewesen sein
Lade dir mal die neue Include herunter und ersetze diese.
Die Fehler werden wohl nicht ohne Grund dagewesen sein
Lade dir mal die neue Include herunter und ersetze diese.
Um richtig zu sein ist es doch die clientpoke oder?
Euch ist klar, dass das alles falsch ist?
Ihr könnt unter OnPlayerEnterVehicle kein RemovePlayerFromVehicle benuzen, weil der Spieler noch in keinem Fahrzeug sitzt
Versuch das mal so
public OnPlayerEnterVehicle(playerid,vehicleid,ispassenger){
if(GetVehicleModel(vehicleid)==515&&!ispassenger){
if(GetPlayerScore(playerid)<2){
TogglePlayerControllable(playerid,0),TogglePlayerControllable(playerid,1);
return SendClientMessage(playerid,ROT,"Du brauchst Level 2 um dieses Fahrzeug zu fahren!");
}
}
return 1;
}
stock LoadAccount(playerid){
new Spielerdatei[64],name[MAX_PLAYER_NAME];GetPlayerName(playerid,name,MAX_PLAYER_NAME);
format(Spielerdatei,64,"/Accounts/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
SetPVarInt(playerid,"loggedin",1);
if(GetPVarInt(playerid,"Baned")==1)return SendClientMessage(playerid,ROT,"Du bist vom Server gebannt."),Kick(playerid);
return 1;
}
EDIT: Oder du fragst das ganze unter OnPlayerStateChange ab, dann kannst du das natürlich mit RemovePlayerFromVehicle benutzen
Außerdem lässt du unter SpielerLaden das Level usw. nicht in der PVar schreiben, somit kannst du auch nichts mit der PVar auslesen
Stimmt, wenn er das aber anders gemacht hätte
@TE: Mach das mal so:
ocmd:carwechsel(playerid,params[]){
new Float:_Pos[3],Vehicle[MAX_PLAYERS];
if(!IsPlayerInAnyVehicle(playerid)||!IsPlayerInRangeOfPoint(playerid,3,x,y,z))return 1;
if(!params[0])return SendClientMessage(playerid,-1,"/carwechsel [Vehicle-ID]");
if(strval(params)<400||strval(params)>611)return SendClientMessage(playerid,-1,"Ungültige Vehicle-ID");
GetPlayerPos(playerid,_Pos[0],_Pos[1],_Pos[2]);
DestroyVehicle(GetPlayerVehicleID(playerid));
Vehicle[playerid]=CreateVehicle(params,_Pos[0],_Pos[1],_Pos[2],0,0,0,0);
return PutPlayerInVehicle(playerid,Vehicle[playerid],0);
}
Vielleicht möchte er das ja gerne in einem Dialog haben?
Vielleicht auch nicht, dann kann er das anders benutzen, halt params oder sscanf.
Du musst im Befehl den Dialog anzeigen lassen, und unter OnDialogResponse das alles abfragen bzw. setzen lassen
if(strval(inputtext)<400||strval(inputtext)>611)return 1;
Mach das so, bzw. sende eine Nachricht ab
Ich weiß, hatte ich aber eben schnell geschrieben
Natürlich ist das möglich
new Float:_Pos[3],car[MAX_PLAYERS];
ocmd:carwechsel(playerid,params[]){
if(IsPlayerInAnyVehicle(playerid)&&IsPlayerInRangeOfPoint(playerid,3,x,y,z)){
GetPlayerPos(playerid,_Pos[0],_Pos[1],_Pos[2]);
DestroyVehicle(GetPlayerVehicleID(playerid));
car[playerid]=CreateVehicle(411,_Pos[0],_Pos[1],_Pos[2],0,0,0,0);
return PutPlayerInVehicle(playerid,car[playerid],0);
}
return 1;
}
So ungefähr. Wenn du das mit einem Dialog haben möchtest, dann füge da ein Dialog ein.
Das war nur ein Beispiel
Kann er normalerweise auch ohne %s machen, sondern nur inputtext, hatte Kaliber geschrieben
Bekommst du etwas in der server.log geschrieben?
Außerdem, was hat das hier zu bedeuten mit dem vehicleid?
dcmd_lock(playerid,vehicleid,params[])
Das vehicleid muss doch weg, oder?
Du kannst das als String benutzen.
Dann zeig mal deinen Enum her, und wie du es nun benutzt.
Ja kann man, mache ich immer
Das muss dahin, wo du es auch deklariert hast, wahrscheinlich wohl in einem Enum.
Atomfisch: Man kann das auch ohne die Klammern machen
Da liegt der Fehler
pRPGNamen[24]
So muss das aussehen, die Größe kannst du anpassen.
if(dialogid==DIALOG_SBUY){
if(!response)return SendClientMessage(playerid,COLOR_RED,"Scheinkauf abgebrochen...");
switch(listitem){
case 0:{
if(GetPlayerMoney(playerid)<7000)return SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Bargeld!");
return GivePlayerMoney(playerid,-7000),GivePlayerWeapon(playerid,30,350),SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du hast eine AK-47 mit 350 Schuss bekommen!"),1;
}
case 1:{
if(GetPlayerMoney(playerid)<5000)return SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Bargeld!");
return GivePlayerMoney(playerid,-5000),GivePlayerWeapon(playerid,24,150),SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du hast eine Desert Eagle mit 150 Schuss bekommen!"),1;
}
case 2:{
if(GetPlayerMoney(playerid)<6000)return SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Bargeld!");
return GivePlayerMoney(playerid,-6000),GivePlayerWeapon(playerid,29,325),SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du hast eine MP5 mit 325 Schuss bekommen!"),1;
}
case 3:{
if(GetPlayerMoney(playerid)<8500)return SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Bargeld!");
return GivePlayerMoney(playerid,-8500),GivePlayerWeapon(playerid,34,90),SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du hast ein Scharfschützengewehr mit 90 Schuss bekommen!"),1;
}
case 4:{
if(GetPlayerMoney(playerid)<5500)return SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Bargeld!");
return GivePlayerMoney(playerid,-5500),GivePlayerWeapon(playerid,26,80),SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du hast eine Schrotflinte mit 80 Schuss bekommen!"),1;
}
case 5:{
if(GetPlayerMoney(playerid)<1000)return SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Bargeld!");
return GivePlayerMoney(playerid,-1000),GivePlayerWeapon(playerid,4,1),SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du hast ein Messer bekommen!"),1;
}
case 6:{
if(GetPlayerMoney(playerid)<1000)return SendClientMessage(playerid,COLOR_RED,"Du hast nicht genügend Bargeld!");
return GivePlayerMoney(playerid,-1000),GivePlayerWeapon(playerid,5,1),SendClientMessage(playerid,COLOR_LIGHTBLUE,"Du hast einen Baseballschläger bekommen!"),1;
}
}
return 1;
}
So ist es nun kurz gehalten
Sollte auch einwandfrei klappen.
Wie hast du pRPGNamen deklariert?
Zeig mal die Zeilen drüber / drunter.