Возвращение текста
#1

Почему не рекомендуемо возвращать текст в return'е? Почему нельзя возвращать текст в public, сразу летят ошибки?
Reply
#2

почему нельзя? можно
Reply
#3

Quote:
Originally Posted by hub4
View Post
почему нельзя? можно
Ну сам попробуй
PHP Code:
forward Test(id);
public 
Test(id) {
    new 
text[32];
    switch(
id) {
        case 
0text "Привет";
        case 
1text "Сервер";
        case 
2text "SA-MP";
    }
    return 
text;

Будет error 090: public functions may not return arrays (symbol "Test")

Все таки если юзать в stock то все работает но мне нужно в public'e делать так.
Reply
#4

А что если использовать так:

PHP Code:
new vehname[8];
GetNameCar(411vehname);
printf("%s",vehname); 
PHP Code:
forward GetNameCar(idvehname[]);
public 
GetNameCar(idvehname[])
{
  new 
name[8];
  switch(
id)
  {
    case 
411name "Infernus";
    case 
562name "XZ";
    case 
482name "Burrito";
  }
  
strmid(vehnamename0strlen(name), 255);

Reply
#5

Quote:
Originally Posted by iRusel
View Post
А что если использовать так:
Тогда уж сразу в vehname, без всяких извращений co strmid
Reply
#6

Quote:
Originally Posted by Kolstin
View Post
Почему не рекомендуемо возвращать текст в return'е? Почему нельзя возвращать текст в public, сразу летят ошибки?
у меня так тексты из других массивов попадали туда, где их быть не должно
Reply
#7

Quote:
Originally Posted by iRusel
View Post
А что если использовать так:

PHP Code:
new vehname[8];
GetNameCar(411vehname);
printf("%s",vehname); 
PHP Code:
forward GetNameCar(idvehname[]);
public 
GetNameCar(idvehname[])
{
  new 
name[8];
  switch(
id)
  {
    case 
411name "Infernus";
    case 
562name "XZ";
    case 
482name "Burrito";
  }
  
strmid(vehnamename0strlen(name), 255);

Не подходит вообще не как этот вариант...
Reply
#8

Вроде переполнение стека может быть от возврата строки.
Reply
#9

1. В паблике никак не получится такое.
2. Зачем тебе в пабилке?
Reply
#10

PHP Code:
new str[24];
WriteText(1,str); 
PHP Code:
WriteText(id,str){
    switch(
id){
    case 
0:str "Hello";
    case 
1:str "Hello!!";
    case 
2:str "Hello!!!";
    }

Для чего тебе паблик?
Reply
#11

Никогда не понимал, как можно без stock или public делать функцию... Это ж извращение. А можно просто создать массив с названием транспорта и оттуда брать по индексу модели. Это ж стопицот лет назад придумали.
Reply
#12

Quote:
Originally Posted by kaZax
Посмотреть сообщение
PHP код:
new str[24];
WriteText(1,str); 
PHP код:
WriteText(id,str){
    switch(
id){
    case 
0:str "Hello";
    case 
1:str "Hello!!";
    case 
2:str "Hello!!!";
    }

Для чего тебе паблик?
Для CallRemoteFunction, stock не вызываеться в данной функции необходимо только public.
Reply
#13

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Никогда не понимал, как можно без stock или public делать функцию... Это ж извращение.
В С++ функции вообще объявляются без префиксов, а public используется только в ООП для указания типа функции. Так что извращение это как раз таки использовать префиксы не по назначению.
Reply
#14

среди нубов русскоязычного самп сообщества водится дурная привычка называть пабликом вообще любую функцию. а вместе с этим обьявлять их в скрипте таким образом, везде где это даже не нужно. со всеми вытекающими.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)