[wichtig] 3 fragen (richtung RL)

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
  • also,
    ich habe ja ein RPG, und für die cops brauch ich ein gate was mit /PD auf geht, nur leider verwstehe ich die tuts net :(
    das zweite ist, ich brauche ein 5 minütiges PayDay, ich versucghe immer das von der deutschen wiki seite uz benutzen. da sagt der mir aber immer er kennt "i" net oder so 8|
    das dritte ist, ich brauch nen tank, wobei es nur EINE tankstelle sein soll, nähmlich die, die ich selbst gemappt habe. also ich habe noch kein tankscript !


    hoffe auf eine schnelle antwort!



    MfG


    Kitarou

  • Zu dem Tor:
    Gans nach oben:
    new torname;
    OnGameModeInit:
    torname=CreateObject(.....);//die Positionen vom GESCHLOSSENEN Tor
    OnPlayerCommandText:
    if(strcmp(cmdtext,"/pd",true)==0) {
    MoveObject(torname,x,y,z,geschwindigkeit);//die x, y und zFloats vom OFFENEN Tor eintragen, bei Geschwindigkeit... trag da einfach ne Zahl zwischen 0.1 und 20 ein (je dichter die Zah lan 20 dran ist, desto schneller bewegt ich das Tor)
    return 1;
    }
    Um es wieder zu schließen musst du einfach nur bei MoveObject die x,y und z Floats austauschen


    PayDay:
    Ganz nach oben:
    forward payd(); new zahler=0;
    OnGameModeInit:
    SetTimer("payd",60000,1);//die 60000 sind 1 Minuten in Millisekunden gerechnet und die 1 am Ende heißt, dass der Timer wiederhohlt werden soll
    Normalerweise würde man da gleich 360000 eintragen, weil das 5 Minuten wären, aber wir zeihen dort gleich des Tanken mit ein :)
    Dann ganz nach unten:
    public payd() {
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(zahler>=5) {
    GivePlayerMoney(i,5000);
    zahler=0;
    SendClientMessage(i,FARBE,"PayDay, du bekommst 5000$"); }
    tanken(i); }}
    zahler++; }
    Das "tanken(i)" nur mit einfügen, wenn du auch das Tanksystem reinmachst


    Zum tanken:
    Ganz nach oben:
    forward tanken(playerid); new benzin[MAX_VEHICLES];
    OnGameModeInit:
    for(new v=0; v<MAX_VEHICLES; v++) {
    benzin[v]=100; }
    Ganz nach unten:
    public tanken(playerid) {
    if(GetPlayerState(playerid)==2) {
    new aid=GetPlayerVehicleID(playerid);
    if(benzin[aid]>=1) {
    new s[30];
    benzin[aid]--;
    format(s,sizeof(s),"Tank: %d/100 Liter",benzin[aid]);
    GameTextForPlayer(playerid,s,10000,1); }
    else {
    SendClientMessage(playerid,FARBE,"Dein Tank ist leer");
    //jetzt müsste man ihn entweder freezen, damit er nicht weiterfährt...
    //TogglePlayerControllable(playerid,0);
    //oder man kann ich auch töten, dann fährt er auch nciht weiter...
    //SetPlayerHealth(playerid,0);
    }}}
    Falls du dich für das freezen entscheidest, dann bruachst du auch nochn unfreeze cmd:
    OnPlayerCommandText:
    if(strcmp(cmdtext,"/aussteigen",true)==0) {
    if(GetPlayerState(playerid)==2) {
    TogglePlayerControllable(playerid,1);
    RemovePlayerFromVehicle(playerid); }
    return 1;
    }
    Und damit dann da niemand mehr einsteigen kann:
    OnPlayerStateChange:
    if(newstate==2) {
    if(benzin[GetPlayerVehicleID(playerid)]==0) {
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1); }}
    So, das wars dann auch schon ;)

  • ok, ich gucke nach wenn ich wieder an MEINEM PC bin, werde dann, wenn nötig ein edit machen ^^


    achja wo ist den der rauzm wo man tanken KANN? weuil ich sehe nichts, wo man es machen kann, also - man kann es überall machen oder? XD


    EDIT1: LOL man kann net mal tanken xD
    EDIT2: hm, dann brauch natürlich ne tankanzeige, aber NUR ne tankanzeige wenns geht^^ achja, und die anzeige pls auf englisch, hab schon gesuch auf http://www.gidf.de und google.de xD naja pls help :(


    EDIT3 (errors bei PayDay): ja wie gesagt, ich sag dann mal die errors xD : C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\gamemodes\RPG.pwn(517) : error 017: undefined symbol "tanken"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    EDIT zu EDIT2:
    sry, habs net gesehen das da doch einer mit drin ist^^


    EDIT4: alles geht, jetzt fehlt nur noch die tankstelle, kann mir jemand da helfen? :(
    EDIT5: also dieser tank is kacke, nach ner secunde ist der tank von 99 DIREKT AUF 0!! pls help help!! danke!!

  • Ops, hast recht, hab die Tankstelle vergessen xD
    if(strcmp(cmdtext,"/tanken",true)==0) {
    if(PlayerToPoint(10.0,playerid,x,y,z)) {//bei x,y und z die Koordinaten eintragen
    if(GetPlayerState(playerid)==2) {
    new aid=GetPlayerVehicleID(playerid);
    if(GetPlayerMoney(playerid)>=100-benzin[aid]*[hier musst du den Preis für 1 Liter Benzin eintragen]) {
    GameTextForPlayer(playerid,"Tank ist wieder voll",5000,1);
    benzin[aid]=100; }
    else {
    new s[50], lit=GetPlayerMoney(playerid)/[Hier den Preis für 1 Liter Benzin eintragen];
    format(s,sizeof(s),"%d Liter Benzin getankt",lit);
    GameTextForPlayer(playerid,s,5000,1);
    benzin[aid]+=lit; }}}
    return 1;
    }
    Sollte PlayerToPoint bei dir nicht deklariert sein, dann klick mich


    //EDIT: Zu deinem EDIT5: Das ist mir unerklärlich... es wird nur 1 mal pro Minute was ausm Tank entfernt

  • achja, nur noch eins: es geht zwar, aber die tankanzeige verschwindet ja xD und der PayDay kommt auch net noch einer minute^^


    EDIT: C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\gamemodes\RPG.pwn(411) : warning 217: loose indentation
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\gamemodes\RPG.pwn(453) : error 017: undefined symbol "x"
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\gamemodes\RPG.pwn(456) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\gamemodes\RPG.pwn(456) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\gamemodes\RPG.pwn(456) : error 001: expected token: ";", but found "]"
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\gamemodes\RPG.pwn(456) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\gamemodes\RPG.pwn(456) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.

    warning 1 is von mir, und die ersten 2 verstehe ich weil ich noch keine coords gemacht habe aber warum die anderen da sind weiß ich auch net


    EDIT2: XD und wie kann ich "if(PlayerToPoint(10.0,playerid,x,y,z)) {//bei x,y und z die Koordinaten eintragen" verdoppeln? habs versucht, aber dann kommen über 20 errors xS

  • Verdoppeln:
    if(PlayerToPoint(....) || PlayerToPoint(...) || PlayerTo...(...)) {
    Das || heißt oder und && heißt und


    Und zu dem anderne Problem... kann ich hellsehen? Du musst schon den Code posten, wie du es jetzt eingefügt ahst (nicht den ganzen GM)

  • ok also hier: if(strcmp(cmdtext,"/tanken",true)==0) {
    if(PlayerToPoint(10.0,playerid,x,y,z)) {//bei x,y und z die Koordinaten eintragen
    if(GetPlayerState(playerid)==2) {
    new aid=GetPlayerVehicleID(playerid);
    if(GetPlayerMoney(playerid)>=100-benzin[aid]*[150]) {
    GameTextForPlayer(playerid,"Tank ist wieder voll",5000,1);
    benzin[aid]=100; }
    else {
    new s[50], lit=GetPlayerMoney(playerid)/[150];
    format(s,sizeof(s),"%d Liter Benzin getankt",lit);
    GameTextForPlayer(playerid,s,5000,1);
    benzin[aid]+=lit; }}}
    return 1;
    }
    so wie DU es mir gegeben hast^^

  • o, ooooooooooh xD sry^^ danke jetzt gehts denke ich mal, nur noch eine frage:
    muss man DIREKT auf diesem punkt sein? weil es ist ja nur ein "punkt" oder?


    EDIT FÜR KEKS :D: ja, is ja nur test man xDD
    EDIT FÜR KEKS :D: und auserdem bekommt man ja jede min (was irgendwie keine minute is, und ich noch nie bis jetzt PayDay bekam, auser ich schraubte die zeit runter) Payday, mit 5000$! XD

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • aso k ;)


    edit: C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\RPG.pwn(411) : warning 217: loose indentation
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\RPG.pwn(453) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\RPG.pwn(453) : error 028: invalid subscript (not an array or too many subscripts): "PlayerToPoint"
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\RPG.pwn(453 -- 454) : error 001: expected token: "}", but found "if"
    C:\Dokumente und Einstellungen\Maximilian\Desktop\test server\RPG.pwn(453 -- 454) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    8|


    if(strcmp(cmdtext,"/refill",true)==0) {
    if(PlayerToPoint(10.0,playerid,1543.3259,-1720.5739,13.5546) || if(PlayerToPoint(10.0,playerid,1547.8899,-1720.5204,13.5546)) {
    if(GetPlayerState(playerid)==2) {
    new aid=GetPlayerVehicleID(playerid);
    if(GetPlayerMoney(playerid)>=100-benzin[aid]*150) {
    GameTextForPlayer(playerid,"your car is now refilled",5000,1);
    benzin[aid]=100; }
    else {
    new s[50], lit=GetPlayerMoney(playerid)/150;
    format(s,sizeof(s),"%d litres filled",lit);
    GameTextForPlayer(playerid,s,5000,1);
    benzin[aid]+=lit; }}}
    return 1;
    }


    ALLES GEKLÄRT, IST JETZT GE ~CLOSED~