-
Sziasztok!
Új vagyok még a fúrumon, remélem sok segíto szándékúval találkozom itt...
Kezdeném is elso kérésemme...
0-ról írok egy módot és interiorokat készítem most.
Nos, olyat csináltam, hogy van egy pickup, amit ha felvesz az ember, akkor berakja pl.:boltba, kocsmába...
Az addig meg is van, kimenetel is sikerül...
Nos, én olyat szeretnék, hogy CSAK AKKOR mehessen be, ha beírja az /enter, illetve /exit parancsot...
Bocsi, ha túl egyszeru és én nemtudom megcsinálni, de még kezdo vagyok :)
Köszönöm elore is!
bye Zsoma
-
Hát akkor egy parancsba rakod a pickup felaladát pl :
SetPlayerPos(playerid,X,Y,Z);
SetPlayerInterior(playerid,InteriodID);
És a pickupból kiveszed ezt,és pl egy üzenetet raksz helyette hogy :
SendClientMessage(playerid,színkód,\"Ha beakarsz menni akkor /enter\");
Remélem érted mire gondolok. :D
-
new be;
public OnGameModeInit()
{
be = CreatePickup(pickupid, 2, x, y, z);
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == be)
{
SendClientMessage(playerid, 0xFF3366FF, \"Belépés: /enter\");
}
return 1;
}
public OnPlayerCommandText( playerid, cmdtext[ ] )
{
if(!strcmp(\"/enter\", cmdtext, true) )
{
SetPlayerInterior(playerid,InteriorID);
return 1;
}
return 0;
}
És így meg kell csinálni a kimenetélnél is.
-
DE az akkor azért nem jó mert akkor pl a város másik végébol beirja h enter és akkor is oda rakja be nem?
valami ilyesmi lehet h ifplayerpos x y z lehet h nincs ilyen de érted mit akarok kihozni belole? :D
-
new be;
public OnGameModeInit()
{
be = CreatePickup(pickupid, 2, x, y, z);
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == be)
{
SendClientMessage(playerid, 0xFF3366FF, \"Belépés: /enter\");
}
return 1;
}
public OnPlayerCommandText( playerid, cmdtext[ ] )
{
if(!strcmp(\"/enter\", cmdtext, true) )
{
SetPlayerPos(playerid,x,y,z);
return 1;
}
return 0;
}
És így meg kell csinálni a kimenetélnél is.
Ugyan ezt mondtam,de jónagy hülye vagy ha interiorba akar menni akk nem elég a SetPlayerPos...,mert akk csak a semmibol fog zuhanni,kell a SetPlayerInterior(playerid,InteriorID); Na pacsi.
Szerk.:
DE az akkor azért nem jó mert akkor pl a város másik végébol beirja h enter és akkor is oda rakja be nem?
valami ilyesmi lehet h ifplayerpos x y z lehet h nincs ilyen de érted mit akarok kihozni belole? :D
[/quote]
PlayerToPoint.
-
new be;
public OnGameModeInit()
{
be = CreatePickup(pickupid, 2, x, y, z);
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == be)
{
SendClientMessage(playerid, 0xFF3366FF, \"Belépés: /enter\");
}
return 1;
}
public OnPlayerCommandText( playerid, cmdtext[ ] )
{
if(!strcmp(\"/enter\", cmdtext, true) )
{
SetPlayerPos(playerid,x,y,z);
return 1;
}
return 0;
}
És így meg kell csinálni a kimenetélnél is.
Ugyan ezt mondtam,de jónagy hülye vagy ha interiorba akar menni akk nem elég a SetPlayerPos...,mert akk csak a semmibol fog zuhanni,kell a SetPlayerInterior(playerid,InteriorID); Na pacsi.
[/quote]
Oh bocs elfelejtettem hogy intibe kell. Amúgy meg nem láttam hogy te is írtál.
Bocs javítom.
-
new be;
public OnGameModeInit()
{
be = CreatePickup(pickupid, 2, x, y, z);
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == be)
{
SendClientMessage(playerid, 0xFF3366FF, \"Belépés: /enter\");
}
return 1;
}
public OnPlayerCommandText( playerid, cmdtext[ ] )
{
if(!strcmp(\"/enter\", cmdtext, true) )
{
SetPlayerPos(playerid,x,y,z);
return 1;
}
return 0;
}
És így meg kell csinálni a kimenetélnél is.
Nagyon köszönöm, mindjárt mengézem....
-
new be;
public OnGameModeInit()
{
be = CreatePickup(pickupid, 2, x, y, z);
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == be)
{
SendClientMessage(playerid, 0xFF3366FF, \"Belépés: /enter\");
}
return 1;
}
public OnPlayerCommandText( playerid, cmdtext[ ] )
{
if(!strcmp(\"/enter\", cmdtext, true) )
{
SetPlayerPos(playerid,x,y,z);
return 1;
}
return 0;
}
És így meg kell csinálni a kimenetélnél is.
Nagyon köszönöm, mindjárt mengézem....
[/quote]
Ha otthon leszek,leíróm neked h csak a pickup közelébol tudja beírni :D Mármint a PlayerToPoint-ot :D
-
#include <a_samp>
new be;
new bool:in[MAX_PLAYERS];
public OnGameModeInit()
{
be = CreatePickup(pickupid, 2, 323, 32, 32);
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == be)
{
SendClientMessage(playerid, 0xFF3366FF, \"Belépés: /enter\");
in[playerid] = true;
}
else
{
in[playerid] = false;
}
return 1;
}
public OnPlayerCommandText( playerid, cmdtext[ ] )
{
if(!strcmp(\"/enter\", cmdtext, true) )
{
if (in[playerid] == false) return SendClientMessage(playerid,0, \"nem vagy az ajtónál\");
SetPlayerPos(playerid,x,y,z);
SetPlayerInterior(playerid, intid);
return 1;
}
return 0;
}
public OnPlayerSpawn(playerid)
{
in[playerid] = false;
return 1;
}
Nem biztos hogy jó de mazért megpróbáltam :P
-
Hell rendben, várom... :) :D
-
am meg IsPlayerRangeOfPoint-al vagy Areassal is megtudnád csinálni
-
Nem kell ahhoz változó...
-
http://users.atw.hu/hun-sa-mp-forum/index.php?topic=3954.0
Minden pickupra létrehozol még egy láthatatlan checkpointot is és az /enter (vagy akár az /exitnél is) parancsnál feltételt állítasz fel, hogy csak kakor tegye be ha a láthatatlan checkpointban van azaz a pickupnál.
-
hú, ez már bonyi nekem...
azért köszi Epsilon.
Megvárom Hell válaszát!
DE tényleg köszi ::|
-
8 ora elmult hell :D ;D ;D ;) ;)
-
new be;
public OnGameModeInit()
{
be = CreatePickup(pickupid, 2, x, y, z);
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == be)
{
SendClientMessage(playerid, 0xFF3366FF, \"Belépés: /enter\");
}
return 1;
}
public OnPlayerCommandText( playerid, cmdtext[ ] )
{
if(!strcmp(\"/enter\", cmdtext, true) )
{
SetPlayerInterior(playerid,InteriorID);
return 1;
}
return 0;
}
És így meg kell csinálni a kimenetélnél is.
ALIEN Egyre jobb...-.-\" ez meg csak interiort változtat de pos-t nem...-.-\" most is a semmibol fog zuhanni!
Zsoma Nyugi sztem holnapra meglesz :) Lehet, h a liga feladatot csinálja :)
-
okés köszi...
olvastam a ligáról.
a gyoztes mit kap? :) :D
-
Semmit..
Na de szerintem leírom én neked..
OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(\"/enter\", cmdtext, true))
{
if(IsPlayerInRangeOfPoint(playerid, hatótáv, x koordi, y koordi, z koordi)) //Ahol lennie kell
{
SetPlayerPos(playerid, X, Y, Z); // Megváltoztatja a pozicioját
SetPlayerInterior(playerid, interior); // Beállítja a játékos interiorját
return 1;
}
}
}
Remélem ebböl megérted
Edit: kicsit átjavítottam ;)
-
csak ennyi?
:D
-
igen ;) ha kell még valami írj nekünk
-
Hú hát nem is tudom, hogyan köszönjem meg, tudom ez nektek semmiség, de ez engem most feldobott..
egy warningot ir:
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, \"/enter\", true) == 0){
if(IsPlayerInRangeOfPoint(playerid, 7.0,1836.2031,-1682.4124,13.3578)) //Ahol lennie kell
{
SetPlayerPos(playerid, 384.808624,173.804992,1008.382812); // Megváltoztatja a pozicioját
SetPlayerInterior(playerid, 3); // Beállítja a játékos interiorját
return 1;
}
}
return 0;
}
ez amit irtál és eztirjaki:
C:\\Users\\Zsombi\\Desktop\\[HUN]NeoRPG\\gamemodes\\Neo.pwn(269) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
-
Huhh vagy a mode eljére \"pragma tabsize 0\" vagy rendbe rakod a \"}\" jeleket hogy ne össze-vissza legyenek.. :D
pl
{
{
{
}
}
}
-
Muködik köszönöm szépen!!! ;D :D
DE azt a beigért dialogos boltscriptet is várom még :D ;)
-
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, \"/enter\", true) == 0){
{
if(IsPlayerInRangeOfPoint(playerid, 7.0,1836.2031,-1682.4124,13.3578)) //Ahol lennie kell
{
SetPlayerPos(playerid, 384.808624,173.804992,1008.382812); // Megváltoztatja a pozicioját
SetPlayerInterior(playerid, 3); // Beállítja a játékos interiorját
return 1;
}
return 0;
}
Ez szerintem inkább így helyes.
-
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, \"/enter\", true) == 0){
{
if(IsPlayerInRangeOfPoint(playerid, 7.0,1836.2031,-1682.4124,13.3578)) //Ahol lennie kell
{
SetPlayerPos(playerid, 384.808624,173.804992,1008.382812); // Megváltoztatja a pozicioját
SetPlayerInterior(playerid, 3); // Beállítja a játékos interiorját
return 1;
}
return 0;
}
Ez szerintem inkább így helyes.
Igazad van,. de ezzel nem fog több pickupba is belemenni, csak egybe :)
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, \"/enter\", true) == 0){
{
if(IsPlayerInRangeOfPoint(playerid, 7.0,1836.2031,-1682.4124,13.3578)) /CBA
{
SetPlayerPos(playerid, 384.808624,173.804992,1008.382812); // Megváltoztatja a pozicioját
SetPlayerInterior(playerid, 3); // Beállítja a játékos interiorját
return 1;
} else if if(IsPlayerInRangeOfPoint(playerid, 7.0,600.2031,-1682.4124,13.3578)) // TESCO
SetPlayerPos(playerid, 384.808624,173.804992,1008.382812); // Megváltoztatja a pozicioját
SetPlayerInterior(playerid, 3); // Beállítja a játékos interiorját
return 1;
} else if if(IsPlayerInRangeOfPoint(playerid, 7.0,800.2031,-1682.4124,13.3578)) // ALDI (és így lehet folytatni amíg akarod)
SetPlayerPos(playerid, 384.808624,173.804992,1008.382812); // Megváltoztatja a pozicioját
SetPlayerInterior(playerid, 3); // Beállítja a játékos interiorját
return 1;
}
return 0;
}
-
na ez nemmegy...
megint ezt a részt kell csinálnom, de ez igy nemjo, errorokat kapok, sokat.
simán else-el nemlehet megoldani? :amazed:
-
így néz ki
if(strcmp(cmdtext, \"/enter\", true) == 0)//vhbe
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 1480.9397,-1771.5724,18.7958))
{
SetPlayerPos(playerid,384.808624,173.804992,1008.382812);
SetPlayerInterior(playerid,3);
}
return 1;
}else if(IsPlayerInRangeOfPoint(playerid, 1.0, 1554.9406,-1675.6411,16.1953))
SetPlayerPos(playerid,246.783996,63.900199,1003.640625);
SetPlayerInterior(playerid,6);
}
return 1;
}
és ezeket kapom:
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(907) : warning 217: loose indentation
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(908) : warning 209: function \"OnPlayerCommandText\" should return a value
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(909) : error 010: invalid function or declaration
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(912) : error 010: invalid function or declaration
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(914) : error 010: invalid function or declaration
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(919) : error 010: invalid function or declaration
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(921) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
a 921es sor azmeg már a return 0 az onplayercommandtextnél. más nincs ott. már . lécci segits :-X
-
Rossz helyen térsz vissza. A return 1 kifejezés ne a blokkon kívül, hanem belül legyen.
if(strcmp(cmdtext, \"/enter\", true) == 0)//vhbe
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 1480.9397,-1771.5724,18.7958))
{
SetPlayerPos(playerid,384.808624,173.804992,1008.382812);
SetPlayerInterior(playerid,3);
return 1;
}
}else if(IsPlayerInRangeOfPoint(playerid, 1.0, 1554.9406,-1675.6411,16.1953))
SetPlayerPos(playerid,246.783996,63.900199,1003.640625);
SetPlayerInterior(playerid,6);
return 1;
}
}
-
:dodge: ugyanazt kapom szinte:
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(904) : warning 217: loose indentation
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(909) : warning 217: loose indentation
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(910) : warning 217: loose indentation
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(912) : error 054: unmatched closing brace (\"}\")
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(914) : error 010: invalid function or declaration
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(916) : error 010: invalid function or declaration
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(921) : error 010: invalid function or declaration
C:\\Users\\Zsombi\\Desktop\\Neo City\\gamemodes\\rpg.pwn(923) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
-
Csoda, hogy nem venni észre a hibát ? ::|
Hát átláthatatlan....
De tessék, kijavítottam.:
if(strcmp(cmdtext, \"/enter\", true) == 0)//vhbe
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 1480.9397,-1771.5724,18.7958))
{
SetPlayerPos(playerid,384.808624,173.804992,1008.382812);
SetPlayerInterior(playerid,3);
}
else if(IsPlayerInRangeOfPoint(playerid, 1.0, 1554.9406,-1675.6411,16.1953))
{
SetPlayerPos(playerid,246.783996,63.900199,1003.640625);
SetPlayerInterior(playerid,6);
}
return 1;
}
-
Nagyon szépen köszi Csabesz ;) :)
Szerk.: bajvan xD /enter-es parnacsok mennek, de az /exitesek nem.. vmit bezártam?
if(strcmp(cmdtext, \"/enter\", true) == 0)//vhbe
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, 1480.9397,-1771.5724,18.7958))
{
SetPlayerPos(playerid,384.808624,173.804992,1008.382812);
SetPlayerInterior(playerid,3);
}
else if(IsPlayerInRangeOfPoint(playerid, 1.0, 1554.9406,-1675.6411,16.1953))//lspdbe
{
SetPlayerPos(playerid,246.783996,63.900199,1003.640625);
SetPlayerInterior(playerid,6);
}
else if(IsPlayerInRangeOfPoint(playerid, 1.0, 1352.3049,-1758.8123,13.5078))//bolt1be
{
SetPlayerPos(playerid,6.091179,-29.271898,1003.549438);
SetPlayerInterior(playerid,10);
}
return 1;
}
if(strcmp(cmdtext, \"/exit\", true) == 0)//vhki
{
if(IsPlayerInRangeOfPoint(playerid, 0.1,390.0667,173.7664,1008.3828))
{
SetPlayerPos(playerid,1480.9397,-1771.5724,18.7958);
SetPlayerInterior(playerid,0);
}
else if(IsPlayerInRangeOfPoint(playerid,0.1,246.7923,62.9487,1003.6406))//lspdki
{
SetPlayerPos(playerid,1554.9406,-1675.6411,16.1953);
SetPlayerInterior(playerid,0);
}
return 1;
}
return 0;
}
szerk.: rájöttemmiabaja: nem 0.1 hanem 1.0 xDDDDDD
bocsi..