Achso ja das hab ich nicht ich will ja nur die Box rechts daneben ankickbar machen. Das hab ich gemacht:
PlayerTextDrawSetSelectable(playerid, SB_PASSFELD[playerid], 1);
PlayerTextDrawSetSelectable(playerid, SB_LOGIN[playerid], 1);
Sieht so aus:
Achso ja das hab ich nicht ich will ja nur die Box rechts daneben ankickbar machen. Das hab ich gemacht:
PlayerTextDrawSetSelectable(playerid, SB_PASSFELD[playerid], 1);
PlayerTextDrawSetSelectable(playerid, SB_LOGIN[playerid], 1);
Sieht so aus:
Hab ich beides. Es soll ja nur das Passwort und der Login ankickbar sein.
Hab ich doch Zeile 94. bzw. ist bei OnPlayerConnect.
Hey ich will ein TextDraw Login/Register machen und stehe jetzt vor ein paar Problemen.
Hier die Textdraws bei OnConnect:
Das Problem: Passwort und Login lassen sich nicht anklicken...
Und ich weiß nicht wie ich das mit meinem jetzigen Login/Register verbinde (das aber später)
Und der Background (SB_BG) wird nicht angezeigt.
//######### Startbildschirm #############
SB_BG[playerid] = CreatePlayerTextDraw(playerid,320.000000, 0.000000, "Hintergrund ");
PlayerTextDrawAlignment(playerid,SB_BG[playerid], 2);
PlayerTextDrawBackgroundColor(playerid,SB_BG[playerid], 255);
PlayerTextDrawFont(playerid,SB_BG[playerid], 1);
PlayerTextDrawLetterSize(playerid,SB_BG[playerid], 0.500000, 50.000000);
PlayerTextDrawColor(playerid,SB_BG[playerid], -1);
PlayerTextDrawSetOutline(playerid,SB_BG[playerid], 0);
PlayerTextDrawSetProportional(playerid,SB_BG[playerid], 1);
PlayerTextDrawSetShadow(playerid,SB_BG[playerid], 1);
PlayerTextDrawUseBox(playerid,SB_BG[playerid], 1);
PlayerTextDrawBoxColor(playerid,SB_BG[playerid], 255);
PlayerTextDrawTextSize(playerid,SB_BG[playerid], 0.000000, -650.000000);
SB_NICK[playerid] = CreatePlayerTextDraw(playerid,230.000000, 220.000000, "Nickname:");
PlayerTextDrawAlignment(playerid,SB_NICK[playerid], 2);
PlayerTextDrawBackgroundColor(playerid,SB_NICK[playerid], 255);
PlayerTextDrawFont(playerid,SB_NICK[playerid], 1);
PlayerTextDrawLetterSize(playerid,SB_NICK[playerid], 0.300000, 1.399999);
PlayerTextDrawColor(playerid,SB_NICK[playerid], -65281);
PlayerTextDrawSetOutline(playerid,SB_NICK[playerid], 0);
PlayerTextDrawSetProportional(playerid,SB_NICK[playerid], 1);
PlayerTextDrawSetShadow(playerid,SB_NICK[playerid], 1);
SB_PASS[playerid] = CreatePlayerTextDraw(playerid,230.000000, 250.000000, "Passwort:");
PlayerTextDrawAlignment(playerid,SB_PASS[playerid], 2);
PlayerTextDrawBackgroundColor(playerid,SB_PASS[playerid], 255);
PlayerTextDrawFont(playerid,SB_PASS[playerid], 1);
PlayerTextDrawLetterSize(playerid,SB_PASS[playerid], 0.300000, 1.399999);
PlayerTextDrawColor(playerid,SB_PASS[playerid], -65281);
PlayerTextDrawSetOutline(playerid,SB_PASS[playerid], 0);
PlayerTextDrawSetProportional(playerid,SB_PASS[playerid], 1);
PlayerTextDrawSetShadow(playerid,SB_PASS[playerid], 1);
SB_NICKFELD[playerid] = CreatePlayerTextDraw(playerid,325.000000, 220.000000, "NickFeld ");
PlayerTextDrawAlignment(playerid,SB_NICKFELD[playerid], 2);
PlayerTextDrawBackgroundColor(playerid,SB_NICKFELD[playerid], 255);
PlayerTextDrawFont(playerid,SB_NICKFELD[playerid], 1);
PlayerTextDrawLetterSize(playerid,SB_NICKFELD[playerid], 0.300000, 1.399999);
PlayerTextDrawColor(playerid,SB_NICKFELD[playerid], -1);
PlayerTextDrawSetOutline(playerid,SB_NICKFELD[playerid], 0);
PlayerTextDrawSetProportional(playerid,SB_NICKFELD[playerid], 1);
PlayerTextDrawSetShadow(playerid,SB_NICKFELD[playerid], 1);
PlayerTextDrawUseBox(playerid,SB_NICKFELD[playerid], 1);
PlayerTextDrawBoxColor(playerid,SB_NICKFELD[playerid], 673322751);
PlayerTextDrawTextSize(playerid,SB_NICKFELD[playerid], 0.000000, -130.000000);
SB_PASSFELD[playerid] = CreatePlayerTextDraw(playerid,325.000000, 250.000000, "#########");
PlayerTextDrawAlignment(playerid,SB_PASSFELD[playerid], 2);
PlayerTextDrawBackgroundColor(playerid,SB_PASSFELD[playerid], 255);
PlayerTextDrawFont(playerid,SB_PASSFELD[playerid], 1);
PlayerTextDrawLetterSize(playerid,SB_PASSFELD[playerid], 0.300000, 1.399999);
PlayerTextDrawColor(playerid,SB_PASSFELD[playerid], -1);
PlayerTextDrawSetOutline(playerid,SB_PASSFELD[playerid], 0);
PlayerTextDrawSetProportional(playerid,SB_PASSFELD[playerid], 1);
PlayerTextDrawSetShadow(playerid,SB_PASSFELD[playerid], 1);
PlayerTextDrawUseBox(playerid,SB_PASSFELD[playerid], 1);
PlayerTextDrawBoxColor(playerid,SB_PASSFELD[playerid], 673322751);
PlayerTextDrawTextSize(playerid,SB_PASSFELD[playerid], 0.000000, -130.000000);
SB_LOGIN[playerid] = CreatePlayerTextDraw(playerid,420.000000, 300.000000, "Login");
PlayerTextDrawAlignment(playerid,SB_LOGIN[playerid], 2);
PlayerTextDrawBackgroundColor(playerid,SB_LOGIN[playerid], 255);
PlayerTextDrawFont(playerid,SB_LOGIN[playerid], 1);
PlayerTextDrawLetterSize(playerid,SB_LOGIN[playerid], 0.300000, 1.000000);
PlayerTextDrawColor(playerid,SB_LOGIN[playerid], -1);
PlayerTextDrawSetOutline(playerid,SB_LOGIN[playerid], 0);
PlayerTextDrawSetProportional(playerid,SB_LOGIN[playerid], 1);
PlayerTextDrawSetShadow(playerid,SB_LOGIN[playerid], 1);
PlayerTextDrawUseBox(playerid,SB_LOGIN[playerid], 1);
PlayerTextDrawBoxColor(playerid,SB_LOGIN[playerid], 673322751);
PlayerTextDrawTextSize(playerid,SB_LOGIN[playerid], 0.000000, -34.000000);
SB_SN[playerid] = CreatePlayerTextDraw(playerid,294.000000, 156.000000, "ServerName");
PlayerTextDrawAlignment(playerid,SB_SN[playerid], 2);
PlayerTextDrawBackgroundColor(playerid,SB_SN[playerid], 255);
PlayerTextDrawFont(playerid,SB_SN[playerid], 0);
PlayerTextDrawLetterSize(playerid,SB_SN[playerid], 0.700000, 3.000000);
PlayerTextDrawColor(playerid,SB_SN[playerid], -65281);
PlayerTextDrawSetOutline(playerid,SB_SN[playerid], 0);
PlayerTextDrawSetProportional(playerid,SB_SN[playerid], 1);
PlayerTextDrawSetShadow(playerid,SB_SN[playerid], 1);
new NickFeld[128];
format(NickFeld,sizeof(NickFeld),"%s",SpielerName(playerid));
PlayerTextDrawSetString(playerid,SB_NICKFELD[playerid],NickFeld);
PlayerTextDrawSetString(playerid,SB_SN[playerid],SERVERNAME);
PlayerTextDrawSetString(playerid,SB_PASSFELD[playerid],"Passwort");
PlayerTextDrawSetSelectable(playerid, SB_PASSFELD[playerid], 1);
PlayerTextDrawSetSelectable(playerid, SB_LOGIN[playerid], 1);
SelectTextDraw(playerid, 0x00FF00FF);
PlayerTextDrawShow(playerid, SB_BG[playerid]);
PlayerTextDrawShow(playerid, SB_NICK[playerid]);
PlayerTextDrawShow(playerid, SB_PASS[playerid]);
PlayerTextDrawShow(playerid, SB_NICKFELD[playerid]);
PlayerTextDrawShow(playerid, SB_PASSFELD[playerid]);
PlayerTextDrawShow(playerid, SB_LOGIN[playerid]);
PlayerTextDrawShow(playerid, SB_SN[playerid]);
public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
if(playertextid == SB_PASSFELD[playerid]) {
CancelSelectTextDraw(playerid);
PlayerTextDrawHide(playerid, SB_PASSFELD[playerid]);
}
return 1;
}
Nein das war nicht der Fehler. Hier auf für die Nachwelt:
if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER){
new sitz = GetPlayerVehicleSeat(playerid); // Hier war der "Fehler" nicht GetPlayerState() sondern das!
SetVehiclePos(vID,X + 2.0,Y,Z);
PutPlayerInVehicle(playerid,vID,sitz);
}
Ja das weiß ich ja ABER ich habs nicht hinbekommen. Ich habs schon probiert mit:
pState = GetPlayerState(playerid)
oder muss ich das SO machen und ggf. else if machen?
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
//EDIT:
Funktioniert aber nicht der stellt den Spieler dann auf das Dach.
Hey ich weiß nicht wie ich das anstellen soll, dass man als Beifahrer auch das Fahrzeug mitportet. Zurzeit wird man ja auf den Fahrersitz gesetzt.
ocmd:goto(playerid,params[])
{
new pID,Float:X,Float:Y,Float:Z,n1[128],n2[128];
new vID = GetPlayerVehicleID(playerid);
if(sInfo[playerid][pEingeloggt] == 0) return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!");
if(sInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, GRAU, "Dein Adminlevel reicht für den Befehl nicht aus!");
if(sscanf(params, "i", pID)) return SendClientMessage(playerid, GRAU, "Verwende: /goto {FF9E00}<Spieler-ID>");
GetPlayerPos(pID,X,Y,Z);
SetVehiclePos(vID,X + 2.0,Y,Z);
SetPlayerPos(playerid,X + 2.0,Y,Z);
SetPlayerInterior(playerid,GetPlayerInterior(pID));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(pID));
PutPlayerInVehicle(playerid,vID,0);
format(n1,sizeof(n1), "Du hast dich zu %s teleportiert.", SpielerName(pID));
SendClientMessage(playerid, DGRUEN, n1);
format(n2,sizeof(n2), "%s hat sich zu dir teleportiert.", SpielerName(playerid));
SendClientMessage(pID, DGRUEN, n2);
return 1;
}
Wie kann man das Textdraw bei der Uhr so anzeigen lassen? 23:05:00 und nicht 23:5:0?
Hab das jetzt so:
public TimeUpdate()
{
new string[50],Hour, Minute, Second, Year, Month, Day;
gettime(Hour, Minute, Second);
getdate(Year, Month, Day);
format(string, sizeof string, "%d.%d.%d", Day, Month, Year);
TextDrawSetString(Datum, string);
format(string, sizeof string, "%d:%d:%d", Hour, Minute, Second);
TextDrawSetString(Uhr, string);
return 1;
}
@Rocky
hab ich ja auch nicht gemacht ich bin auch immer froh wenn jemand das gleiche Problem hatte.
filezilla
sry bin eingeschlafen aber per TV oder Skype mach ich das nicht. Poste dein Code und stell deine Frage und mal sehen ob man dir helfen kann.
Ohne Code kann man nicht helfen bzw wie hast du dir das vorgestellt
Hast du Textdraws?
So es funktioniert habs aber jetzt per Befehl gemacht.
Also. Wenn ich (nicht im Interior) in das Pickup gehe portet er mich nicht direkt sondern dauert etwas (auch ohne den Timer).
Und das mit der VW. Ja ich denke das muss dann so gemacht werden. Aber wie mache ich das dann, wenn ich mehrere BugerShots oder so hab. Wenn alle die WV 0 haben sehen sich ja spieler die z.B. im BSN und im BSS.
ja das mit der Welt ist mir aufgefallen durch die schleife bekommt er jeder eine neue Welt und beim Verlassen bekommt er dann wieder eine andere Welt.
Wenn ich in das Pickup laufe passiert erst nichts und danach portet der dann. (Type: 1)
Bisher komme ich noch in die falsche Welt und der portet mich nicht sofort in das Interior.
Hey, wie mache ich das, dass wenn der Spieler automatisch in den Interior geht, er nicht gleich wieder raus geht? Also wie muss der Timer aussehen?
Ich hab das bis jetzt so gemacht:
public OnPlayerPickUpPickup(playerid, pickupid)
{
for(new i=0; i<sizeof(iInfo); i++){
if(!IsPlayerInRangeOfPoint(playerid,1,iInfo[i][IP_X],iInfo[i][IP_Y],iInfo[i][IP_Z]))continue;
SetPlayerPos(playerid,iInfo[i][IP_IntX],iInfo[i][IP_IntY],iInfo[i][IP_IntZ]);
SetPlayerInterior(playerid,iInfo[i][IP_Interior]);
SetPlayerVirtualWorld(playerid,i);
return 1;
}
return 1;
}
enum InteriorPos{
Float:IP_X,
Float:IP_Y,
Float:IP_Z,
Float:IP_IntX,
Float:IP_IntY,
Float:IP_IntZ,
IP_Interior
}
new iInfo[][InteriorPos] = {
{1554.8782,-1675.6160,16.1953,238.6850,139.3324,1003.0234,3},
{238.6850,139.3324,1003.0234,1554.8782,-1675.6160,16.1953,0}
};
Noch dazu wird der Spieler beim Verlassen nicht in die Virtuelle Welt 0 gesetzt.
Alles klar funktioniert! Du hattest recht ist kein "kleines" Thema.
Oh ich denke das ist dann nur hier:
public OnPasswortResponse(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,mysql);
if(num_rows == 1){
sInfo[playerid][pEingeloggt] = 1;
sInfo[playerid][pDBID] = cache_get_field_content_int(0,"ID",mysql); // HIER
sInfo[playerid][pLevel] = cache_get_field_content_int(0,"Level",mysql);
SetPlayerScore(playerid,sInfo[playerid][pLevel]);
SetPlayerMoney(playerid,cache_get_field_content_int(0,"Geld",mysql));
sInfo[playerid][pAdmin] = cache_get_field_content_int(0, "Admin",mysql);
SetSpawnInfo( playerid, 0, 289, 1511.8359, -1713.5916, 14.0469, 222.1692, 0, 0, 0, 0, 0, 0 );
SpawnPlayer(playerid);
} else {
new input[200];
format(input,sizeof(input),"{908B8E}Das angegebene Passwort ist nicht korrekt.\nGebe hier bitte dein Passwort ein, welches du bei der Registrierung gewählt hast.",SERVERNAME);
ShowPlayerDialog(playerid,DIALOG_LOGIN,3,"{FF9E00}Login",input,"Absenden","Verlassen");
}
return 1;
}
Der CheckUser ist der hier: Der hoch sich ja die ID und schaut ob es den Spieler gibt.
public CheckUser(playerid)
{
new num_rows, num_fields;
cache_get_data(num_rows, num_fields, mysql);
if(num_rows == 0){
//Registrierung
new input[200];
format(input,sizeof(input),"{908B8E}Herzlich Willkommen auf {FF9E00}%s{908B8E}!\nDein Account wurde nicht in der Datenbank gefunden.\nGebe hier dein gewünschtes Passwort ein, mit welchem du dich registrieren möchtest!",SERVERNAME);
ShowPlayerDialog(playerid,DIALOG_REGISTER,3,"{FF9E00}Registrierung",input,"Absenden","Verlassen");
}
else
{
//Login
new input[200];
format(input,sizeof(input),"{908B8E}Willkommen zurück auf {FF9E00}%s{908B8E}!\nDein Account wurde in der Datenbank gefunden.\nGebe hier bitte dein Passwort ein, welches du bei der Registrierung gewählt hast.",SERVERNAME);
ShowPlayerDialog(playerid,DIALOG_LOGIN,3,"{FF9E00}Login",input,"Absenden","Verlassen");
}
return 1;
}