Von SA:MP gibt es kein createPlayerCar ... du musst doch createPlayerCar iwo definiert haben als stock.
SAAMP bietet nur
- AddStaticVehicleEx
- AddStaticVehicle
- CreateVehicle
Gesendet von Handy, Samsung Galaxy S3
Von SA:MP gibt es kein createPlayerCar ... du musst doch createPlayerCar iwo definiert haben als stock.
SAAMP bietet nur
- AddStaticVehicleEx
- AddStaticVehicle
- CreateVehicle
Gesendet von Handy, Samsung Galaxy S3
Schick uns doch mal den "createPlayerCar" stock ... oder public whatever.
Gesendet von Handy, Samsung Galaxy S3
Ich kann RoBoy sehr empfehlen, wenn man Probleme hat kann man zu Ihn kommen.
Die V-Server die er anbietet, haben mMn. schon gute Qualität.
-> empfehlenswert !!
|ps: geschrieben von einem Freund PC.
Mit GetPlayerVehicleID lässt du den die des Fahrzeuges auslesen wo du gerade herinnen sitzt,
Ich wette wenn du den Befehl eingibst dann führt er dich zum 0 Punkt
Deswegen musst du das ganze anders Struckturieren.
Ist dies ein Selfmade oder GF ?
Denn zeig mal wie du das Fahrzeug zuweist.
ich versteh grad nicht was du von mir verlangst. und ja ist mir auch grad wieder eingefallen.
ich möchte trtz. eingeltich nur die x y z koordinate heraus finden und dann ein checkpoint setzen lasse
Hallöle,
ich hab folgendes Problem:
Ich hab ein /carfind Befehl gemacht, dieser klappt auch gut ... aber der gibt mir immer die falschen Positionen aus .. ich hab alles schon probiert .. aber geht nichts.
Hoffe auf Hilfe, danke.
if(dialogid == AUTO_FIND)
{
if(response)
{
switch(listitem)
{
case 0:
{
new Float:Pos[3],veh = GetPlayerVehicleID(playerid),id = getSlotID(veh);
if(id == -1)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug!");
GetVehiclePos(veh,Pos[0],Pos[1],Pos[2]);
SetPlayerCheckpoint(playerid,Pos[0],Pos[1],Pos[2],10.0);
}
case 1:
{
new Float:Pos[3],veh = GetPlayerVehicleID(playerid),id = getSlotID(veh);
if(id == -1)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug!");
GetVehiclePos(veh,Pos[0],Pos[1],Pos[2]);
SetPlayerCheckpoint(playerid,Pos[0],Pos[1],Pos[2],10.0);
}
case 2:
{
new Float:Pos[3],veh = GetPlayerVehicleID(playerid),id = getSlotID(veh);
if(id == -1)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug!");
GetVehiclePos(veh,Pos[0],Pos[1],Pos[2]);
SetPlayerCheckpoint(playerid,Pos[0],Pos[1],Pos[2],10.0);
}
case 3:
{
new Float:Pos[3], veh = GetPlayerVehicleID(playerid),id = getSlotID(veh);
if(id == -1)return SendClientMessage(playerid,-1,"Du besitzt kein Fahrzeug!");
GetVehiclePos(veh,Pos[0],Pos[1],Pos[2]);
SetPlayerCheckpoint(playerid,Pos[0],Pos[1],Pos[2],10.0);
}
}
}
else
{
SendClientMessage(playerid,-1,"Abgebrochen!");
}
}
Ja liegt es auch.
Aber ich möchte es nicht umschreiben, deswegen ... irgendwie anders möglich?
-> bin nur kurz da.
Dann lass dir mal alles ausgeben:
Bis wohin wird es debuggt?
Also, es wird die 1 und die 8 gedebuggt.
Alles anzeigenVersuchs mal so:
ocmd:opark(playerid,params[]){
new veh = GetPlayerVehicleID(playerid),id = getSlotID(veh),oapreis;
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,-1," Du musst in einem Abschleppwagen sitzen!");
if(sscanf(params,"i",oapreis)) return SendClientMessage(playerid,-1,"Verwende: /opark [Preis]");
if(GetVehicleModel(veh) != 525)return SendClientMessage(playerid,-1,"Du bist in keinem Towtruck!");
if(!IsPlayerInRangeOfPoint(playerid,150.0,907.2166,-1235.2578,0.9116)) return SendClientMessage(playerid,-1,"Du bist nicht in der O-Amt Base!");
if(GetVehicleTrailer(id)){
if(!sCarInfo[id][CarAbgeschleppt]){
GetVehiclePos(id,sCarInfo[id][pCarPos_X],sCarInfo[id][pCarPos_Y],sCarInfo[id][pCarPos_Z]);
GetVehicleZAngle(id,sCarInfo[id][pCarPos_A]);
sCarInfo[id][CarAbgeschleppt] = 1,
sCarInfo[id][CarAbgeschlepptPreis] = oapreis;
SendClientMessage(ReturnPlayerid(sCarInfo[id][scName]),-1,"Hinweis: Dein Auto/Bike wurde abgeschleppt! Hole es beim Ordnungsamt ab!");
return tuneCar(id,sCarInfo[id][VehID]),saveCar(id);
}
}
return 1;
}
Ansonsten poste doch mal bitte die Funktion "getSlotID"
stock getSlotID(vehicleid)
{
new i;
for(; i != MAX_VEHICLES; ++i)if(sCarInfo[i][VehID] == vehicleid)return i;
return -1;
}
Geht immer noch nicht
Hallo Leute, kommen wir direkt zur Sache:
Ich will das wenn ein Abschlepp Wagen an der Angel ein Car dran hat, das der die CarID direkt ausliest.
Ich hab das z.B. so, aber der Server crashed davon ..
ocmd:oparkt(playerid,params[]){
new veh = GetPlayerVehicleID(playerid),id = getSlotID(veh),pID = ReturnPlayerid(sCarInfo[id][scName]),oapreis;
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,-1," Du musst in einem Abschleppwagen sitzen!");
if(GetVehicleModel(veh) == 525)
{
if(sscanf(params,"i",oapreis)) return SendClientMessage(playerid,-1,"Verwende: /opark [Preis]");
if(!IsPlayerInRangeOfPoint(playerid,150.0,907.2166,-1235.2578,0.9116)) return SendClientMessage(playerid,-1,"Du bist nicht in der O-Amt Base!");
if(GetVehicleTrailer(id))
if(sCarInfo[id][CarAbgeschleppt] == 0){
GetVehiclePos(id,sCarInfo[id][pCarPos_X],sCarInfo[id][pCarPos_Y],sCarInfo[id][pCarPos_Z]);
GetVehicleZAngle(id,sCarInfo[id][pCarPos_A]);
sCarInfo[id][CarAbgeschleppt] = 1;
sCarInfo[id][CarAbgeschlepptPreis] = oapreis;
tuneCar(id,sCarInfo[id][VehID]);
saveCar(id);
SendClientMessage(pID,-1,"Hinweis: Dein Auto/Bike wurde abgeschleppt! Hole es beim Ordnungsamt ab!");
}
}
return 1;
}
Liegt wohl an deinen Textdraws. Für persönliche TDs braucht man PlayerTextDraws.
Die Textdraws hab ich in einer for - Schleife.
Wäre das gleiche wie bei mir
Ich frage ja ab ob der Spieler online und in einem Fahrzeug sitzt.
Jetzt ist das Problem, (ich hab es grad mit einem Kollegen getestet) ..
-> Ich steig in meinem Fahrzeug ein, dann zeigt er meine Sachen an ...
-> mein Kollege steigt danach in ein anderes Auto ein, und ich kriege sein Auto angezeigt .. und er auch bei sich.
SetTimer("SpeedoUpdate",100,1);
Du kannst es auch einfach nur so machen. Was willst du denn mit der Variable da vorne?
Ob es jetzt mit oder ohne ist, macht es ein unterschied ?
Dann mach ich es OHNE.
Nimm einen Timer unter OnGameModeInit, und gehe das mit einer For-Schleife durch.
sprich so?
for(new i; i < MAX_PLAYERS; i++)
{
timer[i] = SetTimer("SpeedoUpdate",100,1);
}
timer[playerid] = SetTimerEx("SpeedoUpdate",500, 1,"i",playerid);
Ich weiss nicht obs daran liegt. Aber warum hast du 2x playerid da stehen?
Genau weiß ich es auch nicht, man hat mir gesagt ich solle es mit SetTimerEx probieren.
Vielleicht kannst du mir ja weiter helfen, weil ich mit SetTimerEx noch nie befasst habe und die Wiki mir nicht so die Infos drüber gibt.
Hallo Leute, folgendes ich hab ein Problem mit dem Tacho ...
Wenn z.B. 3 Spieler auf dem Server sind und alle in ein Fahrzeug steigen und los fahren zeigt das Tacho von jedem Spieler das Tacho ...
Unter OnPlayerConnect:
timer[playerid] = SetTimerEx("SpeedoUpdate",500, 1,"i",playerid);
Eigener Public:
orward SpeedoUpdate(playerid);
public SpeedoUpdate(playerid)
{
//for(new i = 0; i<MAX_PLAYERS; i++){
if(IsPlayerConnected(playerid) && IsPlayerInAnyVehicle(playerid)){
new veh = GetPlayerVehicleID(playerid),kmh[10],zustand[30],tank[10],cars[50],Float:hp;
GetVehicleHealth(GetPlayerVehicleID(playerid), hp);
format(kmh, 10,"KM/H: %d", GetVehicleSpeed(veh));
if(hp == 1000 ){format(zustand, 30,"Zustand: ~g~%.0f", hp);}
format(tank, 10,"Tank: %d", Gas[veh]);
format(cars, 50,"%s", VehicleName[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
TextDrawSetString(Tacho_KMH, kmh);
TextDrawSetString(Tacho_Zustand, zustand);
TextDrawSetString(Tacho_Tank, tank);
TextDrawSetString(Tacho_Car, cars);
}
//}
return 1;
}
thx. an prototype bin grad mit handy on deswegen aber es funzt :b
Der Thread wurde gelöscht und das auch nicht zu unrecht.
Wo liegt jetzt dein Problem mit dem Code den ich geschickt habe?
Ich will das der Name in die Datenbank eingetragen wird, was einfach nicht funktioniert.
SendClientMessage(SpielerName(GetPVarInt(playerid,"Player")),-1,"Du hast das Auto gekauft! Es gehört nun dir, herzlichen Glückwunsch!"); //HIER
GivePlayerMoney(SpielerName(GetPVarInt(playerid,"Player")),-sCarInfo[id][VKPreis]); //HIER
zu ->
SendClientMessage(GetPVarInt(playerid,"Player"),-1,"Du hast das Auto gekauft! Es gehört nun dir, herzlichen Glückwunsch!"); //HIER
GivePlayerMoney(GetPVarInt(playerid,"Player"),-sCarInfo[id][VKPreis]); //HIER
Wie gesagt, die Funktion rausnehmen^^
Dem Player, den ich das Car aber anbiete gehört das Car nicht.
Sprich er drückt "Ja!" sollte normalerweise das Fahrzeug IHM gehören, was aber nicht stimmt.