Lass bei OnPlayerDisconnect den Skin speichern.
//OnPlayerDisconnect
SetPVarInt(playerid,"Skin");
Arbeite nur mit Dini, Sorry.
Bei deinen Stocks SpielerSpeichern und SpielerLaden (Oder so) genau so.
Dann beim Einloggen wieder Laden.
lg
Lass bei OnPlayerDisconnect den Skin speichern.
//OnPlayerDisconnect
SetPVarInt(playerid,"Skin");
Arbeite nur mit Dini, Sorry.
Bei deinen Stocks SpielerSpeichern und SpielerLaden (Oder so) genau so.
Dann beim Einloggen wieder Laden.
lg
So ungefähr.
if(strcmp(cmdtext, "/exit", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,/*1412.6999511719,-1700.4000244141,13.199999809265*/)) // Deine Coords wo er stehen soll, damit er rauskommt.
{
SetPlayerInterior(playerid,0); // 0 Ist die Normale Spieler Welt
SetPlayerPos(playerid,/*2496.0500,-1692.9301,1014.7422*/); // Hier deine Coords, wo der Spieler gespawnt werden soll (Das was ich ausgeklammert habe)
return 1;
}
}
lg
#E: lg vergessen und natürlich Exit nicht Enter xD
Dann musst du das anders machen.
if(strcmp(cmdtext, "/enter", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,1412.6999511719,-1700.4000244141,13.199999809265))
{
SetPlayerInterior(playerid,20);
SetPlayerPos(playerid,/*2496.0500,-1692.9301,1014.7422*/); // Hier deine Coords, wo dein Interior ist (Das was ich ausgeklammert habe)
return 1;
}
}
lg
if(strcmp(cmdtext, "/enter", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,1412.6999511719,-1700.4000244141,13.199999809265)) //Ausrufe Zeichen macht kein Sinn, sont wird er die ganze Zeit teleportiert.
{
SetPlayerPos(playerid,2496.0500,-1692.9301,1014.7422);
SetPlayerInterior(playerid,20); // Coords braucht dieser Befehl nicht.
return 1;
}
}
Und haste auch den CMD in den richtigen Public geschrieben?
lg
Kommen Errors, die so heissen: "Loose Indentation"? Das sind Einrückungsfehler, diese kannst du easy mit "TAB" drücken ausbessern.
Und Pupskuchen hat schon gesagt, einrücken ist wichtig damit du nicht den Überbklick verlierst.
lg
#E: Grammar Fail!
Klammerin sind dazu wichtig, die Befehle zusammen zu halten. Beispiel.
// Befehl
if(IsPlayerConnected(i))
{ // Würde ich jeweils einfach die Klammern weglassen, käme es zu Errors und das Script würde nichts mehr checken.
if(IstSpielerAdmin(i,1))
{// Das heisst: Sobald du eine Klammer vergisst, kriegst du meist 26 Errors. (Weisen auf ein Klammerfehler hin)
SendClientMessage(i,Blau,text);
if(GetPVarInt(playerid,"Adminlevel")==0) SendClientMessage(playerid,Rot,"Nutze den /a Chat nicht aus!");
}// Wenn du oben ins Script "#pramga tabsize 0" oder sowas eingibst, eignoriert das Script sämtliche Abstände der Klammern. Beispiel unten.
}
}
return 1;
}
if(IsPlayerConnected(i))
{
if(IstSpielerAdmin(i,1))
{
SendClientMessage(i,Blau,text);
if(GetPVarInt(playerid,"Adminlevel")==0) SendClientMessage(playerid,Rot,"Nutze den /a Chat nicht aus!");
}
}
}
return 1;
}
lg
//Wenn er sich eine kauft, hast die vielleicht in einem Dialog oder so^^
DeineVariable/Bool[playerid] = false;
lg
#E: Falsche Klammer und lg vergessen ;]
Oder noch ne andere Idee: Du lässt den Spieler in den Zug setzen OnPlayerConnect PutPlayerInToVehicle und dann zeigst du ihm einfach die Dialoge an. Natürlich nur als "Beifahrer" setzen und den Spieler freezen. TogglePlayerControllable(playerid,0);
Du willst dass die Kamera dem Zug folgt und dabei man sich Registrieren / Einloggen muss?
Hab ich dass so richtig Verstanden?
Wenn ja:
InterPolateCameraPos
InterPolateCameraLookAt
Sonst fällt mir nichts ein...
Wenn ichs falsch verstanden habe, Sorry.
lg
Perfekt, vielen Dank!
lg
P.S: Close please
Hi Leute,
kennt ihr grad eine Seite, wo folgende Begriffe gut und auf "normalen" Deutsch erklärt werden?
==
=
!=
>=
<=
&&
||
Und solche Begriffe eben?
lg
Hallo Leute,
heute soll mein Server Public gehen, und der Letzte Befehl, der mir alles vermasselt, steht bevor.
Ein Spieler mit mindestens 500 Score, (GetPlayerScore(playerid) == 500), ist nicht schwer :D)
soll eine Gang gründen, welche per dini_IntSet gespeichert werden soll. Man soll ebenfalls Member inviten können und einen Gangmoderator setzen können.
Kann mir hier jemand per TV oder hier im Thread "Denkanstöße" geben?
Bin auf eure Antworten gespannt..
lg
AddStaticVehicleEx
Ist aber eigentlich genau das gleiche wie AddStaticVehicle...
Hast du eventuell Anhänger hinten drane? Mach mal welche dranne / else if mach mal welche weg.^^
lg
Also bei mir gehts perfekt. Habs mal eben ausgestet, kann mit egal welcher Zugart damit fahren.
lg
In PWN!
for(new playerid;playerid<MAX_PLAYERS;playerid++)
{
GANGAUTOHAUSTEXTDRAW[playerid] = TextDrawCreate(310.000000, 340.000000, " ");
TextDrawAlignment(GANGAUTOHAUSTEXTDRAW[playerid], 2);
TextDrawBackgroundColor(GANGAUTOHAUSTEXTDRAW[playerid], 255);
TextDrawFont(GANGAUTOHAUSTEXTDRAW[playerid], 3);
TextDrawLetterSize(GANGAUTOHAUSTEXTDRAW[playerid], 0.620000, 1.899999);
TextDrawColor(GANGAUTOHAUSTEXTDRAW[playerid], 16777215);
TextDrawSetOutline(GANGAUTOHAUSTEXTDRAW[playerid], 0);
TextDrawSetProportional(GANGAUTOHAUSTEXTDRAW[playerid], 1);
TextDrawSetShadow(GANGAUTOHAUSTEXTDRAW[playerid], 1);
TextDrawUseBox(GANGAUTOHAUSTEXTDRAW[playerid], 1);
TextDrawBoxColor(GANGAUTOHAUSTEXTDRAW[playerid], -1768515996);
TextDrawTextSize(GANGAUTOHAUSTEXTDRAW[playerid], 968.000000, 710.000000);
GANGAUTOHAUSTEXTDRAWKAUFEN[playerid] = TextDrawCreate(193.000000, 428.000000, "Kaufen");
TextDrawBackgroundColor(GANGAUTOHAUSTEXTDRAWKAUFEN[playerid], 255);
TextDrawFont(GANGAUTOHAUSTEXTDRAWKAUFEN[playerid], 3);
TextDrawLetterSize(GANGAUTOHAUSTEXTDRAWKAUFEN[playerid], 0.500000, 1.000000);
TextDrawColor(GANGAUTOHAUSTEXTDRAWKAUFEN[playerid], -1);
TextDrawSetOutline(GANGAUTOHAUSTEXTDRAWKAUFEN[playerid], 1);
TextDrawSetProportional(GANGAUTOHAUSTEXTDRAWKAUFEN[playerid], 1);
GANGAUTOHAUSTEXTDRAWVERLASSEN[playerid] = TextDrawCreate(370.000000, 428.000000, "verlassen");
TextDrawBackgroundColor(GANGAUTOHAUSTEXTDRAWVERLASSEN[playerid], 255);
TextDrawFont(GANGAUTOHAUSTEXTDRAWVERLASSEN[playerid], 3);
TextDrawLetterSize(GANGAUTOHAUSTEXTDRAWVERLASSEN[playerid], 0.500000, 1.000000);
TextDrawColor(GANGAUTOHAUSTEXTDRAWVERLASSEN[playerid], -1);
TextDrawSetOutline(GANGAUTOHAUSTEXTDRAWVERLASSEN[playerid], 1);
TextDrawSetProportional(GANGAUTOHAUSTEXTDRAWVERLASSEN[playerid], 1);
GANGAUTOHAUSTEXTDRAWLINKS[playerid] = TextDrawCreate(158.000000, 375.000000, "<--");
TextDrawBackgroundColor(GANGAUTOHAUSTEXTDRAWLINKS[playerid], 255);
TextDrawFont(GANGAUTOHAUSTEXTDRAWLINKS[playerid], 3);
TextDrawLetterSize(GANGAUTOHAUSTEXTDRAWLINKS[playerid], 0.529999, 1.600000);
TextDrawColor(GANGAUTOHAUSTEXTDRAWLINKS[playerid], -1);
TextDrawSetOutline(GANGAUTOHAUSTEXTDRAWLINKS[playerid], 1);
TextDrawSetProportional(GANGAUTOHAUSTEXTDRAWLINKS[playerid], 1);
GANGAUTOHAUSTEXTDRAWRECHTS[playerid] = TextDrawCreate(438.000000, 375.000000, "-->");
TextDrawBackgroundColor(GANGAUTOHAUSTEXTDRAWRECHTS[playerid], 255);
TextDrawFont(GANGAUTOHAUSTEXTDRAWRECHTS[playerid], 3);
TextDrawLetterSize(GANGAUTOHAUSTEXTDRAWRECHTS[playerid], 0.529999, 1.600000);
TextDrawColor(GANGAUTOHAUSTEXTDRAWRECHTS[playerid], -1);
TextDrawSetOutline(GANGAUTOHAUSTEXTDRAWRECHTS[playerid], 1);
TextDrawSetProportional(GANGAUTOHAUSTEXTDRAWRECHTS[playerid], 1);
TextDrawSetSelectable(GANGAUTOHAUSTEXTDRAW[playerid], false);
TextDrawSetSelectable(GANGAUTOHAUSTEXTDRAWKAUFEN[playerid], true);
TextDrawSetSelectable(GANGAUTOHAUSTEXTDRAWVERLASSEN[playerid], true);
TextDrawSetSelectable(GANGAUTOHAUSTEXTDRAWLINKS[playerid], true);
TextDrawSetSelectable(GANGAUTOHAUSTEXTDRAWRECHTS[playerid], true);
}
stock EnterGangautohaus(playerid, frak)
{
frak = frak-1;
new world = 999-playerid;
SetPlayerVirtualWorld(playerid, world);
SendClientMessage(playerid, COLOR_GREEN, "WELCOME");
SetPlayerPos(playerid, GANGAUTOHAUSENTER-10);
TogglePlayerControllable(playerid, 0);
TEMPCARID[playerid] = GangKauflist[frak][0];
TEMPCAR[playerid] = CreateVehicle(TEMPCARID[playerid], GANGAUTOHAUSLOOKAT,GANGAUTOHAUSROTATION,TEMPCOLOR1[playerid],TEMPCOLOR2[playerid],-1);
SetVehicleVirtualWorld(TEMPCAR[playerid],world);
SetPlayerCameraPos(playerid,GANGAUTOHAUSCAMPOS);
SetPlayerCameraLookAt(playerid,GANGAUTOHAUSLOOKAT);
new string[200];
format(string,sizeof(string),"~r~Fraktions-Autohaus~n~ ~n~ ~w~%s~n~Preis: %i~g~$~n~ ~n~ ~n~ ~n~ ~n~",GetVehicleName(TEMPCARID[playerid]),GetVehiclePrice(TEMPCARID[playerid]));
TextDrawSetString(GANGAUTOHAUSTEXTDRAW[playerid],string);
TextDrawShowForPlayer(playerid,GANGAUTOHAUSTEXTDRAW[playerid]);
TextDrawShowForPlayer(playerid,GANGAUTOHAUSTEXTDRAWKAUFEN[playerid]);
TextDrawShowForPlayer(playerid,GANGAUTOHAUSTEXTDRAWVERLASSEN[playerid]);
TextDrawShowForPlayer(playerid,GANGAUTOHAUSTEXTDRAWLINKS[playerid]);
TextDrawShowForPlayer(playerid,GANGAUTOHAUSTEXTDRAWRECHTS[playerid]);
SelectTextDraw(playerid, 0x00FF00FF);
INGANGAUTOHAUS[playerid] = 1;
GANGAUTOHAUSINDEX[playerid] = 0;
return 1;
}
Oder zöger es einfach mit
SetTimerEx
heraus, und lasse ihn erst "5" Sekunden später oder so ins Krankenhaus teleportieren.^^
lg
new string[128];
unter den allgemeinen Befehl.
Kann dir nur S2 empfehlen, hab ich auch momentan und mir ist noch nichts Negatives aufgefallen.
S3 geht auch.
lg
Halt ein Problem bleibt noch. Ich habe noch einen Timer eingebaut, der dass ganze nach 15 Minuten beendet. Nur leider, wenn man sich nach /sp portet, portet man sich immer zu mir.
Code.
ocmd:sp(playerid,params[])
{
if(!IstSpielerAdmin(playerid,6))return SCM(playerid,Rot,"Das darfst du nicht.");
SetTimerEx("spend",900000,false,"d",playerid);
new Float:x,Float:y,Float:z, s[128], s2[128], pID;
saveport[playerid] = true;
format(s,sizeof(s),"Admin %s hat ein Event eröffnet! /sp um mitzuspielen.",SpielerName(playerid));
SendClientMessageToAll(Gelb,s);
{
GetPlayerPos(playerid,x,y,z);
EvX = x;
EvY = y;
EvZ = z;
{
SetPlayerPos(playerid,EvX,EvY,EvZ);
format(s2,sizeof(s2),"%s hat sich zum Save Port geportet! (/sp)",SpielerName(pID));
SendClientMessageToAll(Gelb,s2);
}
}
return 1;
}
lg
#E: Die Message dass ein Event eröffnet wurde kommt auch immer, sobald ich /sp mache.