bitte als erledigt markieren
Beiträge von JanKNB135
-
-
stimmt
-
Verbesserung:
Oben im Script:
#define DIALOG_IPOD 1 //Du legst DIALOG_IPOD als Dialog Nummer 1 fest. (Wenn du 1 schon hast, schreib 2. Die Zahl ist beliebig.)OnPlayerCommand:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/ipodan", true) == 0)
{
ShowPlayerDialog(playerid, DIALOG_IPOD, DIALOG_STYLE_LIST, "iPod - Wähle deinen Sender", "Technobase \nHardbase\nHousetime\nClubtime\nILoveRadio", "Auswählen", "Abbrechen"); //Dialogfenster wird erstellt
return 1;
}
if (strcmp(cmdtext, "/ipodaus", true) == 0)
{
StopAudioStreamForPlayer(playerid);
return 1;
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_IPOD)
{
if(response==0)//falls antwort=abbrechen
{
return 1; //fenster wird geschlossen
}
if(response==1)//falls antwort=auswählen oder doppelklick
{
switch(listitem)//dies erspart dir viele if abfragen
{
case 0: //wenn die erste möglichkeit gewählt wird
{
PlayAudioStreamForPlayer(playerid, "http://listen.technobase.fm/dsl.pls");
return 1;
}
case 1: //wenn die zweite möglichkeit gewählt wird
{
PlayAudioStreamForPlayer(playerid, "http://listen.hardbase.fm/dsl.pls");
return 1;
}
case 2: //...
{
PlayAudioStreamForPlayer(playerid, "http://listen.housetime.fm/dsl.pls");
return 1;
}
case 3: //...
{
PlayAudioStreamForPlayer(playerid, "http://listen.Clubtime.fm/dsl.pls");
return 1;
}
case 4: //...
{
PlayAudioStreamForPlayer(playerid, "http://www.iloveradio.de/listen.m3u");
return 1;
}
}
}
}
return 1;
}PS: Die Zeilen sind hier im Forum falsch eingerückt!!
//edit Überarbeitet und Fehler behoben. Jetzt klappt es! Habs getestet!
-
ohne die Namen kannst du nur schwer erkennen, welche objekte das sind
-
Ja das ist schonmal geklärt. Du solltest jedoch auch in Zeile 562 die "{" einrücken, sodass sie auf gleicher Höhe mit dem "for" ist.
-
dann musst du auf deinem gemieteten root server den samp WINDOWS Server laufen lassen und NICHT LINUX
-
ist dein root auch linux?
-
öffne mal die serverconfig und änder sie so ab:
echo Executing Server Config...
lanmode 1
rcon_password [ein adminpasswort hier eintragen]
maxplayers 500
port 7777
hostname RPG-Second-Life
gamemode0 [dein script hier eintragen] 1
filterscripts
announce 1
query 1
chatlogging 0
weburl [webseite hier eintragen]
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 100
logtimeformat [%H:%M:%S]Dein Script muss zudem in dem Ordner "gamemodes" drin sein und die endung ".pwn" haben.
-
Mach einfach "ESC" und dann gehst du wieder zurück ins Spiel. Danach sollteste mit der Maus wieder die Kamera ändern können.
-
Jap OnPlayerPickupPickup ist die richtige Lösung
-
bei "case2:" fehlt auf jeden Fall ein ";" hinter der Zeile
Bei den anderen Errors weiß ich auch nicht weiter
-
Bei dir hast du die Variable "vehicleid" noch nicht definiert. Über "SetPlayerPos" musst du noch "new vehicleid" schreiben und dann darunter "vehicleid=GetPlayerVehicleID(playerid)". Danach musst du unter "SetVehiclePos" noch "PutPlayerInVehicle(playerid,vehicleid,0)" schreiben, damit der Spieler ins Fahrzeug gesetzt wird.
Fertig sieht das ganze dann so aus:
if(strcmp("/Goto LS BSN", cmdtext, true, 10) ==0)
{
new vehicleid;
vehicleid=GetPlayerVehicleID(playerid);
SetPlayerPos(playerid,1198.8595,-882.4097,42.7054);
SetVehiclePos(vehicleid,1198.8595,-882.4097,42.7054);
PutPlayerInVehicle(playerid,vehicleid,0);
SendClientMessage(playerid, COLOR_BLAU, "Du hast dich auf´s Dach vom Burger Shot Nord (BSN) geportet.");
SendClientMessage(playerid, COLOR_ROT, "NUTZE DEINE ADMINRECHTE NICHT AUS SONST KANN ES MIT DEM OWNER ÄRGER GEBEN WEIL MAN ES IN DER LOG NACHLESEN KANN!");
return 1;
} -
1. du legst fest, wohin du dich teleportieren willst (Koordinaten bestimmen)
2. mit SetPlayerPos(playerid,X,Y,Z) die Position des Spielers ändern
3. eine Variable erstellen (in meinem Beispiel vehicleid)
4. die fahrzeug ID herausfinden und mit der variablen speichern (vehicleid=GetPlayerVerhicleID(playerid))
5. mit SetVehiclePos(variable deines autos,X,Y,Z) die Position des Autos ändern
6. mit PutPlayerInVehicle(playerid,variable deines autos,sitzplatz) den Spieler ins auto setzen (sitzplatz 0 heißt, dass der Spieler Fahrer ist)Die Koordinaten des Spielers und des Autos sollten gleich sein
-
oh shit das war nur ein einfacher Rechtschreibfehler Danke. Das wäre mir nie aufgefallen
-
if(strcmp("/Goto LS BSN", cmdtext, true, 10) ==0)
{
new vehicleid;
vehicleid=GetPlayerVehicleID(playerid);
SetPlayerPos(playerid,1198.8595,-882.4097,42.7054);
SetVehiclePos(vehicleid,1198.8595,-882.4097,42.7054);
PutPlayerInVehicle(playerid,vehicleid,0);
SendClientMessage(playerid, COLOR_BLAU, "Du hast dich auf´s Dach vom Burger Shot Nord (BSN) geportet.");
SendClientMessage(playerid, COLOR_ROT, "NUTZE DEINE ADMINRECHTE NICHT AUS SONST KANN ES MIT DEM OWNER ÄRGER GEBEN WEIL MAN ES IN DER LOG NACHLESEN KANN!");
return 1;
} -
Hallo zusamen,
ich habe ein Problem mit SetTimerEx. Erstmal vorweg: Ich habe den Timer schon häufiger verwendet und er hat auch immer funktioniert, jedoch habe ich bei einem meiner Timer zur Zeit Probleme.Beschreibung:
Ich habe am Airport LS ein Flugzeug aufgestellt und davor ein Pickup erstellt. Läuft man durch das Pickup, soll nichts passieren (es passiert auch nichts). Wenn man in dem Pickup jedoch /fliegensf eingibt, so wird man in das Interior einer Shamal teleportiert (klappt auch) und das für 30 Sekunden. Ich habe also einen Timer bei dem Befehl /fliegensf erstellt, der nach dem Teleport in die Shamal starten soll. Nachdem die Zeit abgelaufen ist, soll man in SF vor einem anderen Flugzeug spawnen. Wenn ich jedoch /fliegensf eingebe, so werde ich in das Interior der Shamal teleportiert und beibe dort gefangen, denn der Timer lässt mich nicht mehr nach draußen.Hier der Code:
Der Befehl /fliegensf:
//...
if (strcmp("/fliegensf", cmdtext, true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,5,1852.7072,-2440.7927,13.5547))
{
SetPlayerPos(playerid,1.808619,32.384357,1199.593750);
SetPlayerInterior(playerid,1);
SetTimerEx("ATFlug",30000,false,"i",playerid);
return 1;
}
else
{
return SendClientMessage(playerid,ROT,"Du bist nicht am Airport!");
}
}
//...Der Timer:
forward AtFlug(playerid);
public AtFlug(playerid)
{
SetPlayerPos(playerid,-1410.0612,-52.9376,14.1484);
SetPlayerInterior(playerid,0);
SendClientMessage(playerid,GRUEN,"Du bist nun in SF angekommen!");
return 1;
}Mein Pickup:
new lsairportateinstieg;
lsairportateinstieg=CreatePickup(1318,1,1852.7072,-2440.7927,13.5547,0);
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid==lsairportateinstieg)
{
return 1;
}
//...Weiß jemand was ich da falsch gemacht habe, bzw. was ich da verändern muss? In meinen Augen ist da nämlich alles richtig
mfg
Jan -
danke.
Es gibt jedoch folgendes neues Problem:
id 1 sperrt mich ein, es gibt einen serverrestart und ich bekommt id 1 und id 0 sitzt jetzt statt mir im knast. also: 1.felix sperrt jan ein->2.serverrestart->3.felix sitzt im knast, jan ist frei -
ich habe das von aviPhunk versucht und es geht! Trotzdem danke ich euch beiden!
Es gibt jedoch noch ein weiteres Problem:
ich muss immer bei /knast [ID][Zeit] bei Zeit eine granz große Zahl schreiben, weil das glaube ich millisekunden sind. kann man das in minuten ändern?mfg
Jan -
danke, aber das klappt immernoch nicht. Ich habe das jetzt abgeändert, wie du es gepostet hast, doch jetzt ist es so: ich sperre jemanden ein, dieser macht relog und spawnt ganz normal. nach etwa 10 sekunden wird er dann an den punkt teleportiert, wo man nach dem knasttimer spawnen soll. Kannste mir da helfen?
public OnPlayerSpawn(playerid)
{
new Spieler[64];
new Sname[MAX_PLAYER_NAME];
GetPlayerName(playerid,Sname,sizeof(Sname));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",Sname);
new zeit;
zeit=dini_Int(Spieler,"knastzeit");
if(sSpieler[playerid][knastzeit] > 0)
{
SetPlayerPos(playerid,263.7467,77.5785,1001.0391);
SetPlayerInterior(playerid,6);
SetTimerEx("knasttimer",zeit,false,"i",playerid);
return 1;
}
else
{
new wanteds,killerid;
wanteds=GetPlayerWantedLevel(playerid);
if(wanteds>=1)
{
if(IstSpielerInFraktion(killerid,1))
{
SetPlayerPos(playerid,266.7467,77.5785,1001.0391);
SetPlayerInterior(playerid,6);
return 1;
}
}
else
{
if(IstSpielerInFraktion(playerid, 0))
{
SetPlayerPos(playerid, 825.6290,-1354.6455,13.5393);
SetPlayerColor(playerid,WEISS);
SetPlayerSkin(playerid,dini_Int(Spieler,"Skin"));
return 1;
}
else if(IstSpielerInFraktion(playerid, 1))
{
SetPlayerPos(playerid, 237.6967,78.9653,1005.0391);
SetPlayerInterior(playerid,6);
SetPlayerColor(playerid,BLAU);
SetPlayerSkin(playerid,dini_Int(Spieler,"Skin"));
SendClientMessage(playerid,BLAU,"Du bist am LSPD gespawnt!");
return 1;
}
}
}
return 1;
} -
bitte genauer. Ein Beispiel im pawno script wäre gut. danke