BTW: das musst du in allen anderen Includes von dir auch einbauen
Mit wem redest du jetzt ![]()
BTW: das musst du in allen anderen Includes von dir auch einbauen
Mit wem redest du jetzt ![]()
ist foreach zu langsam ? oder wofuer redundante spieler schleifen ?
Naja, viele Leute benutzen kein foreach, für die wäre das hier eine gute Funktion, für Leute die foreach nutzen, ist das hier egal ![]()
mfg. ![]()
probier mal folgendes:
Schau ob _OnPlayerConnect schon definiert worden ist wenn ja undfine. ansosten habe ich letztens nen tu gesehen der das vermeidet
Ehm...das geht nicht, da man das forward ja auch umändern muss ![]()
mfg. ![]()
Schreib das mal bitte anders
forward _OnPlayerConnect(playerid);
wenn einer jetzt die und dein Fraktionstool nutzt, dann wird eines von beiden nicht richtig funktionieren
Ja...das sollte auch nochmal in einem Tutorial erklärt werden wie man sowas dann ändert ![]()
Ich glaube ich schreibe mal eins ![]()
mfg. ![]()
Ich hatte erher in die richtung gedacht:
http://pastebin.com/ArajrrZY
Ehm...achso...das kann man auch machen, aber meins ist ja irgendwie besser ![]()
mfg. ![]()
mit MAX_PLAYERS wurde ja imemr die anzahl der möglichen user angegeben, oder?
Richtig...man kann es zwar um definieren macht aber glaube ich fast keiner ![]()
danke.
Bitte ![]()
stock GetItem(playerid,slot, name[],len)
Ja, darüber habe ich nicht nachgedacht ![]()
Gut, danke das du mir sowas sagst, verbessere es gleich ![]()
Item[playerid][s] = "";
Ein ganz schlimmer Fehler, der dir das "beigebracht" hat - gehört verprügelt.
Du sorgst hier nur für memory leaks.
Auch hier danke für den Tipp ![]()
(Du kannst das uralte GF mal verprügeln :D)
Unglaubliche 32 Zeilen Effektivcode und trotzdem noch so viel Mist.
Dann gebe doch mal konstruktive Kritik und sag mal was hier Mist ist ![]()
@Rest, danke für die ganzen Kommentare ![]()
mfg. ![]()
//Edit: Rechtschreibung
Sorry das ich mich grade Dumm anstelle aber versteh ich grade nicht also das ist ein Inventar System wo halt Sachen gespeichert sind aber wie speicher ich etwas wird es automatisch oder wie ähhh?. SORRY!
Mit freundlichen Grüßen
Nein, die Sachen werden nicht automatisch gespeichert, aber du kannst das ganz simpel speichern...
Halt mit deinem Speicherungssystem und GetItem(playerid, slot); Das sähe dann so aus (Beispiel mit dini):
dini_Set(Spielerdatei,"Item1",GetItem(playerid,0));
dini_Set(Spielerdatei,"Item2",GetItem(playerid,1));
//usw bis MAX_SLOTS erreicht ist
Coole Sache,würdest du mir sowas als Kofferraumsystem machen gg Taschengeld?
Was genau meinst du...erkläre das mal genauer ![]()
mfg. ![]()
aber dann sind alle weg, oder lieg ich da falsch?
Da liegst du falsch, es sind nur die weg, dessen Objektid über 1000 liegt ![]()
mfg. ![]()
Achso deswegen also wen man zu viele hat über 1000 dan verschwinden afür anere im server oder?
weil aufeinmal fehlten mir welche ?
Ja...sobald das Limit von 1000 überschritten ist, werden diese Objekte nichtmehr erstellt ![]()
mfg. ![]()
CreateObject ist die Standard Funktion von a_objects und man kann nur 1000 von diesen Objekten erstellen, da sie global erstellt sind und dauerhaft existieren...
CreateDynamicObject arbeitet mit einem Streamer von Incognito und man kann unendlich viele Objekte nutzen, die aber halt auch verschwinden wenn man aus der DrawDistance läuft...da liegt nämlich der Unterschied ![]()
mfg. ![]()
//Edit: Name "a_objects"
Wenn es für ihn _objectid ist dann ist das nun mal so!
War nicht böse gemeint ![]()
Aber es soll sich schließlich nicht falsch verbreiten... ![]()
Wenn es für ihn _objectid ist dann ist das nun mal so!
Ja...aber das geht halt nicht, schau:
new obj = CreateObject(...); //CreateObject returnt die Objektid
CreateObject(modelid...); //Die modelid ist halt die id des Modells des Objekts :D
Das ist ein wichtiger Unterschied !
mfg. ![]()
Schreibe es mal so:
Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[i],X2[i])),2)+floatpower(floatabs(floatsub(Y1[i],Y2[i])),2)+floatpower(floatabs(floatsub(Z1[i],Z2[i])),2));
mfg. ![]()
Mal ein paar Sachen:
1. Nur mal so zur Formulierung:
enum o_Vars
{
_objectid,
Das ist nicht die objectid, sondern die modelid ![]()
2. #define FILTERSCRIPT
#if defined FILTERSCRIPT
#endif
Dafuq ?
Aber sonst, sieht gut aus ![]()
mfg. ![]()
Schreibe es so:
PlayAudioStreamForPlayer(playerid,"http://www.dawndd.square7.ch/connect.mp3");
mfg. ![]()
Naja...was steht n in dieser Zeile ?
Probiere es mal so:
command:startlotto(playerid, params[])
{
new zeit;
if(sscanf(params,"d", zeit))return SendClientMessage(playerid, Farbe_Gelb, "Benutzung:{FFFFFF} /startlotto [Zeit(in Sekunden)]");
if(!IstAdmin(playerid,7)) return SendClientMessage(playerid,Rot,"Du bist kein Admin Stufe 7 !");
if(LottoTimer < 125)return SendClientMessage(playerid, Rot, "Mindestens 125 Sekunden");
LottoTimer = zeit;
format(ALLSTRING,sizeof(ALLSTRING),"{000FFF}:[Lotto]: {FFFFFF}Eine neue Lottoziehung beginnt in %d Minuten {000FFF}:[Lotto]: (von %s)",zeit*60,PlayerName[playerid]);
OOCOff(Weiss, ALLSTRING);
return 1;
}
mfg. ![]()
Schreibe es so:
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid)) return 1;
LoadAcc(playerid);
new Spielerdatei[64],name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Acc/%s.txt",name);
if(dini_Exists(Spielerdatei))
{
PlayAudioStreamForPlayer(playerid,http:"//www.dawndd.square7.ch/connect.mp3");
ShowPlayerDialog(playerid,Dialog_Login,DIALOG_STYLE_PASSWORD,"Login","Gib bitte dein Passwort ein!","Login","Abbrechen");
}
else
{
new ip[16],string[128];
GetPlayerIp(playerid,ip,sizeof(ip));
PlayAudioStreamForPlayer(playerid,http:"//www.dawndd.square7.ch/connect.mp3");
format(string,sizeof(string),"Hallo %s um sicher vor Hackern , Betrügern und des weitern emun zu bleiben bitten wir dich um erlaubnis deine IP zu speichern.\nBist du einverstanden?Deine IP: %s",name,ip);
ShowPlayerDialog(playerid,IP,DIALOG_STYLE_MSGBOX,"Einverständnis!",string,"Einverstanden","Nicht einverstanden");
ShowPlayerDialog(playerid,Dialog_Register,DIALOG_STYLE_PASSWORD,"Passwort eingeben zum Spielen!","Gib ein Passwort ein zum Registrieren ","Register","Abbrechen");
}
return 1;
}
PS: Am ende mit den 2 Dialogen...bin nicht sicher ob du das so machen kannst, du solltest es evtl unter OnDialogResponse packen den 2. Dialog ![]()
mfg. ![]()
Zeig mal mehr Code...wie hast du ip deklariert und das mit dem String...mehr Code ![]()
Schreibe es so:
ocmd:auf(playerid,params[])
{
if(!IsPlayerInRangeOfPoint(playerid,10,1027.1999512,1163.5000000,12.3999996)) return SendClientMessage(playerid,ROT,"Nicht in der Nähe von einem Tor.");
if(IsPlayerInFrakt(playerid,1)||IsPlayerInFrakt(playerid,2)|| IsPlayerInFrakt(playerid,3)) MoveObject(fbitor[0],1027.1999512,1163.5000000,12.3999996-10,5);
return 1;
}
mfg. ![]()