Nein es geht mir darum, das Objekte nur indirekt gescriptet werden, und mit Wasser wird das genauso sein.
Beiträge von Akino Kiritani
-
-
kein Ding
@ll hört endlich auf returns in schleifen zu setzen...
nehmt breaks >.> -
und wenn du aus
for(new i = 0;i<MAX_PLAYERS; i++)
{
if(GetPVarInt(i, "Notruf") == 1)
{
SetPVarInt(playerid, "Hilfe", i);
return 1;
}
}
das machst
for(new i = 0;i<MAX_PLAYERS; i++)
{
if(GetPVarInt(i, "Notruf") == 1)
{
SetPVarInt(playerid, "Hilfe", i);
}
} -
Du hast auch ein / vor deinem Befehl vergessen
-
Manche Objecte buggen auch noch wenn man sie removed da sieht man dann folgendes wenn man direkt drauf guckt
Einige Objekte haben noch ein LOS(so heitßt das glaub ich) Objekt. du musst dann beide entfernen.
Am besten ist hat wenn du den Editor aum englischen Forum nimmst -
Du hattest die Klammern falsch gesetzt.
Du hastdie dialogid abgefragt
{
dann die response
{
was geschen lassen
} klammer zu gemacht
} wieder eine klammer zugemacht
und dann die response hier abgefragt das gehört aber zu dialog id.
wenn du das nicht speziell für die dialogid machst dann gilt das für alle Dialoge -
guck dir mal die Funktion RefreshPlayerNachShow in deinem Script an.
Dann vergleichst du sie mit RefreshPlayerNachShow(i); dann sollte dir eigentlich der Fehler auffallen -
So sollte das hinhaun
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_LOGIN)
{
if(response==0)
{
Kick(playerid);
SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen!");
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,ROT,"Das Passwort war nicht lang genug");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden, gib bitte das Passwort ein","Login","Abbrechen");
return 1;
}
else
{
Login(playerid,inputtext);
return 1;
}
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response==0)
{
Kick(playerid);
SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen!");
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,ROT,"Das Passwort war nicht lang genug");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein","Registrieren","Abbrechen");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}
return 1;
}Sorry für die einrückung
-
Wie wohl?
Ohne Schleife natürlichnew IP[16];
GetPlayerIp(playerid,IP, sizeof(IP));
format(iplog, sizeof(iplog), "Spieler: %s betrat den Server. Mit der IP: %s",pName,IP);
ADMChat(iplog,Admincmd); -
Es wird zwar funktionieren, nur werden die Admins mit der Mitteilung zugspammt.
Ein Spieler betritt den Server und die Schleife geht alle 500 Spieler einmal durch liest einmal die IP von jedem Spieler aus und sendet sie dan Admins -> Code sowas von sinnlos
-
CreateDynamicObject ist für den Plugin Streamer von Icognito gedacht.
CreateObject ist eine Standart SAMP funktion.Wenn du CreateDynamicObject z.B. in einem Filterscript verwendest und es dann unloadest dann verschwinden die Objekte, bei CreatObject wiederrum nicht
-
new IP[16];
for(new i = 0; i < MAX_PLAYERS; i++)
{
GetPlayerIp(i,IP, sizeof(IP));
format(iplog, sizeof(iplog), "Spieler: %s betrat den Server. Mit der IP: %s",pName,IP);
ADMChat(iplog,Admincmd);
}
Ich weiß nicht genau was du vorhast denn der Code macht unter OnPlayerConnect einfach keinen Sinn -
Zeile 23232
Es sieht so aus als ob du z.B. versucht einen Float in einen Integer zu speichern.27973
Lösung #pragma unused ret_memcpy23088
Erklärt sich eigentlich von selbst -
Speicher die IP doch einfach in einem zu kleinen string.
oder du machst GetPlayerIP
und löscht mit strdel das was du nicht haben willst einfach raus -
Ein paar Beiträge vorher steht das auch
-
stock Login(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
{
SetPlayerScore(playerid,dini_INT(Spielerdatei,"Level"));
SendClientMessage(playerid,0x00FF00FF,"Erfolgreich eingeloggt.");
}
else
{
SendClientMessage(playerid,0xFF0000FF,"Das Passwort war falsch.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib hier dein gewünschtes Passwort ein","Register","Abbrechen");
}
return 1;
}
so sollte es richtig sein -
Eine Sache ist da die ich nicht verstehe
Warum steht da eigentlich optional Client Update und nicht Server/Client Update.
Es wurde ja beides geupdatet und optional ist da so ne Sache :\ -
Weil Chatbubbles von jedem spieler gesehen werden können
in dem Fall solltest du mit CreatePlayer3DText und UpdatePlayer3DText arbeiten.Soll heißen du erstellst die 3DTexte nur für bestimmte Spieler,in deinem Fall Cops, sodass für andere sie nicht sichbar sind
Du kannst im Prinzip den Code solassen nur muss du den 3DText noch erstellen und attachen.
Updaten tust du ihn dann in der Schleife, statt dem SetPlayerChatBubble -
if(GetPVarInt(playerid, "Wanteds") >= 1 && GetPVarInt(playerid, "Wanteds") < 10) SetPlayerWantedLevel(playerid, 1);
if(GetPVarInt(playerid, "Wanteds") >= 10 && GetPVarInt(playerid, "Wanteds") < 20) SetPlayerWantedLevel(playerid, 1);
if(GetPVarInt(playerid, "Wanteds") >= 20 && GetPVarInt(playerid, "Wanteds") < 30) SetPlayerWantedLevel(playerid, 2);
if(GetPVarInt(playerid, "Wanteds") >= 30 && GetPVarInt(playerid, "Wanteds") < 40) SetPlayerWantedLevel(playerid, 3);
if(GetPVarInt(playerid, "Wanteds") >= 40 && GetPVarInt(playerid, "Wanteds") < 50) SetPlayerWantedLevel(playerid, 4);
if(GetPVarInt(playerid, "Wanteds") >= 50 && GetPVarInt(playerid, "Wanteds") < 60) SetPlayerWantedLevel(playerid, 5);
if(GetPVarInt(playerid, "Wanteds") == 60) SetPlayerWantedLevel(playerid, 6);dann probier ma so
-
einfach aus
format(string, sizeof string, "Wantedlevel: %d",);
das machen
format(string, sizeof string, "Wantedlevel: %d",WantedLevel[i]);Ach ja und sein bitte so nett und entferne dieses return 1; das der schleife das führt nur zu fehlern >.>