dini_InSet
Da fehlt ein Buchstabe...
ZitatIntegers werden mit "dini_IntSet" gespeichert.
dini_InSet
Da fehlt ein Buchstabe...
ZitatIntegers werden mit "dini_IntSet" gespeichert.
Dein Fehler ist, uns so wenig Informationen wie möglich zu geben.
Woher soll man wissen was path ist ?
Wenn ihr es nicht wisst,wieso postet ihr dann überhaupt?
SendClientMessage(playerid, COLOR_WASAUCHIMMER, "Dieser Text ist {FF0000}Rot {00FF00}Grün {0000FF}Blau");
Der Text hat standartmäßig die Farbe,die du als 2Parameter angibst. Hast du aber zusätzlich im Text eingeschlossen von Klammern { } einen RGB Wert,so wird der nachfolgende Text mit dieser Farbe angezeigt.
Schon mal den Ansatz selber versucht?
Ich schreib dir das nämlich definitiv nicht :).
Hier hast du ein Beispiel aus Rivershell.pwn
public OnPlayerRequestClass(playerid, classid)
{
//SetupPlayerForClassSelection(playerid); - Nicht beachten
//SetPlayerTeamFromClass(playerid,classid); - Nicht beachten
if(classid == 0 || classid == 1) {
GameTextForPlayer(playerid,"~g~GREEN ~w~TEAM",1000,5);
} else if(classid == 2 || classid == 3) {
GameTextForPlayer(playerid,"~b~BLUE ~w~TEAM",1000,5);
}
return 1;
}
Du musst auch erst die Datei durchgehen und alle Texte erfassen und danach erst den Dialog anzeigen.
new
sBug[512];
sBug[0] = '\0';
while(fread(file,string,sizeof(string))) {
format(sBug,sizeof(sBug),"%s%s\n",sBug,string); // Wir laden Alle Text in den String
// Format:
// BUG_Report1:
// BUG_Report2:
// BZG_Report3:
// usw
}
fclose(ffile);
ShowPlayerDialog(playerid,dialogid,dialogtyp,"Wünsche",sBug,"","");
Das Bild ist ja extrem groß.
ZitatAuflösung: 320x240
Ich sehe keinen 3DText auf dem Bild,nur einen Gametext.
Du musst dafür zum Callback OnPlayerRequestClass.
http://wiki.sa-mp.com/wiki/OnPlayerRequestClass
Dort rufst du dann GameTextForPlayer auf.
http://wiki.sa-mp.com/wiki/GameTextForPlayer
Starke Leistung es ihm so oft falsch vorzumachen.
new Skins[5] =
{
101,
102,
105,
187,
199
};
public OnPlayerSpawn(playerid)
{
new randskin;
randskin = Skins[ random(sizeof(Skins)) ] ; // Das hier habt ihr ALLE nicht richtig.Man muss doch auf den Index im Array zugreifen...
SetPlayerSkin(playerid,randskin);
return 1;
}
Nichts desto trotz war das ein Doppelpost von dir ...
Wenn du Selbstmord machst ( Ich gehe mal davon aus,dass du so testest ) , kommt es zu einem Fehler.
Angenommen du machst Selbstmord,ist die killerid INVALID_PLAYER_ID ( 0xFFFF ) 65536 .
public OnPlayerDeath(playerid, killerid, reason)
{
Spieler[65536][Morde]+=1; // Du hast es bestimmt als Spieler[MAX_PLAYERS] definiert.MAX_PLAYERS ist aber definitiv kleiner als 65536 , weshalb wir ein Index out of Bounce haben.
Spieler[0][Tode]+=1;
return 1;
}
Versuch es mal mit einer Abfrage vorher,ob killerid INVALID_PLAYER_ID ist
public OnPlayerDeath(playerid, killerid, reason)
{
if( killerid != INVALID_PLAYER_ID ) Spieler[killerid][Morde]+=1;
Spieler[playerid][Tode]+=1;
return 1;
}
Das machst du mit der Funktion SetPlayerChatBubble().
http://wiki.sa-mp.com/wiki/SetPlayerChatBubble
Wieso machst du es nicht einfach, was Ich geschrieben habe?
Hast ja auch nicht meine Frage beantwortet.Wenn du Hilfe hilfst,dann nimm sie auch .
ZitatNaja das Problem liegt glaub ich nicht an diesen Zeilen sondern von einem Mitglied meines Teams gibt es halt Problemme mit dem Account oder so weil er sieht immer der ID 0 zu.
Bestimmt nicht daran. Das es nur bei ID 0 passiert,liegt wohl daran, dass du die SpectateID ( GettingCK ) nicht auf irgendetwas ungültiges ( in deinem Fall 999 ) setzt, denn alle Variablen werden mit 0 initialisiert sofern man keinen Wert angibt. Na , etwas aufgefallen ?
Eine Variable für alle Spieler erstellen mit dem Text3D Tag.
new Text3D:t3dSupporter[MAX_PLAYERS];
Funktionen raussuchen die du benötigst.
http://wiki.sa-mp.com/wiki/Create3DTextLabel
http://wiki.sa-mp.com/wiki/Attach3DTextLabelToPlayer
http://wiki.sa-mp.com/wiki/Delete3DTextLabel
Mehr brauchst du nicht,damit kannst du es machen.
Jo aber wie wärs wen man es so benutzt?:
if(!strcmp(GESUCHTER_STRING,"noch",true,4))
Dann würde es doch funktionieren..?
Wäre auch möglich.Hab mich aber an StripNL gewöhnt, von daher brauch Ich beim Vergleichen der Strings nicht direkt die Länge zu beachten.
@Halu,Niemals.
SetPlayerPos(playerid,-25.7504,-139.9799,1003.5469);
Z ist niemals richtig.1003 ist sehr sehr Hoch für die normale Welt.Kannst sicher sein,dass bis auf Mt Chilliad alle normalen Koordinanten für dich zwischen 0 und 150 liegen auf der Z Achse.
Ist dir aber auch nicht aufgefallen,dass die Position von IsPlayerInRangeOfPoint die Gleiche ist,wie bei SetPlayerPos ?
@[CR]xAdy,
Hast du mal bei OnPlayerConnect GettingCK[playerid] = 999 gemacht ?. Also, beim connecten das spectaten auf ungültig stellen.
if(GettingCK[playerid] != 999)
Würde auch eher so abfragen.
Du brauchst StripNewLine auch nicht unbedingt bzw StripNL.
Es ist nur ein Fix für einen Fehler beim auslesen von Texten aus Datein. ( Weiss nicht mehr ob es Linux oder Windows war ).
Zitat
das
ist
noch
ein
test
Angenommen du willst jetzt den Wert der 3 Zeile ( noch ) zurück geben. Du würdest dann fälschlicherweise "noch " bekommen ( Ja, mit den Leerzeichen ).
Mit StripNewLine würde das nich passieren.Es entfernt jedes überflüssige Leerzeichen am Ende eines Strings.
Das wäre zB wichtig,wenn du direkt mit Texten aus der Datei arbeiten willst.
zB beim überprüfen ob ein Spielername in einer Datei steht.Denn strcmp() würde bei "noch " und "noch" sagen,dass wären unterschiedliche Strings.
Ich verzichte daher nie auf StripNewLine. Hat mir früher ( SA:MP 0.2 ) nämlich viele Probleme gemacht ...
Direkt lesen kann man die nicht.Musst schon durch die Datei gehen,bis du selber in der X - Zeile angekommen bist.
blubb.txt
ZitatAlles anzeigendas ist
ein doofer test
für die readline funktion
hahahaha
fihawe9fiuh
wifuhawuifh
wregi
Konsole:
Zitat[15:15:21] ReadLine("blubb.txt",3) 'für die readline funktion'
stock ReadLine(const sFile[],iLine) {
new
File:fFile,
_iLine = 0,
_sTmp[128] = "-Datei nicht geöffnet";
fFile = fopen(sFile,io_read);
if(fFile) {
while(fread(fFile,_sTmp,sizeof(_sTmp))) {
StripNewLine( _sTmp ); // Ich hoffe du hast die Funktion,StripNewLine oder StripNL
/* Willst du Leere Zeilen skippen ?
if(!_sTmp[0]) {
continue;
}
*/
_iLine++;
if( _iLine == iLine ) {
break;
}
}
fclose(fFile);
}
return _sTmp;
}
Natürlich kannst mich verbessern, nur hat NeoPhoenix seinen Post gelöscht, weil er auch bemerkt hat,dass ihr es etwas umständlich macht :P.
Auf die SitzID hab ich sowieso nicht geachtet,da Ich die Funktion ja auskommentiert habe.
Man brauch hier weder SetPlayerPos, noch PutPlayerInVehicle. Das sind unnötige Funktionsaufrufe.
Sitzt ein Spieler in einem Auto und das wird irgendwo hin teleportiert,wird der Spieler automatisch mitgenommen. Daher brauch man nicht die Spielerposition ändern und ihn wieder in das Auto setzen ( Da er es sowieso nie verlassen hat ). Beides funktioniert ja Fehlerfrei, nur ist dein's etwas langsamer :-X.
Nein. Ich kann dir selber nicht sagen,ob es diese Escape Sequenzen nur bei PAWN gibt oder sie allgemein gültig.
Eigentlich fällt es unter diese Kategorie:
http://de.wikipedia.org/wiki/E…ndten_Programmiersprachen
Jedenfalls,PAWNO ist nur der Editor mit dem du dein Script bearbeitest.Du könntest es auch mit dem normalen Notepad machen. Wäre es denn dann etwa auch Notepad Escape Sequenzen ? Die Sprache heisst PAWN,nicht PAWNO.
Kannst es ja einfach PAWN oder SA:MP Escape Sequenzen nennen :/-
Was mir gerade noch einfällt.Funktionieren all diese Escape Sequenzen auch Ingame im Chat oder den Dialog-Boxen ? Wäre vielleicht auch ganz nett wenn du erwähnst ob es nur in der Konsole sichtbare Zeichen ausgibt oder auch Ingame.Kann mir nämlich nicht vorstellen,dass das Venus / Mars Symbol Ingame sichtbar ist :-O
if(strcmp(cmdtext,"/trans",true)==0)
{
new vehicle;
vehicle = GetPlayerVehicleID(playerid);
SetPlayerInterior(playerid,0);
// SetPlayerPos(playerid,1041.8779,-1037.7628,31.7619); Diese Zeile gehört da nicht hin.Das teleportiert den Spieler ohne sein Auto,weshalb du immer neu einsteigen musst
SetVehiclePos(vehicle,1041.8779,-1037.7628,31.7619);
//PutPlayerInVehicle(playerid, vehicle, 1);
SendClientMessage(playerid,0xFFF000FF,"Du bist nun am Trans Fender");
GameTextForPlayer(playerid,"~w~Hier Kannst du dein ~g~Auto ~y~Tune",5000,5);
return 1;
}
Solltest auch drauf achten,wenn du Spieler mit Fahrzeug in ein Anderes Interior setzen willst,musst du folgende Funktion noch benutzen.
http://wiki.sa-mp.com/wiki/LinkVehicleToInterior
Das ganze hat aber nichts mit PAWNO zu tun .
Würde mal den Titel an deiner Stelle ändern.
Schau dir an wie man GetPlayerNamenutzt.
new
Name[MAX_PLAYER_NAME];
GetPlayerName(playerid,Name,sizeof(Name));
dini_Set(savetelefonbiz,"Besitzer",Name);
NeoPhoenix
Träum weiter :p
Ich glaube kaum, dass Goldkiller hier gerne helfen würde.
Da spricht wohl der Fachmann .