Das hat nicht wirklich was gebracht.
Poste mal den Code bei dem der Server abstürzt, vielleicht sieht man es da direkt schon.
Beiträge von Jeffry
-
-
Komisch. Poste mal den gesamten Code, oder schicke ihn mit in PN, wenn du ihn nicht öffentlich haben willst, dann schaue ich mir das mal an und kompiliere es mal.
Um deine Maps brauchst du dich nicht zu sorgen, wenn du es mir in PN schickst, ich fange damit nichts an und gebe es natürlich auch nicht weiter. -
Du hast nicht die aktuellen Includes. Lade dir die neuen Includes herunter, oder am besten gleich die neuste Server Version.
-
Nur mal als Beispiel, dass 1 = Cops ist.
if(strcmp(cmdtext, "/motor",true) == 0)
{
if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
new Vehicle = GetPlayerVehicleID(playerid), engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(Vehicle, engine, lights, alarm, doors, bonnet, boot, objective);GetVehicleParamsEx(Vehicle,engine,lights,alarm,doors,bonnet,boot,objective);
if(Vehicle != INVALID_VEHICLE_ID)
{
for(new i=0; i<MaxVeh; i++)
{
if(PlayerCar[playerid][i][CarId] == Vehicle)
{
if(engine == VEHICLE_PARAMS_ON)
{
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
}
else
{
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
}
return 1;
}
}
if(IsACopCar(Vehicle) && (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1))
{
if(engine == VEHICLE_PARAMS_ON)
{
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~r~aus!", 2000, 5);
}
else
{
SetVehicleParamsEx(Vehicle,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~W~Motor ~g~an!", 2000, 5);
}
return 1;
}
return SendClientMessage(playerid, 0xFF0000FF, "Fahrzeug gehört nicht dir oder deiner Fraktion!");
}
return 1;
}Nach diesem Prinzip für alle.
-
Ah, so einfach kanns sein. Ich dachte du hast die einfach nicht mitkopiert.
new Carid;
Löschen. -
Poste mal die Fehler die bei beiden Varianten kommen.
-
Du willst, dass man den Motor nur starten kann, wenn man in der Fraktion ist?
Poste bitte mal die Variable in der du die Fraktion des Spielers speicherst. Müsste irgendwie so aussehen: SpielerInfo[playerid][Fraktion] -
enum SpielerTimeBanned
{
pNameTBan[MAX_PLAYER_NAME],
pTBanIP[16],
pTBanGrund[32],
pvonAdmin[MAX_PLAYER_NAME],
pTBanDauer
}
new SpielerTimeBan[MAX_PLAYERS][SpielerTimeBanned];ocmd:timeban(playerid,params[])
{
if(SpielerInfo[playerid][pAlevel] >= 1)
{
new pID, aname[MAX_PLAYERS],spieler[MAX_PLAYERS],grund[32],dauer,string[128];
if(sscanf(params,"uds[32]",pID,dauer,grund)) return SendClientMessage(playerid,0xFF0000FF,"[FEHLER]{FFFFFF} /Timeban [Name/ID][Dauer][Grund]");
//if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,0xFF0000FF,"Kein Spieler mit der angegebenen ID ist Online");
{
GetPlayerName(playerid, SpielerTimeBan[pID][pvonAdmin], MAX_PLAYER_NAME);
GetPlayerName(pID, SpielerTimeBan[pID][pNameTBan], MAX_PLAYER_NAME);
format(string,sizeof(string),"[INFO]{00CDFF} %s %s {FFFFFF}hat {00CDFF}%s {FFFFFF}für {00CDFF}%d Minuten {FFFFFF}vom Server verbannt! Grund: {00CDFF}%s",GetPlayerAdminRankName(playerid),SpielerTimeBan[pID][pvonAdmin],SpielerTimeBan[pID][pNameTBan],dauer,grund);
SendClientMessageToAll(0xFF0000FF,string);
SpielerTimeBan[pID][pTBanDauer] = Now() + dauer*60;
GetPlayerIp(pID, SpielerTimeBan[pID][pTBanIP], 16);
SpielerTimeBan[pID][pTBanGrund] = grund;
CreateTBanAccount(pID);
Kick(pID);
}
}
return 1;
}stock CreateTBanAccount(pID)//pass[]
{
new query[256],Name[MAX_PLAYER_NAME];
GetPlayerName(pID,Name, MAX_PLAYER_NAME);
format(query, sizeof(query), "INSERT INTO `SpielerTimeBanned` (`Name`, `IP`, `TBanGrund`, `vonAdmin`, `Dauer`) VALUES ('%s', '%s', '%s', '%s','%d')", SpielerTimeBan[pID][pNameTBan], SpielerTimeBan[pID][pTBanIP], SpielerTimeBan[pID][pTBanGrund], SpielerTimeBan[pID][pvonAdmin], SpielerTimeBan[pID][pTBanDauer]);
mysql_query(query);
printf("[S-INFO] %s wurde von %s für %d verbannt. Grund: %s",SpielerTimeBan[pID][pNameTBan],SpielerTimeBan[pID][pvonAdmin],SpielerTimeBan[pID][pTBanDauer],SpielerTimeBan[pID][pTBanGrund]);
return 1;
}Versuch es mal so.
-
Also, dann: Im GameMode:
case 17:
{
strmid(jgtext,"Bestatter",0,strlen("Bestatter"),255), GettingJob[playerid] = 33;
}
zu:
case 17:
{
strmid(jgtext,"Bestatter",0,strlen("Bestatter"),255), GettingJob[playerid] = 33;
CallRemoteFunction("SetJob", "dd", playerid, 33);
}public OnPlayerStateChange(playerid, newstate, oldstate)
{
printf("IsARomero: %d | playerid: %d | model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
printf("Job: %d | NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
if(IsARomero(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist kein bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
return 1;
}
zu:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}Und dann den Filterscript in die server.cfg schreiben, sodass er geladen wird.
-
@[LnD]JustMe.77:
Lade dir mal das crashdetect Plugin herunter und "installiere" es in deinen Server: http://forum.sa-mp.com/showthread.php?t=262796
Dann poste was in deinem Server Log steht, wenn der Server abstürzt. -
Das tut ja anscheinend bei dir nicht. Wo hast du denn das mit dem GettingJob[playerid] jetzt gemacht? Im Filterscript?
Wenn ja, poste mal bitte deinen Filterscript, komplett. -
Hast du den Filterscript noch am laufen? Wenn ja, entferne den, sonst geht es nicht. Du kannst nur in einem von beidem die Abfrage machen, in beiden macht es keinen Sinn.
-
if(!(GettingJob[playerid][pJob] != 33 || IsPlayerNPC(playerid))
zu:
if(GettingJob[playerid] != 33 || IsPlayerNPC(playerid)) -
Ja, ändere das mal.
Die Methode mit dem Filterscript sollte aber trotzdem Funktionieren, wenn du es richtig gemacht hast. -
Da fügst du jetzt unter der strmid Zeile das hier ein:
CallRemoteFunction("SetJob", "dd", playerid, 33);
Achte auch darauf, dass der Filterscript geladen ist.Hat es eigentlich einen Grund, dass du bei OnPlayerStateChange nicht nach
GettingJob[playerid]
abfragst, sondern nach
PlayerInfo[playerid][pJob]
?Das scheint mir irgendwie nicht ganz richtig, außer da ist ein Sinn dahinter.
-
Ach, stimmt. Habe ich nicht drauf geachtet.
if(PlayerInfo[playerid][pAduty] && GetPlayerAdmin(playerid) != 0){
GetPlayerName(playerid, string, sizeof string);
strdel(string, 0, 4);
}zu:
GetPlayerName(playerid, string, sizeof string);
if(PlayerInfo[playerid][pAduty] && GetPlayerAdmin(playerid) != 0){
strdel(string, 0, 4);
}In beiden stocks.
-
Dann hast du nicht die richtige Zeile gepostet, weil das ist korrekt so.
Außer du hast CreateObject irgendwo gehookt und einen Parameter hinzugefügt/entfernt, das musst du mal nachschauen.Ansonsten, mach mal einen Screenshot von Compiler und den Zeilen um 299, so wie ich es gemacht habe.
-
Du schreibst es nicht in die Datei aus der du es lädst.
Füge nach
SetPlayerSkin(playerid,66);das hier ein:
new Playerdatei[128];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Playerdatei,sizeof(Playerdatei),"/Accounts/%s.ini",name);
dini_IntSet(Playerdatei, "Skin", 66); -
und das andere konnte ich net erstellen
Hast du einen Fehler angezeigt bekommen, oder warum ging es nicht? Möglicherweise hast du nur eine veraltete SA-MP Version, oder veraltete Includes. -
Ich hab deinen Code mal bei mir kompiliert, das erzeugt keine Warnung:
Sicher, dass du die richtige Zeile gepostet hast?
Wenn ja, gehe mal zu /pawno/includes/a_objects.inc und suche nach "CreateObject". Wie sieht die native Zeile bei dir aus?