okey wenn es dafür kein sonderzeichen gibt muss ich auf deine Möglichkeit zurück greifen, danke
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Wo wir schon bei sonderzeichen sind, kann man eig. Eigene mit #define erstellen oder so?
-
eig. Eigene mit #define erstellen
#define ä ae
#define Ä Ae
SendClientMessage(playerid,-1,"Ich bin eine Testnachricht: Ich liebe "Ä"pfel");
Ausgabe:
Ich bin eine Testnachricht: Ich liebe Aepfel.*murmel* hoffentlich
-
Hab 2 Fragen:
1: Hab mit dem SAMP Map Editor 2 Personen erstellt und eingefügt ins Script, normal als Objecte.
Sie werden nicht angezeigt aber da wo die normalerweiße stehen kann man auch nicht langgehen. Also in gewisser Weiße sind sie da. Die stehen in einem Selbstgemappten Interior.2: Wie kann ich wenn jmd. Adminduty gegangen ist, und seine Farbe orange gesetzt wurde + er auf der Map markiert wurde ihn wieder von der Map verschwinden lassen ohne das alle Onduty Admins gelöscht werden.
Danke schonmal
- Tomsen
-
Zur 2. Frage:
Anstatt alle zu löchen, kannst du es auch so lösen:
for(new i = 0; i < MAX_PLAYERS;i++){
if(i == playerid){
//Code
}
} -
carlos1710: Ich denke, dass du eine Wochentagsberechnung vor hast. Diesen Algorithmus gibt es in Pawn schon:
// Aus dem englischem Forum
stock GetDayName(day=0, month=0, year=0)
{
new weekday_str[12],j,e;
if (month <= 2)
{
month += 12;
--year;
}j = year % 100;
e = year / 100;switch ((day + (month+1)*26/10 + j + j/4 + e/4 - 2*e) % 7)
{
case 0: weekday_str = "Samstag";
case 1: weekday_str = "Sonntag";
case 2: weekday_str = "Montag";
case 3: weekday_str = "Dienstag";
case 4: weekday_str = "Mittwoch";
case 5: weekday_str = "Donnerstag";
case 6: weekday_str = "Freitag";
}
return weekday_str;
} -
Ich habe mir nun mein eigenen Algorithmus gemacht, villeicht geht es besser aber mein eigenen hab ICH verstanden und durch Wikipedia sogar was gelernt.
GetWeekDay(Tag,Monat,Jahr)
{
new Schaltjahr, Wochentag, Jahrhundert;
if ( ( (Jahr%4==0) && (Jahr%100!=0) ) || (Jahr%400==0) )
{
Schaltjahr = 1;
}
Jahrhundert = (Jahr - (Jahr % 100)) / 100;
Jahr %= 100;
Wochentag = ((Tag % 7) + MonatsZahlen[Monat - 1] + ((Jahr + ((Jahr - (Jahr % 4)) / 4)) % 7) + ((3 - (Jahrhundert % 4))*2) - Schaltjahr) % 7;
return Wochentag;
}Hier meiner, funktioniert ebenfalls IMMER.
//EDIT: Vorrausgesetzt man besitzt das Monatszahlen Arry:new MonatsZahlen[12] = {
0,//Jan 1.
3,//Feb 2.
3,//Mär 3.
6,//Apr 4.
1,//Mai 5.
4,//Jun 6.
6,//Jul 7.
2,//Aug 8.
5,//Sep 9.
0,//Oct 10.
3,//Nov 11.
5 //Dez 12.
}; -
Code
Alles anzeigenocmd:ajail(playerid,params[]) { new Befehl[5]; new ID,Anzahl,Grund[64]; if(GetPlayerAdminLevel(playerid) >= 2) { if(!sscanf(params,"s",Befehl)) { if(strcmp(Befehl,"Add",true)==0) { if(!sscanf(params,"uds[64]",ID,Anzahl,Grund)) { if(!SpielerInfo[ID][sAdminJail]) { format(Text,sizeof(Text),"(( Server: %s wurde von %s für %d Checkpoints eingesperrt, Grund: %s",SpielerInfo[ID][sName],SpielerInfo[playerid][sName],Anzahl,Grund); SendClientMessageToAll(Farbe_Rot,Text); SpielerInfo[ID][sAdminJail] += Anzahl; SetPlayerVirtualWorld(ID,1); SetPlayerPos(ID,1344.2523,2142.3979,11.0156); SetPlayerSpawn(ID); } else { SendClientMessage(playerid, Farbe_Grau,"Dieser Spieler ist schon im AdminJail!"); } } else { SendClientMessage(playerid, Farbe_Grau,"Benutze: /Ajail Add [ID] [ANZAHL] [GRUND]"); } } else { SendClientMessage(playerid, Farbe_Grau,"Benutze: /Ajail [Add/Del/Edit]"); } } return 1; }
-
Hat jemand die OPSP Include schon fertig als .inc?
Bei mir zeigt PAWNO nen Error wenn ich mein Script compillen will, weil er eine Funktion von OPSP nicht erkennt.
-
Warum führt er das nicht aus?..
Hab nen Forward gemacht.
public Waiting()
{
TextDrawHideForAll(BlackscreenTD);//Der führt das nicht aus
//TextDrawHideForAll(NextMapLoadTD);//Der führt das nicht aus
TextDrawHideForAll(LoadStreifenTD);//Der führt das nicht aus
TextDrawHideForAll(LoadPfeilUntenTD);//Der führt das nicht aus
print("Waiting2");//Der führt das nicht aus
SetTimer("Eins",1000,0);
return 1;
}gestartet wird er so
SetTimer("Waiting",5000,0);
-
Wieso bekomm ich hier nen Error?
new pID,string[128],string2[128];
GetPVarString(playerid,"PlayerToPay",pID,128);Blitz 100
Mach mal ganz unten im Public nen SendClientMessage rein und schau ingame obs aufgerufen wird.
Wahrscheinlich aber nicht, wo wird der Timer gestartet?- Tomsen
-
Tomsen wenn du mein Code angeschaut hättest, siehst du das ich printe.. das wird nicht ausgegeben.
Ich starte den in einer Public. -
Das du den in einem Public startest ist mir klar. Aber in welchem?
Am dem public liegts nicht.- Tomsen
-
Der Public in dem ich es starte, der is ok!
Ist zu lang und den möchte ich nicht posten.
Beim printen gibt er den Text auch aus.. -
Wieso bekomm ich hier nen Error?
new pID,string[128],string2[128];
GetPVarString(playerid,"PlayerToPay",pID,128);Blitz 100
Mach mal ganz unten im Public nen SendClientMessage rein und schau ingame obs aufgerufen wird.
Wahrscheinlich aber nicht, wo wird der Timer gestartet?- Tomsen
Du nimmst GetPVarString bei pID - pID ist aber ein Integer. Also entweder GetPVarInt oder pid[128] nehmen. -
JEtzt bekomm ich die Errors:
error 033: array must be indexed (variable "zID")
error 035: argument type mismatch (argument 1)new zID[128],string[128],string2[128];
GetPVarString(playerid,"PlayerToPay",zID,128);
SpielerInfo[playerid][pGeldBank] -= strval(inputtext);
SpielerInfo[zID][pGeldBank] = SpielerInfo[zID][pGeldBank] + strval(inputtext);
format(string,sizeof(string),"Du hast dem Spieler %s %d € überwiesen!",strval(inputtext));
format(string2,sizeof(string2),"Der Spieler %s hat dir %d € überwiesen!",SpielerName(playerid),strval(inputtext));
SendClientMessage(playerid,gruen,string);
SendClientMessage(zID,gruen,string2);Hab pID mal zu zID umbenannt
- Tomsen
-
Du hast zID als string definiert.
Mach also aus dem hier:
new zID[128];
ein
new zID; -
zID ist ja ein String, der inputtext den ich speichern möchte.
Ließ mal den Text oben drüber!
//Edit: Wie kann ich jedem Spieler eine andere 4 stellige Handynummer geben die noch nicht vergeben ist?
- Tomsen
-
Hallöschen,
mal ne frage...Mein public sieht derzeit so aus:
public Abladen(playerid,Biz)
und das ist mein dazugehöriger Timer:
SetTimer("Abladen",6000,false);Wie sicher schon auffällt benutzt das public "Biz"
wie kann ich "Biz" im Timer mit benutzen? -