Veränderst du auch das Interior des Spielers? Der Innenraum der Motorradschule ist nämlich in Interior-ID 3.
SetPlayerInterior(playerid, 3);
Beiträge von Johnny
-
-
Wo wird die Funktion "SpawnPlayer" aufgerufen?
-
Kann es sein, dass du den Spieler nicht nur einmal spawnen lässt?
Wenn er nämlich den if-Block durchlaufen hat wird sein pTutorial-Wert auf 1 gesetzt und bei einem weiteren Aufruf des Callbacks wird logischerweise der else-Block durchlaufen.//Edit: Siehe deine Logs. Du lässt ihn zweimal spawnen.
-
Also dein Problem ist jetzt folgendes:
pTutorial ist auf 0, es wird aber der else-Block ausgeführt?Beide Blöcke werden in einem Durchlauf sicher nicht ausgeführt.
Weil dann kann pTutorial nur auf 1 gesetzt sein. Lass es dir doch vorher mal ausgeben. -
-
Das konnte ich aus dem Text nicht rauslesen, sorry.
Also: Wenn Spieler p die ID 0 hat, funktioniert es, wenn p jedoch 1 ist, funktioniert dein System nicht? -
"SetPlayerMarkerForPlayer(playerid, showplayerid, color);"
Du nutzt diese Funktion bisher nur dafür, dass die Farbe von (bei dir) "playerid" für den Spieler "p" unsichtbar wird.
Das ganze musst du natürlich für den anderen Spieler genauso machen und somit nur die beiden IDs tauschen: -
Du benutzt bei dem Dialog fälschlicherweise "switch (listitem)".
Dabei ist es doch ein Dialog vom Typ INPUT, womit der Parameter "listitem" nichts aussagt.
Speichere den Kraftstoff beim Dialog "DIALOG_KRAFTSTOFF" als PVar ->
"SetPVarInt(playerid, "kraftstoffTyp", listitem);"Benutze dann im switch beim Dialog "DIALOG_WVLITER" folgendes:
"switch(GetPVarInt(playerid, "kraftstoffTyp"))" statt "switch(listitem)"Das Ganze sieht dann so aus (es muss jede Variable "lisitem" im Dialog WVLITER ersetzt werden [Habe die Variable mal krafstoffTyp genannt]):
Code
Alles anzeigenocmd:fill(playerid,params[]) { new Float:x,Float:y,Float:z; if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT)return SendClientMessage(playerid,COLOR_RED,"Du musst aus dem Fahrzeug austeigen."); if(!AtTankstelle(playerid))return SendClientMessage(playerid,C_Error,"Du bist an keiner Tankstelle!"); GetPlayerPos(playerid,x,y,z); if(GetVehicleDistanceFromPoint(LastVehID[playerid], x, y, z) > 10) return SendClientMessage(playerid, COLOR_GRAY, "* Du bist zuweit vom Fahrzeug entfernt."); if(IsAFahrrad(LastVehID[playerid]))return SendClientMessage(playerid,C_Error,"Du kannst keine Fahrräder betanken!"); ShowPlayerDialog(playerid,DIALOG_KRAFTSTOFF,DIALOG_STYLE_LIST,"Wähle deine Kraftstoffart:","Diesel\nBenzin\nLkw Diesel\nGas","Tanken","Abbrechen"); return 1; } if(dialogid == DIALOG_KRAFTSTOFF) { if(!response)return 1; SetPVarInt(playerid, "kraftstoffTyp", listitem) ShowPlayerDialog(playerid,DIALOG_WVLITER,1,"Tankstellenmenü","\nWie Viel Liter möchtest du Tanken?\n","tanken","volltanken"); return 1; } if(dialogid == DIALOG_WVLITER) { new vmodel = GetVehicleModel(LastVehID[playerid]), krafstoffTyp = GetPVarInt(playerid, "kraftstoffTyp"); if(!response)return 1; if(strval(inputtext) < 1 || strval(inputtext) > 100) { SendClientMessage(playerid,C_Error,"Du kannst nur 1 - 100 Liter tanken... "); ShowPlayerDialog(playerid,DIALOG_WVLITER,1,"Tankstellenmenü","\nWie Viel Liter möchtest du Tanken?\n","tanken","volltanken"); return 1; } switch (krafstoffTyp) { case 0: { if(krafstoffTyp != sprit[vmodel-400]) { SetVehicleHealth(LastVehID[playerid],500); SendClientMessage(playerid,C_Error,"Du hast den falschen Kraftstoff getankt!"); return 1; } else { SendClientMessageEx(playerid,-1,"string: %s | Zahl: %i",inputtext,inputtext); TankLiter[playerid]=strval(inputtext); SetTimerEx("RefillTimer",10000,0,"i",playerid); TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid,"~r~Dein Fahrzeug wird betankt...",10000,4); } } case 1: { if(krafstoffTyp != sprit[vmodel-400]) { SetVehicleHealth(LastVehID[playerid],500); SendClientMessage(playerid,C_Error,"Du hast den falschen Kraftstoff getankt!"); return 1; } else { SendClientMessageEx(playerid,-1,"string: %s | Zahl: %i",inputtext,inputtext); TankLiter[playerid]=strval(inputtext); SetTimerEx("RefillTimer",10000,0,"i",playerid); TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid,"~r~Dein Fahrzeug wird betankt...",10000,4); } } case 2: { if(krafstoffTyp != sprit[vmodel-400]) { SetVehicleHealth(LastVehID[playerid],500); SendClientMessage(playerid,C_Error,"Du hast den falschen Kraftstoff getankt!"); return 1; } else { SendClientMessageEx(playerid,-1,"string: %s | Zahl: %i",inputtext,inputtext); TankLiter[playerid]=strval(inputtext); SetTimerEx("RefillTimer",10000,0,"i",playerid); TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid,"~r~Dein Fahrzeug wird betankt...",10000,4); } } case 3: { if(krafstoffTyp != sprit[vmodel-400]) { SetVehicleHealth(LastVehID[playerid],500); SendClientMessage(playerid,C_Error,"Du hast den falschen Kraftstoff getankt!"); return 1; } else { SendClientMessageEx(playerid,-1,"string: %s | Zahl: %i",inputtext,inputtext); TankLiter[playerid]=strval(inputtext); SetTimerEx("RefillTimer",10000,0,"i",playerid); TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid,"~r~Dein Fahrzeug wird betankt...",10000,4); } } } return 1; }
-
Dort waren noch mehr kleine Fehler, habe es editiert, falls die die vorherige Version genommen hast.
-
Du hast einen Fehler bei der ersten Bedingung in deiner Schleife. Nur das Adminlevel 2 wird durchgelassen. Außerdem nimmst du im switch das Adminlevel des Spielers playerid und nicht des Spielers i
Nutze das:Code
Alles anzeigenocmd:admins(playerid,params[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(GetPVarInt(i,"Adminlevel")>=2) { new string[123], aname[63]; switch(GetPVarInt(i,"Adminlevel")) { case 0:{aname="Bürger";} case 1:{aname="VIP";} case 2:{aname="Supporter";} case 3:{aname="Moderator";} case 4:{aname="SuperModerator";} case 5:{aname="Admin";} case 6:{aname="Owner";} } format(string,sizeof(string)," %s * Admin: %s %i",aname,SpielerName(i),i); SendClientMessage(playerid,GRÜN,string); } } }
Info: Vom Handy gesendet. -
VitoHusky: Darf ich fragen, ob und wenn ja, wie du das Problem gelöst hast. Bei uns tritt momentan derselbe Fehler auf...
(Entschuldigt das "Ausgraben")
-
Soweit ich es weiß und bisher benutze verhalten diese sich wie Pickups und erscheinen in jedem Interior an der Position
-
Groß-/Kleinschreibung beachtet?
-
Versuch es so:
if(GetPlayerVehicleSeat(playerid) == 0)
{
new vehicleid,Float:health;
vehicleid = GetPlayerVehicleID(playerid);
if(GetVehicleModel(vehicleid) != 509 && GetVehicleModel(vehicleid) != 481 && GetVehicleModel(vehicleid) != 510)
{
new string[500];
GetVehicleHealth(vehicleid,health);
if(Tank[vehicleid]<=100)format(string,sizeof string,"Tank: %i Liter~n~Zustand: %1.0f",Tank[vehicleid],health);
TextDrawSetString(Anzeige[playerid],string);
}
}
else
{
TextDrawSetString(Anzeige[playerid], " ");
} -
Ich schlage mal 2 Möglichkeiten vor:
du machst einfach nen zweiten Befehl (/accept einladung) und im /invite Befehl machst du folgendes:
SetPVarInt(pID,"FrakEinladung",frak);
Dann fragst du in dem accept Befehl ab ob die Variable auf 0 ist oder >0 ist.
Falls sie 0 ist --> Keine Einladung
Falls sie höher ist
SetPVarInt(playerid,"Fraktion",GetPVarInt(playerid,"FrakEinladung"));
... ((Texte))2.:
Du machst es einfach im Dialog ---> einfacher
2 Buttons (Annehmen, Ablehnen) -
Also ich habe das so:
stock adminlog(string[])
{
new time[70];
new sec,mins,std;
new day,month,year;
getdate(year,month,day);
gettime(std,mins,sec);
format(time, sizeof(time), "[%i/%i/%i|%i:%i:%i]",day,month,year,std,mins,sec,string);
new datei[50];
format(datei,sizeof(datei),"Playerlogs/Adminlog.log");
dini_Set(datei,time,string);
}Das würde dann so aussehen:
-
-
Selfmade Script?
Wie hast du die Teams erstellt?
Ja,
Ich habe einfach SetPlayerTeam(playerid,1); für Cops, wie oben geschrieben -
Hi,
Nach nicht erfolgreichem Benutzen der SuFu stelle ich jetzt hier meine Frage:
Ich habe es in meinem script so gemacht, dass ich LSPD und FBI (also alle Cops) ind das gleich Team gesetzt habe.
Jedoch ist es ja bekannt, dass man sich dann nicht killen kann. Kann man diese Funktion ausschalten?MfG
-
Also die einfachste Variante ist:
Ganz oben
new nummer;
Dann bei "OnPlayerConnect
SetPVarInt(playerid,"Telefonnummer",nummer+10000)
nummer++;
Damit nicht jeder gleiche nummer hat am Ende nummer++
Also die Nummer vom ersten Spieler wäre dann logischer Weise 10000, die vom zweiten 10001
Ich hab es jedoch so
SetPVarInt(playerid,"Telefonnummer",nummer+10000)
nummer+9;
Dann sieht das alles in meinen Augen besser und dynamischer aus!
(Also: erster: 10000; zweiter: 10009; dritter: 10018..)