GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: [RC]Farkas - 2013. január 28. - 15:56:03

Cím: Úszás Tiltása
Írta: [RC]Farkas - 2013. január 28. - 15:56:03
Van egy titanic minigamem és abba az kéne, hogyha a player besik a vizbe akor kiesen a minigámeböl
Cím: Úszás Tiltása
Írta: ZyZu. - 2013. január 28. - 16:05:25
Ha benne van a minigameban akkor elkéred a pozicióját GetPlayerPos -al és Z kordináta - méred vagyis például if( Z == -1.0 ) ha leesik akkor -1.0 méretnél kiesik..
Cím: Úszás Tiltása
Írta: Flash - 2013. január 28. - 16:20:03
vízszint: 0 vagyis: new ff[3]; GetPlayerPos(playerid, ff[0], ff[1], ff[2]); lekérdezés: [pawn]if(ff[2] < 1)[/pawn]
Cím: Úszás Tiltása
Írta: [RC]Farkas - 2013. január 28. - 17:13:34
Igy
 
if(GetPlayerPos(playerid,x,y,z) && z < -1.0)

 
vagy igyis jó
 
GetPlayerPos(i,x,y,z);
SetPlayerPos(i,x,y,z+1);
Cím: Úszás Tiltása
Írta: ZyZu. - 2013. január 28. - 17:47:03

new Float:x, Float:y, Float:z;
if(GetPlayerPos(playerid,x,y,z) && z < -1.0)

 
Ez jobb így.
Cím: Úszás Tiltása
Írta: Rupert - 2013. január 28. - 17:53:04
Ez garantáltan lekéri hogy a játékos vízben van-e:
 

stock IsPlayerInWater(playerid)
{
new Float:tX, Float:tY, Float:tZ, an = GetPlayerAnimationIndex(playerid);
GetPlayerPos(playerid, tX, tY, tZ);
if((1544 >= an >= 1538 || an == 1062 || an == 1250) && (tZ <= 0 || (tZ <= 41.0 && IsPlayerInArea(playerid, -1387, -473, 2025, 2824))) ||
(1544 >= an >= 1538 || an == 1062 || an == 1250) && (tZ <= 2 || (tZ <= 39.0 && IsPlayerInArea(playerid, -1387, -473, 2025, 2824))))
{
    return 1;
}
return 0;
}
Cím: Úszás Tiltása
Írta: [RC]Farkas - 2013. január 28. - 17:58:56
Ésha vizben van az hogy kell megcsinálni hogy pl ki irja, hogy Kiestél a minigámeböl és elteléze egy spawn hejre
Cím: Úszás Tiltása
Írta: Rupert - 2013. január 28. - 18:04:28

