das callback OnPlayerDeath hat die parameter playerid und killerid.
SetPVarInt(killerid,"Auftrag",0);
einfach drunter.
das callback OnPlayerDeath hat die parameter playerid und killerid.
SetPVarInt(killerid,"Auftrag",0);
einfach drunter.
mit dem Callback "OnPlayerEnterCheckpoint"
Ich hoffe den gibs noch..
da überprüfst du einfach die markerid, die du beispielsweise definierst hast. Danach deine Funktion.
bei public OnPlayerStateChange abfragen, ob er in ein auto sitzt,
if(newstate && PLAYER_STATE_DRIVER)
{
ShowTextDrawbla...
}
bekommst du errors? funktionert nichts?
bekommst du SERVER:Unknow Command?
Hallo, ich habe ein kleines problem.
in meinem Selfmade hab ich ein Tutorialsystem überschrieben, das so aussieht:
public OnPlayerSpawn(playerid)
{
if(SpielerInfo[playerid][Neu] == 0)
{
tutorialsetup[playerid] = 1;
SetToTutorial(playerid);
}//tutorial
mein SetToTutorial:
public SetToTutorial(playerid)
{
if(tutorialsetup[playerid] == 1)
{
ShowPlayerDialog(playerid,DIALOG_TUTORIAL,DIALOG_STYLE_MSGBOX,TUTORIALTITEL,TUTORIALSTRING1,"OK","");
tutorialsetup[playerid] = 0;
}
if(tutorialsetup[playerid] == 0)
{
if(SpielerInfo[playerid][Alter] == 0)
{
TogglePlayerControllable(playerid,0);
ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"Tutorial:{00ff00}Alter","{ffffff}Bitte Tipp dein Alter ein. {00ff00}(Beispiel: 16)","Ok","");
}
else if(SpielerInfo[playerid][Alter] != 0)
{
TogglePlayerControllable(playerid,0);
ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_LIST,"Tutorial:{00ff00}Geschlecht","{00ff00}Du bist:\n{ffffff}Männlich\n{ffffff}Weiblich","OK","");
}
if(SpielerInfo[playerid][Geschlecht] != 0)
{
ShowPlayerDialog(playerid,DIALOG_TUTORIAL2,DIALOG_STYLE_MSGBOX,"{00ff00}[Colex]Tutorial","{ffffff}Vielen Dank für die Informationen. Sie wurden soeben in der Datenbank aufgenommen.\n{ffffff}Du kannst dir nun das Tutorial anschauen, wenn du möchtest.","Anschauen","Ablehnen");
TogglePlayerControllable(playerid,0);
}
}
}
doch beim Spawnen springt er gleich zu dem Alter.
was ist falsch?
hier noch meine Dialogabfragen:
case DIALOG_ALTER:
{
new alter = strval(inputtext);
if(alter < 10) return ShowPlayerDialog(playerid,DIALOG_ALTER,DIALOG_STYLE_INPUT,"{ffffff}Fehler","{ffffff}Bitte Tippe dein richtiges Alter ein. (Nicht unter 10)","OK","");
SpielerInfo[playerid][Alter] = alter;
Speichern(playerid);
SetToTutorial(playerid);
}
case DIALOG_GESCHLECHT:
{
switch(listitem)
{
case 0:
{
ShowPlayerDialog(playerid,DIALOG_GESCHLECHT,DIALOG_STYLE_LIST,"Tutorial:{00ff00}Geschlecht","{00ff00}Du bist:\n{ffffff}Männlich\n{ffffff}Weiblich","OK","");
}
case 1:
{
SpielerInfo[playerid][Geschlecht] = 1;//männlich
SetToTutorial(playerid);
Speichern(playerid);
}
case 2:
{
SpielerInfo[playerid][Geschlecht] = 2;//weiblich
SetToTutorial(playerid);
Speichern(playerid);
}
}
}
case DIALOG_TUTORIAL:
{
if(response)
{
SetToTutorial(playerid);
}
if(!response)
{
SetToTutorial(playerid);
}
}
case DIALOG_TUTORIAL2:
{
if(response)
{
imtutorial[playerid] = 1;
tutorialtimer = SetTimerEx("tutorial",5000,1,"if",playerid);
tutorialzeit[playerid] = 1;
MSG(playerid,COLOR_GREEN,"Du wirst zum Tutorial weitergeleitet.");
}
if(!response)
{
ShowPlayerDialog(playerid,DIALOG_ADMINHOLEN,DIALOG_STYLE_MSGBOX,"{00ff00}[Colex]Hilfe","{ffffff}Du hast entschieden, dir das Tutorial nicht anzuschauen.\n{ffffff}Möchtest du lieber ein Admin holen?","Ja","Nein");
}
}
case DIALOG_ADMINHOLEN:
{
if(response)
{
new string[256];
format(string,sizeof(string),"ToAdmins: %s ruft nach einem Admin, weil er das Tutorial absolviert hat.",PlayerName(playerid));
SendToAdmins(COLOR_LIGHTRED,string);
MSG(playerid,COLOR_LIGHTBLUE,"Ein Admin wird sich um dich kümmern.");
}
if(!response)
{
MSG(playerid,COLOR_GREEN,"Dann wünscht das Adminteam dir viel spaß auf Colex-RL!");
}
}
mfg
printf("ID's Online: %d");
heißt das nicht
printf("ID's Online: %d",i);
?
//edit
Goldkiller
falls das foreach oben definiert ist, wie du meinst, bekomme ich folgenden error beim einsetzen:
colex.pwn(7985) : error 001: expected token: ")", but found "{"
public Updateknast()
{
foreach(i) {
...
//edit:
public Updateknast()
{
foreach(i)) {
so gehts...
Okay jetz bin ich total verwirrt.
So wie ich richtig verstanden habe, macht die Schleife nicht weiter, wenn eine ID fehlt.
Wie ist nun richtig? denn darauf würde ich mein Ganzes script stellen.
mfg
Kannst du uns ein paar infos geben?
Errors?
Welches script?
Selfmade?
von wem?
Wenn errors kommen, welche?
Was passiert?
stock IsVehicleWithoutEngine(vehid)
{
if(vehid == 481 || vehid == 509 || vehid == 510)
{
return 1; //Fahrräder
}
if(vehid == 441 || vehid == 464 || vehid == 465 || vehid == 501 || vehid == 564 || vehid == 594)
{
return 1; //RC Vehicles
}
if(vehid == 449)
{
return 1; //Tram
}
return 0;
}
der fragt wieder die Fahrzeugids ab, die du im script hast. nicht die models.
Was soll ich jetz nehmen ? ._.
MnKn's sieht gut aus.
//edit:
hab noch eine frage bezüglich publics mit Playerid,
ich habe diesen Public.
public UpdateFraktionen(playerid)
{
if(SpielerInfo[playerid][Fraktion] == 1 && habdiezahl[playerid] == 1){sapdonvar -= 1; habdiezahl[playerid] = 0;}
if(SpielerInfo[playerid][Fraktion] == 2 && habdiezahl[playerid] == 1){fbionvar -= 1; habdiezahl[playerid] = 0;}
if(SpielerInfo[playerid][Fraktion] == 3 && habdiezahl[playerid] == 1){armyonvar -= 1; habdiezahl[playerid] = 0;}
if(SpielerInfo[playerid][Fraktion] == 4 && habdiezahl[playerid] == 1){groveonvar -= 1; habdiezahl[playerid] = 0;}
if(SpielerInfo[playerid][Fraktion] == 5 && habdiezahl[playerid] == 1){vagosonvar -= 1; habdiezahl[playerid] = 0;}
if(SpielerInfo[playerid][Fraktion] == 6 && habdiezahl[playerid] == 1){sanonvar -= 1; habdiezahl[playerid] = 0;}
if(SpielerInfo[playerid][Fraktion] == 7 && habdiezahl[playerid] == 1){terroronvar -= 1; habdiezahl[playerid] = 0;}
if(SpielerInfo[playerid][Fraktion] == 1 && habdiezahl[playerid] == 0){sapdonvar += 1; habdiezahl[playerid] = 1;}
if(SpielerInfo[playerid][Fraktion] == 2 && habdiezahl[playerid] == 0){fbionvar += 1; habdiezahl[playerid] = 1;}
if(SpielerInfo[playerid][Fraktion] == 3 && habdiezahl[playerid] == 0){armyonvar += 1; habdiezahl[playerid] = 1;}
if(SpielerInfo[playerid][Fraktion] == 4 && habdiezahl[playerid] == 0){groveonvar += 1; habdiezahl[playerid] = 1;}
if(SpielerInfo[playerid][Fraktion] == 5 && habdiezahl[playerid] == 0){vagosonvar += 1; habdiezahl[playerid] = 1;}
if(SpielerInfo[playerid][Fraktion] == 6 && habdiezahl[playerid] == 0){sanonvar += 1; habdiezahl[playerid] = 1;}
if(SpielerInfo[playerid][Fraktion] == 7 && habdiezahl[playerid] == 0){terroronvar += 1; habdiezahl[playerid] = 1;}
format(ausgabe,sizeof(ausgabe),"~g~- %d ~b~- %d ~h~~g~- %d - %d ~y~- %d ~r~- %d ~y~- %d",sapdonvar,fbionvar,armyonvar,groveonvar,vagosonvar,terroronvar,sanonvar);
TextDrawSetString(Onlinefraktion,ausgabe);
TextDrawShowForAll(Onlinefraktion);
}
Dieser soll ein Textdrawstring updaten, auf die User die grade online sind.
Ich bin immer sehr kompliziert und arbeite viel mit Variablen.
könnte dort auch ein fehler ohne schleife auftauchen?
mfg
//edit2: mit 5-6 spielern getestet, funktioniert zwar, bin mir aber nicht sicher mit 10 spielern.
habs, hab einfach eine variable genommen, beim connecten +1 gesetzt und beim disconnecten -1
und dann das Max_PLAYERS ersetzt^^
Hallo leute, ich habe eine frage.
Ich hab diese schleife unter ein 1-minuten timer,
for(new i = 0; i < MAX_PLAYERS; i++){
Doch das problem ist, dass er jedesmal meine console vollspammt, wenn ich etwas zum printen reinfüge.
Ich möchte, dass diese Schleife nur soviel durchgeht, wieviele spieler online sind. und nicht 200.
Geht das?
mfg
Die errors sehen nach Dialogen aus.
Wenn du möchtest, poste mal dein public ondialogresponse.
mfg
Selfmade is besser.
Such mal im script nach leeren strings.
das heißt:
SendClientMessage(playerid,deinefarbe,""); // dieses "" das kackt pawno immer ab
ShowPlayerDialog(playerid,dialogid,DIALOG_STYLE_WASWEISICH,"Titel","LangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertextLangertext","Knopf","Knopf");
Entlos lange Dialoge und strings kann dein mr.compiler auch nicht verarbeiten.
strings über 100000 würd ich dir auch nicht empfehlen.
Der Compiler crasht nur dann, wenn er soviele errors bekommt, sodass er sie nichtmehr verarbeiten kann.
Nen paar infos währen nicht schlecht.
Bukkit?
Normaler server?
Ich denke das es Bukkit ist.
TooManyItems ist ein mod, der den Command wenn man auf den Block im inventar klickt, an den Server sendet.
Ich bekomme die Items auch nicht gleich, ich klick einmal in inventar auf die leere stelle, und auf einmal hab ich den block in meiner Maus.
Mein tipp: Falls euch das stört, benutzt das Plugin CommandBook, womit ihr euch mit /give spielername block anzahl die blöcke normal geben könnt.
mfg
Hallo leute,
Ich suche die ganze zeit nach einem Tutorial für ein Autohaus.
Grundlagen sollten Autos, abschließung, besitzer und Tunings speicherung beinhalten.
Doch ich find einfach nichts.
ich wollt mir das mal auf den Schirm holen, weil mir das noch nicht so ganz liegt.
Ich hoffe ihr könnt mir helfen.
mfg MuLti
Ich habs nur nett gemeint
In dem Tutorial steht alles gut erklärt.
Für anfänger gut geeignet.
Auch wie man ein Forum macht, das ist eigentlich gut zu verstehen dort.
Da gibt es so ein nettes Tutorial für dich, wo ich denke, dass möchtest du machen:
Alles anzeigenocmd:bombeorten(playerid,params[])
{
if(!isPlayerBehoerde(playerid))return SendClientMessage(playerid,ROT,"Du bist kein Beamter!");
new Float:x, Float:y, Float:z;
GetPlayerPos(Bombe,x,y,z);
SetPlayerCheckpoint(playerid,x,y,z,5.0);
return 1;
}
was dass den für nen mist? oder soll das nur anschaulich gemacht werden? lass bitte nächstes mal die pwn tags weg, sonst fügen es warscheinlich noch welche ein^^
wie gesagt, ich glaube lieber du solltest die positionen der Bombe abfragen, nicht die Spielerid der Bombe,denn die Bombe ist definitiv kein spieler o,O