Also beim Login jetzt oder wie ? Schreibe es mal so:
public OnPlayerRequestClass(playerid, classid)
{
if(sInfo[playerid][PTot] == 1)
{
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"");
SendClientMessageEx(playerid,weiß,"Du bist soeben gestorben!");
SendClientMessageEx(playerid,weiß,"Gleich wird ein Wunder passieren!");
SetTimer("sekunde",sInfo[playerid][tott],0);
SetPlayerVirtualWorld(playerid,89);
SetSpawnInfo(playerid,0,sInfo[playerid][Skin],816.6987,-1103.0229,25.7914,271.5753,0,0,0,0,0,0);
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
return 1;
}
else if(sInfo[playerid][jailtime] > 0)
{
SendClientMessageEx(playerid,IGELB,"Du musst deine Zeit im Knast noch absitzen!");
SetTimer("sekunde",sInfo[playerid][jailtime],0);
SetPlayerInterior(playerid,10);
SetPlayerVirtualWorld(playerid,24);
SetSpawnInfo(playerid,0,sInfo[playerid][Skin],sInfo[playerid][kx],sInfo[playerid][ky],sInfo[playerid][kz],0.0,0,0,0,0,0,0);
SpawnPlayer(playerid);
SetCameraBehindPlayer(playerid);
return 1;
}
else
{
SetSpawnInfo(playerid,0,sInfo[playerid][Skin],1760.8271,-1895.8221,13.5615,268.2114,0,0,0,0,0,0);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SpawnPlayer(playerid);
return 1;
}
return 1;
}
Beiträge von Red_Romeo
-
-
vID != modelid
new vID=GetPlayerVehicleID(i), stringreifen[48],modelid=GetVehicleModel(GetPlayerVehicleID(i));
new panels, doors, lights, tires;
GetVehicleDamageStatus(vID, panels, doors, lights, tires);
if(modelid != 522 && modelid != ...)
{}
-
erledigt Tut, mir leid.. Aber bei der Formatierung wird glaube ich niemand wirklich helfen können.
Bitte formatiere den Pawn Code nochmal richtig, hier siehst du wie mans richtig macht: Der Pawn BB Code - Die richtige AnwendungHast du mal ausprobiert ob der stock überhaupt aufgerufen wird ? Bzw., ob du ihn überhaupt aufrufst ?
Und wieso erstellst du einen Globalen Textdraw unter OnplayerConnect ? Da wird der Textdraw doch überschrieben, OnGameModeInit wäre in dem fall sinvoller. (Ich rede vom Textdraw Time)
-
Falscher bereich, das Thema gehört hier rein: Teammitgliedern (Scripter, Designer, usw.)
-
2 Nachkommastellen und ein % Zeichen (In Textdraws müssen 2 %% angeben werden wenn man ein % Zeichen haben will)
format(stringschaden, sizeof(stringschaden), "Zustand: %.2f%%", vHealth/10);Und hiermit kannst du abfragen ob die Reifen kaputt sind:
https://wiki.sa-mp.com/wiki/GetVehicleDamageStatus
Der Reifenstatus wird im Dualsystem (2er System) angegeben.
2^0 = 1 = Reifen hinten rechts
2^1 = 2 = Reifen vorne rechts
2^2 = 4 = Reifen hinten links
2^3 = 8 = Reifen vorne links
einfaches Beispiel new panels, doors, lights, tires;
GetVehicleDamageStatus(GetPlayerVehicleID(playerid), panels, doors, lights, tires);
if(tires == 0)SendClientMessage(playerid, -1, "Alle Reifen sind heile.");
else {
if(tires >= 8){
tires -= 8;
SendClientMessage(playerid, -1, "Der Reifen vorne links ist kaputt.");
}
if(tires >= 4){
tires -= 4;
SendClientMessage(playerid, -1, "Der Reifen hinten links ist kaputt.");
}
if(tires >= 2){
tires -= 2;
SendClientMessage(playerid, -1, "Der Reifen vorne rechts ist kaputt.");
}
if(tires >= 1){
tires -= 1;
SendClientMessage(playerid, -1, "Der Reifen hinten rechts ist kaputt.");
}
}
//edit einfaches Beispiel hinzugefügt -
Nein, wenn man connectet muss man sich doch einloggen oder nicht ?
Und wen du alles Geladen hast (Geld, Level, etc.), machst du anschließend die Abfrage.
Wichtig ist aber das du die Variable PTot auch abspeicherst und lädst -
Beim Logout/Disconnect speichern, und beim Connecten/Login laden.
Und dann müsstest du eig. nurnoch folgende Abfrage machen (nach dem der Spieler geladen wurde):
if(sInfo[playerid][PTot] == 1)
{
SetPlayerVirtualWorld(playerid,89);
SetPlayerPos(playerid,1760.8271,-1895.8221,13.5615);
SetPlayerFacingAngle(playerid,271.5753);
SetCameraBehindPlayer(playerid);
}
else
{
//Ansonsten ganz normal spawnen
} -
Hey ich habe das Problem das ich nach dem Tot immernoch am Friedhof gespawnt werde aber wieso ?
Wie darf man das verstehen ? Bzw. du solltest uns schon mitteilen wie du es gerne haben möchtest.
Und evtl. wäre es auch noch hilfreich wenn du OnPlayerDeath postest. -
-
SQL
--Hier fehl ein ' am ende der fraktion [20:44:30] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE user SET level='0',money='6880',alevel='7',fraktion='2,ra", callback: "(null)", format: "(null)" --ein ' nach der id zu viel [20:44:30] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6' WHERE id='4000'' at line 1 --ein ' nach der id zu viel [20:49:28] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '6',spawnchange='0' WHERE id='1'' at line 1
//edit Änder folgendes ersmal um, falls nochmehr fehler enthalten sind bitte erneut die mysqllog schicken.
savePlayer(playerid)
{
if(sInfo[playerid][eingeloggt]==0)return 1;
//Speichern level,money
new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i',spawnchange='%i' WHERE id='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo[playerid][spawnchange],sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}public OnPlayerDisconnect(playerid, reason)
{
for(new i=0; i<sizeof(aInfo); i++)
{
if(aInfo[i][id_x]==0)continue;
if(aInfo[i][besitzer]!=sInfo[playerid][db_id])continue;
GetVehiclePos(aInfo[i][id_x],aInfo[i][c_x],aInfo[i][c_y],aInfo[i][c_z]);
GetVehicleZAngle(aInfo[i][id_x],aInfo[i][c_r]);
new query[156];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i',fraktion='%i',rang='%i' WHERE id='%i'",sInfo[playerid][level],
GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo,sInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"","");
DestroyVehicle(aInfo[i][id_x]);
aInfo[i][id_x]=0;
break;
}
savePlayer(playerid);
resetPlayer(playerid);
loadPlayerCars(playerid);
return 1;
} -
TextDrawBoxColor(Tachohintergrund, 0x000000FF);
-
-
-
Du must HTML Code verwenden..
Create3DTextLabel("{21DD00}Fahrradverleih{FFFFFF}\n Spieler unter Level 4 können\n hier für 300$ ein Fahrrad mieten.\n{21DD00}/fahrrad{FFFFFF}",0xFFFFFFAA,1773.0819,-1896.1542,13.5516,30,0); //Fahrradverleih
-
KEY_WALK gibt es im Fahrzeug nicht.
Hier hast du eine Liste aller Keys:
http://wiki.sa-mp.com/wiki/Keys//edit
Keys in Fahrzeugen:
W Taste: KEY_SPRINT
S Taste: KEY_JUMP
Taste 2: KEY_LOOK_BEHIND
2 / NUMPAD +: KEY_SUBMISSION
H Taste: KEY_CTRL_BACK
H / CAPSLOCK: KEY_CROUCH
ALT GR / LCTRL / NUM0: KEY_ACTION
LALT: KEY_FIRE
... -
native IsValidVehicle(vehicleid);
public OnPlayerDisconnect(playerid){
if(IsValidVehicle(Mietfahrrad[playerid])){
DestroyVehicle(Mietfahrrad[playerid]);
Mietfahrrad[playerid] = 0;
}
} -
Kommt er vielleicht in diese Abfrage hier mehr als 1x rein ?
if(JamaicaDrehtAb >= 3)
{
KillTimer(JamaicaChecktAbTimer);
JamaicaGibtBefehl = 1;
print("ActorSchiessenTimer wurde gestartet");//Wie oft würde er dies ausgegeben wenn du den print einfügst ? Evtl wird 'ActorSchiessenTimer' ja überschrieben.
ActorSchiessenTimer = SetTimer("ActorSchiessen", 5000, true);
}//edit
Aner der wird doch gekillt?
Also in der Abfrage wird er nicht 'gekillt' aber du könntest den Timer zur Sicherheit killen.
-
Wo setzt du JamaicaGibtBefehl auf 1 ?
Wo setzt du MotelUnruhig auf 1 ?
Wo rufst du das public das erstemal auf ?
Startest du den Timer noch woanders ? -
hmmm bei deinem stock GibGeld wird noch += -value das geht so nicht.
Wieso sollte das nicht Funktionieren ?
Also wenn ich in meinem Taschenrechner eine negative Zahl addiere funktioniert das super.
Beispiel Aufgabe: 100 + (-10) = ???Ich weiß ja nicht was für ein Wert bei dir rauskommt, aber bei mir kommt 90 raus.
-
Okay, das mit den Tank habe ich rausgemacht, da ich momentan noch kein Tanksystem habe.
Ich habe wohl richtig gefailt, denn ich bin davon ausgegangen,
dass es überhaupt keinen unterschied macht wenn ich
anstatt "tmp_engine" einfach "engine" schreibe.Vielen Dank, es funktioniert nun!
Es macht auch kein unterschied ob du tmp_engine oder engine schreibst, dein Fehler liegt/lag woanders.
if(engine==1) { engine=0; } else { engine=0; }
// ok ok ok fehler
Der Wert wert engine wir immer auf 0 gesetzt egal welchen Wert er vorher hatte.
Richitg wäre es so:
if(engine==1) { engine=0; } else { engine=1; }Oder etwas kürzer:
SetVehicleParamsEx(vID,(engine == 1) ? (0) : (1), lights, alarm, doors, bonnet, boot, objective);