if(IsPlayerInWater(playerid))
{ SendClientMessage(playerid, -1, \"Kiestél a minigame-bõl.\");
}

 
A többit csináld meg saját magad. Te ismered a saját változóid, stb.
Cím: Úszás Tiltása
Írta: [RC]Farkas - 2013. január 28. - 18:42:39
THX

Dupla hozzászólás automatikusan összefûzve. ( 2013. január 28. - 20:24:52 )

Ja és mégvalami ez miért nem jó igy
 
CMD:exita(playerid, paramcs[])
   {
   if(munka[playerid] == -1) return SendClientMessage(playerid,0xFFFF00AA,\"Nem vagy DM zónábam!\");
   munka[playerid] = -1;
   SpawnPlayer(playerid);
   SetPlayerHealth(playerid,100);
   SetPlayerVirtualWorld(playerid,0);
   return SendClientMessage(playerid,0xFFFF00AA,\"Kiléptél a DM zónából.\");
   }else if(munka[playerid] != -1) return SendClientMessage(playerid,0xFFFF00AA,\"Nem használhatsz parancsokat DM-zónában elöbb lépj ki /exitdm\");
   return 1;
   
}

 
Ezek a hibákat irja ki a pawno
 
D:\\Uj szerver\\gamemodes\\Hybryd.pwn(4156) : error 010: invalid function or declaration
D:\\Uj szerver\\gamemodes\\Hybryd.pwn(4157) : error 010: invalid function or declaration
D:\\Uj szerver\\gamemodes\\Hybryd.pwn(4159) : error 054: unmatched closing brace (\"}\")
Pawn compiler 3.2.3664           Copyright (c) 1997-2006, ITB CompuPhase
 
3 Errors.

 

Dupla hozzászólás automatikusan összefûzve. ( 2013. január 28. - 21:06:10 )

Kód: Pawn [Kijelölés]
if(IsPlayerInWater(playerid))
{ SendClientMessage(playerid, -1, \"Kiestél a minigame-bõl.\");
}
A többit csináld meg saját magad. Te ismered a saját változóid, stb.
[/quote]
ezt nem értem és ez igy hibás is
Cím: Úszás Tiltása
Írta: ZyZu. - 2013. január 28. - 22:15:39
Nem paramcs hanem params
Cím: Úszás Tiltása
Írta: [RC]Farkas - 2013. január 28. - 23:37:23
kicsereltem de ugyan azok az errorok
Cím: Úszás Tiltása
Írta: Flash - 2013. január 29. - 06:47:16
   if(munka[playerid] != -1) return SendClientMessage(playerid,0xFFFF00AA,\"Nem használhatsz parancsokat DM-zónában elöbb lépj ki /exitdm\");

 
Ennek semmi értelme, mivel ezzel a parancsal tud kilépni a DM zónából.
Tessék:
 
#include a_samp
#include zcmd
new munka[MAX_PLAYERS];
CMD:exita(playerid) {
   if(munka[playerid] == -1) return SendClientMessage(playerid,0xFFFF00AA,\"Nem vagy DM zónábam!\");
   munka[playerid] = -1;
   SpawnPlayer(playerid);
   SetPlayerHealth(playerid,100);
   SetPlayerVirtualWorld(playerid,0);
   SendClientMessage(playerid,0xFFFF00AA,\"Kiléptél a DM zónából.\");
   return 1;
}
Cím: Úszás Tiltása
Írta: [RC]Farkas - 2013. január 29. - 11:00:26
Igy jó de ha igy teszem be akkor nem tiltja le a parancsokat és ha igy vann akor minden parancs elé bekel tenni ezt
 
if(munka[playerid] != -1) return SendClientMessage(playerid,0xFFFF00AA,\"Nem használhatsz parancsokat DM-zónában elöbb lépj ki /exitdm\");

 
És ez igy nem jó mert nekem sok parancsom van és nem akarom mindegyikhez ida írni
De azért THX  segitséget
Cím: Úszás Tiltása
Írta: ZyZu. - 2013. január 29. - 15:08:57
if(munka[playerid] == -1) return SendClientMessage(playerid,0xFFFF00AA,\"Nem használhatsz parancsokat DM-zónában elöbb lépj ki /exitdm\");
Cím: Úszás Tiltása
Írta: [RC]Farkas - 2013. január 29. - 15:26:09
Mind1 megoldotam a problémát
De még anyi kéne, hogy hogy kell TextDrawba viszaszámoni 30 másodpercet
Ja és még ebben
ez igy mértem jó
 
if(IsPlayerInWater(playerid)) 
{ SendClientMessage(playerid, -1, \"Kiestél a minigame-bõl.\");
}
Cím: Úszás Tiltása
Írta: Rupert - 2013. január 29. - 16:01:34
:facepalm:
Csak azt nem értem hogy azok, akik scriptelésbe vágnak miért nem olvasgatnak elõször a fórumon...
Valahova a mod végére bemásolod a sctock-ot amit írtam. Azután pedig akárhol meghívod a függvényt olyan módon amivel te küszködsz.
Cím: Úszás Tiltása
Írta: [RC]Farkas - 2013. január 29. - 17:26:28
Igysem értem
Hogy kell elöhivni azt a fügvémyt

Dupla hozzászólás automatikusan összefûzve. ( 2013. január 29. - 17:47:32 )

vagyis már nem kell megoldotam igy
 
stock IsPlayerInWater(playerid)
{
    new animlib[32], atmp[32];
    GetAnimationName(GetPlayerAnimationIndex(playerid), animlib, sizeof(animlib), atmp, sizeof(atmp));
    if( !strcmp(animlib, \"SWIM\") && !IsPlayerInAnyVehicle(playerid) ) return 1;
    return 0;
}
Cím: Úszás Tiltása
Írta: Rupert - 2013. január 29. - 17:52:51
hát eléggé rosszul oldottad meg. és nem fügvémy, hanem függvény.
 

    stock IsPlayerInWater(playerid)
    {
        new animlib[32], atmp[32];
        GetAnimationName(GetPlayerAnimationIndex(playerid), animlib, sizeof(animlib), atmp, sizeof(atmp));
        if( !strcmp(animlib, \"SWIM\", true) && IsPlayerInAnyVehicle(playerid) ) return 1;
        return 0;
    }

 
Így gondoltad?
Cím: Úszás Tiltása
Írta: [RC]Farkas - 2013. január 29. - 18:17:10
ja de az az egy \"!\" mit számit ugyis müködöt