Muss sagen es wäre echt geil, einziger Bug der manchmal vorkommt so immer nach meinem 10. Compilen das sich der Compiler nicht mehr meldet und das ganze Programm abstürzt. Vielleicht liegt es darin das ich soviele Zeilen habe oder was auch immer. Beim englischen gehts ohne Probleme.
Beiträge von Austrianer
-
-
Am besten einfach immer beim Ausloggen die Koordinaten speichern mit GetPlayerPos. Und diese dann in deine Dini-Datei oder in deine Tabelle, falls du ein DBMS benutzt.
Beim Einloggen einfach die Koordinaten abrufen und mit SetPlayerPos die Position setzen -
Bei deiner else-Zeile liegt der Fehler. Du kannst nicht 2 Sachen nach einer Bedingung machen ohne eine schwellige Klammer.
if(strcmp(cmdtext,"/vehradio",true)==0) {
if(IsPlayerInAnyVehicle(playerid)) {
ShowPlayerDialog(playerid,DIALOG_RADIO,DIALOG_STYLE_LIST, "Gute Radiosender", "TechnoBase.FM\nHouseTime.FM\nByte.FM\nILoveRadio.de\nTop100 Station\nDubstep.FM\nRockland Radio\nRauteMusic House\nRauteMusic Club\nRadio ausschalten", "Auswählen", "Beenden");
} else {
SendClientMessage(playerid,0x00FF00AA,"Du bist in keinem Fahrzeug");
StopAudioStreamForPlayer(playerid);
}
return 1;
} -
public OnPlayerDeath(playerid, killerid, reason) {
new string[128], name[24];
SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
GivePlayerMoney(killerid, 1000); // Geld nach deinem Belieben ändern
GetPlayerName(killerid, name, sizeof(name));
format(string, sizeof(string), "Du wurdest von %s getötet.", name);
SendClientMessage(playerid, FARBE, string);
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "Du hast %s getötet.", name);
SendClientMessage(killerid, FARBE, string);
return 1;
}Falls du das mit den Messages nicht haben möchtest, einfach entfernen
-
-
Den Fehler hatte ich auch mal, ich habe extrem lange danach gesucht, bis ich es gefunden habe. Die Schleife durchläuft alle Fahrzeuge die du maximal hast obwohl sie nicht mal gespawnt/erstellt worden ist.
Deswegen würde ich dir das empfehlen.for(new x=0;x<MaxVeh;x++)
{
if(IsVehicleStreamedIn(x, playerid)
{
if(strcmp(PlayerCar[gpid][x][CarNummernschild],kz,true)==0)
{
PlayerCar[gpid][x][CarAbgeschleppt] = 1;
PlayerCar[gpid][x][CarSperrpreis]=preis;
}
} else {
break;
}
} -
Omg da haben ein paar Poster Scripten verlernt.
Beim Kickbefehl keinen String verwenden.
Die Kick-Methode benötigt einen Int-WertWeder strlen -> Weil das nur die Zeichenlänge des Strings angibt und nicht den String zu einem Int macht.
Außerdem auch nicht inputtext einfach einsetzen. FailKick(strval(inputtext);
Strval wird benutzt um einen String zu einem Int zu machen.
-
new string[50];
format(string, sizeof(string), "%s", inputtext);Oder eben
SetPVarString(playerid, "String", inputtext);
-
Einfach die Special-Actions anschauen dann siehst du es.
Zitat0 - SPECIAL_ACTION_NONE
SetPlayerSpecialAction(pID,SPECIAL_ACTION_NONE);
Das jetzt unter irgendeinen Befehl einbauen oder wenn er ihn einknastet
-
Ich hatte mein Tachosystem mit mehreren Textdraws, und immer wenn ich das eine PlayerTextdraw neu gesetzt habe sind die anderen verschwunden und das neugesetzte wurde angezeigt. Immer eins nach dem anderem. Hab jetzt alle in eines zusammengefügt dies funktioniert.
-
Es können aber nicht mehrere Playertexte zur gleichen Zeit angezeigt werden
Aber ansonsten richtig gutes Update, hilft mir sehr und vielen anderen sicher auch
-
Nach langem hin und her haben wir es endlich geschafft
Wusste ich doch es hätte eh alles funktioniert was ich dir geschrieben habe
Viel Spaß noch
-
Hast du dies ebenfalls unter OnGameModeInit hinzugefügt?
ManualVehicleEngineAndLights();
Dies brauchst du um selbst die Parameter zu bestimmen
-
Hmm das ist echt komisch.
Dann füg dies mal unter OnGameModeInit ein.
for(new i=1; i != MAX_VEHICLES; i++)
{
GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
}Und das bei OnVehicleSpawn entfernen den Code innerhalb des Callbacks.
-
Du hast Level geschrieben, diese Variable gibt es bei dir gar nicht. Du hast das Admin davor vergessen.
format(string, sizeof(string), "%s's Adminlevel wurde von %s auf %d gesetzt.", pIDName, Givername, Level);
in
format(string, sizeof(string), "%s's Adminlevel wurde von %s auf %d gesetzt.", pIDName, Givername, AdminLevel);
umändern.
Probier es dann mal aus.
-
Achso dann hast du die Werte schon ganz oben mal gesetzt. Vor dem OnGameModeInit-Callback gesetzt.
Dann entferne die Zeile.
new engine,lights,alarm,doors,bonnet,boot,objective;
Dann sollte es wirklich funktionieren
-
Du hast einen fatalen Fehler gemacht. Und zwar hast du die schwelligen Klammern vergessen.
if(Admin == 1) {
new Float:x,Float:y,Float:z; // <-- Landet sowieso unter der if Anweisung.
GetPlayerPos(playerid, x, y, z);
CreateHaus(x,y,z,100,"Keiner",strval(params));
}So funktioniert es.
EDIT:
Goldkiller war schneller als ich
-
Jedes Mal wenn du nun ein Fahrzeug spawnst wird die Schleife aufgerufen. Omg das kannst du doch nicht tun
Außerdem hab ich deinen Fehler schon gefunden. Du hast die Werte für engine, lights usw. nicht gesetzt.
Hier für dichpublic OnVehicleSpawn(vehicleid) {
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
return 1;
} -
Ist eh ganz leicht.
Aber kommt jetzt drauf an ob du möchtest das der eingeladene Spieler das Angebot ablehnen/akzeptieren kann oder der Leader gleich einen Spieler ohne Ablehnung/Annehmung inviten kann
-
Wo hast du denn dieses Stück Script eingebaut in deiner OnVehicleSpawn Callback oder unter OnGameModeInit?