Ok danke :))
hat meine variante funktioniert?
Ok danke :))
hat meine variante funktioniert?
forward Timer(playerid);
new Float:Mpx[MAX_PLAYERS],Float:Mpy[MAX_PLAYERS],Float:Mpz[MAX_PLAYERS];
public OnPlayerSpawn(playerid)
{
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid, X, Y, Z);
Mpx[playerid] = X;
Mpy[playerid] = Y;
Mpz[playerid] = Z;
SetTimerEx("Timer",3000,true,"i",playerid);
return 1;
}
public Timer(playerid)
{
if(!IsPlayernRangeOfPoint(playerid,5.0,Mpx[playerid],Mpy[playerid],Mpz[playerid]))return SendClientMessage(playerid, 0xFFFFFFFF, "Du hast dich vom spawn entfernt!");
SendClientMessage(playerid, 0xFFFFFFFF, "Gut, du stehst noch beim Spawn!");
return 1;
}
6,6 zeilen klingt zwar nicht viel, aber wenn es mehr inhalt hätte , dann wäre es besser zum Verkaufen,
Was Fehlt im script:
Cheats-Verhindern
Hacks-Verhindern
Jobs
Mehr commands
einfach mehr inhalt,
gemapptes
1. würde /q nicht gehen, da er schon für schliesen des spieles verwendet wird.
2. Erstellst du einen befehl mit strcmp so:
if(strcmp(cmdtext,"/command", true,10) == 0)
{
}
und mit zcmd so:
command(command, playerid, params[])
{
return 1;
}
Andere möglichkeit:
CMD:command(playerid, params[])
{
return 1;
}
Der Fehler ist, dass du ein verschlüsseltes Passwort nicht entschlüsseln kannst...
Wenn der spieler sein pw vergessen hast, so brauchst du nur einen cmd mit dem du als admin das pw ändern kannst. der Spieler sollte dann natürlich auch wieder sein passwort ändern können
hm, ja und öhm, wieso muss der spieler online sein.??
und wie kann man emails versenden(script technisch?
Hallo leute, ich benutze ein Login & Register auf Dini , mit md5 verschlüsselt.
So mein problem ist:
Erstens muss der spieler online sein und 2. wird nicht das entschlüsselte pw ausgeben , nur das md5
//Passwort vom imgame rauslesen
dcmd_getpassword(playerid, params[])
{
new account[24]; //new account[24];
new string[128]; //new string[128];
if(!IsAdmin(playerid,6))
return SendClientMessage(playerid, Rot, "Fehler: Du bist nicht der ServerOwner.");
if(sscanf(params,"s",account))
return SendClientMessage(playerid, Rot, "Fehler: /getpassword [spielername] (muss ein vorhandener spieler sein)");
format(spielerdatei, sizeof(spielerdatei), "/DB/SpielerAccounts/%s.ini",account);
if(!dini_Exists(spielerdatei))
return SendClientMessage(playerid, Rot, "Fehler: Der Spieler existiert nicht.");
new HisPassword[50];
HisPassword = MD5_Hash(dini_Get(spielerdatei, "Key"));
format(string, sizeof(string), "Server: Sein Password lautet %s",HisPassword);
SendClientMessage(playerid, Weis, string);
return 1;
}
Mein ziel ist, das der spieler nicht online sein muss, nur das die datei in der DatenBank vorhanden ist.
2. Das password soll entschlüsselt da stehen.
Wo liegt hier mein Fehler.
Du musst die Variable auch auf 0 setzen,
Ich denke mehr muss Ich dazu nicht sagen
Du meinst zusätzlich zu DetroyObject Neonlichter{vehicleid] = 0; oder meinst du z.B
rot1[vehicleid] = 0;?
edit:: // geht nun danke euch allen
Einfach Objekte löschen
DestroyObject(rot1[vehicleid]);
DestroyObject(rot2[vehicleid]);
Inwiefern "setzt" es sich wieder dran?
erst entfernen die neonröhren sich dann wenn ich wd fahre gehen sie wd dran
else if(strcmp(Option, "off", true) == 0)
{
if(Neonlichter[vehicleid] < 1)return SendClientMessage(playerid, Rot, "Fehler: Du hast keine Neonröhren abgebracht.");
DestroyObject(rot1[vehicleid]);
DestroyObject(rot2[vehicleid]);
DestroyObject(blau1[vehicleid]);
DestroyObject(blau2[vehicleid]);
DestroyObject(gelb1[vehicleid]);
DestroyObject(gelb2[vehicleid]);
DestroyObject(weis1[vehicleid]);
DestroyObject(weis2[vehicleid]);
DestroyObject(pinke1[vehicleid]);
DestroyObject(pinke2[vehicleid]);
DestroyObject(grun1[vehicleid]);
DestroyObject(grun2[vehicleid]);
}
So hab ichs versucht.
aber das objekt setzt sich nach dem fahren wd dran
if(Neonlichter[vehicleid] == 1)
{
rot1[vehicleid] = CreateObject(18647,0,0,0,0,0,0);
rot2[vehicleid] = CreateObject(18647,0,0,0,0,0,0);
AttachObjectToVehicle(rot1[vehicleid], vehicleid, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(rot2[vehicleid], vehicleid, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
Neonlichter[vehicleid] = 1;
}
So lasse ich sie anbringen, wie wieder abbauen?
Hier zu dem sieht man das der stock register ausgeführt wird.
if(dialogid == DIALOG_REGISTER)
{
if(response == 0)return Kick(playerid);
if(response == 1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid, Rot, "Fehler: Du hast nichts eingegben.");
new string[600];
format(string, 600, "{FFFFFF}Willkommen auf GermanTrucking\n\nDu hast hier noch keinen Account.\n\nRegestriere dich bitte mit einem biligen Passwort ein.\n\n{00FF1E}Benutzername{FFFFFF}: {CDFF00}%s\n\n{FFFFFF}Deine IP:{1400FF}%s",GetName(playerid),GetIp(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "GermanTrucking - Register",string,"reg","abbrechen");
return 1;
}
if(strlen(inputtext) < 6)
{
SendClientMessage(playerid, Rot, "Fehler: Du musst mindesten 6 zeichen verwenden.");
new string[600];
format(string, 600, "{FFFFFF}Willkommen auf GermanTrucking\n\nDu hast hier noch keinen Account.\n\nRegestriere dich bitte mit einem biligen Passwort ein.\n\n{00FF1E}Benutzername{FFFFFF}: {CDFF00}%s\n\n{FFFFFF}Deine IP:{1400FF}%s",GetName(playerid),GetIp(playerid));
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "GermanTrucking - Register",string,"reg","abbrechen");
return 1;
}
Register(playerid, MD5_Hash(inputtext));
}
}
//REgister stock
stock Register(playerid, key[])
{
format(spielerdatei, sizeof(spielerdatei), "/DB/SpielerAccounts/%s.ini",GetName(playerid));
dini_Create(spielerdatei);
dini_Set(spielerdatei,"Key",key);
SpawnPlayer(playerid);
SetPlayerPos(playerid, -78.3933, -1169.8947, 2.1360);
SetPlayerCameraPos(playerid, -81.3954,-1168.3391,2.2187);
SetPlayerCameraLookAt(playerid,-78.3933,-1169.8947,2.1360);
TogglePlayerControllable(playerid,0);
SkinAuswahl[playerid] = 1;
SendClientMessage(playerid, Weis, "Gebe nun [{00EBFF}Weiter] {FFFFFF} zum switchen und [{00EBFF}Fertig]{FFFFFF} ein um auszuwählen!");
return 1;
}
Hier sieht man das eine Pos gesetzt wird und das SkinAuswahl[playerid] = 1; ist
public OnPlayerText(playerid, text[])
{
if(strcmp(text, "weiter", true) == 0 && SkinAuswahl[playerid] == 1)return switchSkin(playerid);
new string[128],name[24];
GetPlayerName(playerid, name, 24);
format(string, sizeof(name), "%s sagt: %s",name,text);
Say(playerid, 10.0, 0xFFFFFFFF, string);
return SetPVarInt(playerid, "Test", 1);
}
So , hier sieht man, if(strcmp(text, "weiter", true) == 0 && SkinAuswahl[playerid] == 1)return switchSkin(playerid); // das soll wenn man weiter eingibt und SkinAuswahl[playerid] == 1; ist dann soll der stock swtchskin ausgeführt werden und kein anderer
So, nur das sollte dann passieren
Dann hab ich noch
return SetPVarInt(playerid, "Test", 1);
Das soll verhindern das der öff chat verwendet wird.
So nun wird der local chat und der öff chat verwendet.
stock switchSkin(playerid)
{
switch(Skin[playerid])
{
case 0:
{
SetPlayerSkin(playerid, 1);
Skin[playerid] = 1;
}
case 1:
{
SetPlayerSkin(playerid, 2);
Skin[playerid] = 2;
}
case 2:
{
SetPlayerSkin(playerid, 3);
Skin[playerid] = 3;
}
case 3:
{
SetPlayerSkin(playerid, 4);
Skin[playerid] = 4;
}
case 4:
{
SetPlayerSkin(playerid, 5);
Skin[playerid] = 5;
}
case 5:
{
SetPlayerSkin(playerid, 6);
Skin[playerid] = 6;
}
case 6:
{
SetPlayerSkin(playerid, 7);
Skin[playerid] = 7;
}
case 7:
{
SetPlayerSkin(playerid, 8);
Skin[playerid] = 8;
}
}
return 1;
}
Hier ist der stock switchskin
zudem kann er nicht gescheit ausgeführt werden da, öhm
Der local+ öff chat da stören, und zudem wird ja nicht mal der spieler auf die stelle gesetzt,
Also die 2 fehler sind,
1. Das der spieler nicht auf die pos gesetzt wird.
2. das wenn man weiter und in der sauswahl ist das er dann local#öff chat verwendet.
Kann mir jemand helfen?
Was mich viel mehr verwirrt...du bekommst bei diesem Code...keine Errors?
Jup....
Ist kein Wunder
edit: es geht nun dank jeffry
dcmd_neon(playerid, params[])
{
new vehicleid = GetPlayerVehicleID(playerid);
new Option[30];
if(sscanf(params,"s",Option))return SendClientMessage(playerid,Rot,"Befehl: /neon [neonfarbe]") && SendClientMessage(playerid, Weis, "Optionen: Rot,Blau,Gelb,Weis,Pink,Gruen");
if(strcmp(Option, "Rot", true) == 0){ Neonlichter[vehicleid] = 1 && DestroyObject(rot1[vehicleid]) && DestroyObject(rot2[vehicleid]); }
if(strcmp(Option, "Blau", true) == 0){ Neonlichter[vehicleid] = 2 && DestroyObject(blau1[vehicleid]) && DestroyObject(blau2[vehicleid]); }
if(strcmp(Option, "Gelb", true) == 0){ Neonlichter[vehicleid] = 3 && DestroyObject(gelb1[vehicleid]) && DestroyObject(gelb2[vehicleid]); }
if(strcmp(Option, "Weis", true) == 0){ Neonlichter[vehicleid] = 4 && DestroyObject(weis1[vehicleid]) && DestroyObject(weis2[vehicleid]); }
if(strcmp(Option, "Pink", true) == 0){ Neonlichter[vehicleid] = 5 && DestroyObject(pinke1[vehicleid]) && DestroyObject(pinke2[vehicleid]); }
if(strcmp(Option, "Gruen", true) == 0){ Neonlichter[vehicleid] = 6 && DestroyObject(grun1[vehicleid]) && DestroyObject(grun2[vehicleid]); }
if(Neonlichter[vehicleid] > 0)
{
if(Neonlichter[vehicleid] == 1)
{
rot1[vehicleid] = CreateObject(18647,0,0,0,0,0,0);
rot2[vehicleid] = CreateObject(18647,0,0,0,0,0,0);
AttachObjectToVehicle(rot1[vehicleid], vehicleid, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(rot2[vehicleid], vehicleid, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
Neonlichter[vehicleid] = 1;
}
if(Neonlichter[vehicleid] == 2)
{
blau1[vehicleid] = CreateObject(18648,0,0,0,0,0,0);
blau2[vehicleid] = CreateObject(18648,0,0,0,0,0,0);
AttachObjectToVehicle(blau1[vehicleid], vehicleid, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(blau2[vehicleid], vehicleid, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
Neonlichter[vehicleid] = 2;
}
if(Neonlichter[vehicleid] == 3)
{
gelb1[vehicleid] = CreateObject(18650,0,0,0,0,0,0);
gelb2[vehicleid] = CreateObject(18650,0,0,0,0,0,0);
AttachObjectToVehicle(gelb1[vehicleid], vehicleid, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(gelb2[vehicleid], vehicleid, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
Neonlichter[vehicleid] = 3;
}
if(Neonlichter[vehicleid] == 4)
{
weis1[vehicleid] = CreateObject(18652,0,0,0,0,0,0);
weis2[vehicleid] = CreateObject(18652,0,0,0,0,0,0);
AttachObjectToVehicle(weis1[vehicleid], vehicleid, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(weis2[vehicleid], vehicleid, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
Neonlichter[vehicleid] = 4;
}
if(Neonlichter[vehicleid] == 5)
{
pinke1[vehicleid] = CreateObject(18651,0,0,0,0,0,0);
pinke2[vehicleid] = CreateObject(18651,0,0,0,0,0,0);
AttachObjectToVehicle(pinke1[vehicleid], vehicleid, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(pinke2[vehicleid], vehicleid, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
Neonlichter[vehicleid] = 5;
}
if(Neonlichter[vehicleid] == 6)
{
grun1[vehicleid] = CreateObject(18649,0,0,0,0,0,0);
grun2[vehicleid] = CreateObject(18649,0,0,0,0,0,0);
AttachObjectToVehicle(grun1[vehicleid], vehicleid, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
AttachObjectToVehicle(grun2[vehicleid], vehicleid, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
Neonlichter[vehicleid] = 6;
}
}
return 1;
}
Das ist mein1. NeonSystem
Seit dem ich es oben versucht habe zu verhindern das mehrene röhren auf 1x erstellt werden , wird überhaupt keine mehr erstellt.
if(strcmp(Option, "Rot", true) == 0){ Neonlicher[vehicleid] = 1; }
C:\Users\SAMP\Desktop\germanpartyserver\gamemodes\party.pwn(685) : warning 203: symbol is never used: "params"
C:\Users\SAMP\Desktop\germanpartyserver\gamemodes\party.pwn(685) : warning 203: symbol is never used: "playerid"
C:\Users\SAMP\Desktop\germanpartyserver\gamemodes\party.pwn(775) : error 017: undefined symbol "Neonlicher"
C:\Users\SAMP\Desktop\germanpartyserver\gamemodes\party.pwn(775) : warning 215: expression has no effect
C:\Users\SAMP\Desktop\germanpartyserver\gamemodes\party.pwn(775) : error 001: expected token: ";", but found "]"
C:\Users\SAMP\Desktop\germanpartyserver\gamemodes\party.pwn(775) : error 029: invalid expression, assumed zero
C:\Users\SAMP\Desktop\germanpartyserver\gamemodes\party.pwn(775) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
Alles anzeigen
Wo liegt der Fehler
edit neonlichter falsch geschribenen
Ist dein MAX_PLAYERS noch auf 500? Wenn ja setz das auf 50 und kompiliere erneut. Dein Tachometer alleine überschreitet ja wie gesagt schon das Limit.
Ey jetzt gehts vielen dank ![]()
Gleiches Spiel wie vorhin. Was passiert bzw. was passiert nicht? Kannst du ein Bild machen wie es aussieht?
textdraw wird nicht angezeigt
Moin.
//Uhrzeit
PTD[1] = TextDrawCreate(566.000000, 8.296318, "uhrzeit");
TextDrawLetterSize(PTD[1], 0.449999, 1.600000);
TextDrawAlignment(PTD[1], 1);
TextDrawColor(PTD[1], 41215);
TextDrawSetShadow(PTD[1], -1);
TextDrawSetOutline(PTD[1], 0);
TextDrawBackgroundColor(PTD[1], 51);
TextDrawFont(PTD[1], 3);
TextDrawSetProportional(PTD[1], 1);
SetTimer("UpdateClock",1000,true);
public UpdateClock()
{
for(new i = 0;i<MAX_PLAYERS;i++)
{
new playerid = i;
new Hour,Minute,Second,Year,Month,Day,string[130];
gettime(Hour,Minute,Second);
getdate(Year,Month,Day);
format(string, 130, "%02d:%02d:%02d~n~~g~%d.%d.%d",Hour,Minute,Second,Day,Month,Year);
TextDrawSetString(PTD[1],string);
TextDrawShowForPlayer(playerid,PTD[1]);
}
return 1;
}
Sehe keinen Fehler
Alles anzeigenAch ja, verdammt:
format(string, 128, "%s",VehicleNames[GetPlayerVehicleID(playerid)-400]);
zu:
format(string, 128, "%s",VehicleNames[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
Du hast ja aber auch extrem viele Fehler da rein gehauen.
![]()
Jetzt sollte es gehen.
Jup, danke dir
Ich hab den Code oben nochmal verbessert, da waren noch 2 Fehler auf die ich nicht geachtet habe. Probiers jetzt nochmal.
Geht schon besser nur der zustand und der typ laden nicht
Alles anzeigen
1.) 500x5 Textdraws = 2500 Textdraws, da Limit liegt bei 2000. Am besten du erstellst die Textdraws bei OnPlayerConnect und löschst sie wieder bei OnPlayerDisconnect, bzw. setzt MAX_PLAYERS auf 50. Zudem brauchst du die zwei Hintergründe, die bei jedem gleich sind, nicht als [playerid] Textdraw machen, so sparst du schonmal (2xMAX_PLAYERS)-2 Textdraws.
2.)
public UpdateTacho(playerid)
{
new speed = floatround(GetVehicleSpeed(GetPlayerVehicleID(playerid),0));
new string[128];
format(string, 128, "KM/H: %0.f",speed);
TextDrawSetString(Tacho4[playerid],string);
format(string, 128, "%s",VehicleNames[GetPlayerVehicleID(playerid)-400]);
TextDrawSetString(Tacho3[playerid],string);
new Float:VHealth = GetVehicleHealth(GetPlayerVehicleID(playerid),VHealth);
format(string, 128,"Zustand: %0.f",VHealth);
TextDrawSetString(Tacho5[playerid],string);
return 1;
}
Die Schleife hat da nichts zu suchen gehabt.
geht trotzdem nicxht hast du vll tv?
Alles anzeigenHey Breadfish-Community,
Was ist an diesem Befehl falsch?
enum EInfo
{
Start,
};
new EventInfo[6][EInfo];
if(strcmp(cmdtext,"/startevent", true) == 0)
{
if(PlayerInfo[playerid][pAdmin]>=1)
{
if(EventInfo[1][Start]==0)
{
EventInfo[1][Start]=1;
SendClientMessageToAll(COLOR_LIGHTGREEN,"Ein Event wurde gestartet. Nutzen sie /event um daran teilzunehmen.");
GetPlayerPos(playerid, ex, ey, ez);
}
else
{
SendClientMessage(playerid,COLOR_RED,"Es wurde bereits ein Event gestartet.");
}
}
}
if(strcmp(cmdtext,"/event", true) == 0)
{
if(EventInfo[1][Start]==1)
{
SetPlayerPos(playerid,ex,ey,ez);
SendClientMessage(playerid,COLOR_GREEN,"Sie nehmen nun an dem Event teil.");
}
else
{
SendClientMessage(playerid,COLOR_RED,"Es wurde kein Event gestartet.");
}
}
if(strcmp(cmdtext,"/stopevent", true) == 0)
{
if(PlayerInfo[playerid][pAdmin]>=1)
{
if(EventInfo[1][Start]==1)
{
EventInfo[1][Start]=0;
SendClientMessageToAll(COLOR_LIGHTGREEN,"Das Event wurde beendet.");
}
else
{
SendClientMessage(playerid,COLOR_RED,"Es wurde kein Event gestartet.");
}
}
}
Und ich bekomme dann diese Errors
C:\Users\***\Desktop\***\gamemodes\Gamemode.pwn(47101) : error 017: undefined symbol "ex
C:\Users\***\Desktop\***\gamemodes\Gamemode.pwn(47113) : error 017: undefined symbol "ex"
Kann mir wer erklären wie ich es fixe oder es mir gefixxt drunter posten
MfG. Luis
was genau geht denn nicht?